for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace SilverStripe\SAML\Extensions;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\ReadonlyField;
use SilverStripe\ORM\DataExtension;
/**
* Class SAMLMemberExtension
*
* Adds mappings from IdP claim rules to SilverStripe {@link Member} fields.
* @package activedirectory
*/
class SAMLMemberExtension extends DataExtension
{
* @var array
private static $db = [
$db
// Pointer to the session object held by the IdP
'SAMLSessionIndex' => 'Varchar(255)',
// Unique user identifier, same field is used by LDAPMemberExtension
'GUID' => 'Varchar(50)',
];
* These are used by {@link SAMLController} to map specific IdP claim rules
* to {@link Member} fields. Availability of these claim rules are defined
* on the IdP.
* @config
private static $claims_field_mappings = [
$claims_field_mappings
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname' => 'FirstName',
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname' => 'Surname',
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress' => 'Email'
* @param FieldList $fields
public function updateCMSFields(FieldList $fields)
$fields->replaceField('GUID', ReadonlyField::create('GUID'));
$fields->removeFieldFromTab('Root', 'SAMLSessionIndex');
}