public function SimpleLdapRole::__construct in Simple LDAP 7.2
Same name and namespace in other branches
- 7 simple_ldap_role/SimpleLdapRole.class.php \SimpleLdapRole::__construct()
Constructor.
@throw SimpleLdapException
Parameters
string $name: The Drupal role name to search for, and load from LDAP.
File
- simple_ldap_role/
SimpleLdapRole.class.php, line 30 - SimpleLdapRole class file.
Class
- SimpleLdapRole
- @file SimpleLdapRole class file.
Code
public function __construct($name) {
// Load the LDAP server object.
$this->server = SimpleLdapServer::singleton();
// Get the LDAP configuration.
$basedn = simple_ldap_role_variable_get('simple_ldap_role_basedn');
$scope = simple_ldap_role_variable_get('simple_ldap_role_scope');
$attribute_name = simple_ldap_role_variable_get('simple_ldap_role_attribute_name');
$attribute_member = simple_ldap_role_variable_get('simple_ldap_role_attribute_member');
$safe_name = preg_replace(array(
'/\\(/',
'/\\)/',
), array(
'\\\\(',
'\\\\)',
), $name);
$filter = '(&(' . $attribute_name . '=' . $safe_name . ')' . self::filter() . ')';
// Attempt to load the role from the LDAP server.
$attributes = array(
$attribute_name,
$attribute_member,
);
$result = $this->server
->search($basedn, $filter, $scope, $attributes, 0, 1);
if ($result['count'] == 1) {
// Found an existing LDAP entry.
$this->dn = $result[0]['dn'];
$this->attributes[$attribute_name] = $result[0][$attribute_name];
if (isset($result[0][$attribute_member])) {
$this->attributes[$attribute_member] = $result[0][$attribute_member];
}
else {
$this->attributes[$attribute_member] = array(
'count' => 0,
);
}
$this->exists = TRUE;
}
else {
// Set up a new LDAP entry.
$this->dn = $attribute_name . '=' . $name . ',' . $basedn;
$this->attributes[$attribute_name] = array(
'count' => 1,
0 => $name,
);
$this->attributes[$attribute_member] = array(
'count' => 0,
);
$this->dirty = TRUE;
}
}