*
  • Attribute name normalization
  • * */ abstract class LdapRepository extends Repository { /** * The datasource being used * * @var LdapConnection */ protected $ds; /** * Normed attribute names based on known LDAP environments * * @var array */ protected $normedAttributes = array( 'uid' => 'uid', 'gid' => 'gid', 'user' => 'user', 'group' => 'group', 'member' => 'member', 'memberuid' => 'memberUid', 'posixgroup' => 'posixGroup', 'uniquemember' => 'uniqueMember', 'groupofnames' => 'groupOfNames', 'inetorgperson' => 'inetOrgPerson', 'samaccountname' => 'sAMAccountName', 'groupofuniquenames' => 'groupOfUniqueNames' ); /** * Create a new LDAP repository object * * @param LdapConnection $ds The data source to use */ public function __construct(LdapConnection $ds) { parent::__construct($ds); } /** * Return the given attribute name normed to known LDAP enviroments, if possible * * @param string $name * * @return string */ protected function getNormedAttribute($name) { $loweredName = strtolower($name ?? ''); if (array_key_exists($loweredName, $this->normedAttributes)) { return $this->normedAttributes[$loweredName]; } return $name; } }