public function LdapTestFunctions::populateFakeLdapServerData in Lightweight Directory Access Protocol (LDAP) 8.2
Same name and namespace in other branches
- 7.2 ldap_test/LdapTestFunctions.class.php \LdapTestFunctions::populateFakeLdapServerData()
set variable with fake test data
@parma string $sid where fake data is stored. e.g. 'default',
Parameters
string $test_ldap_id eg. 'hogwarts':
string $test_ldap_type e.g. openLdap, openLdapTest1, etc.:
File
- ldap_test/
LdapTestFunctions.class.php, line 163
Class
Code
public function populateFakeLdapServerData($test_ldap_id, $sid = 'default') {
// read csvs into key/value array
// create fake ldap data array
$clones = empty($this->data['ldap_servers'][$sid]['clones']) ? FALSE : $this->data['ldap_servers'][$sid]['clones'];
$server_properties = $this->data['ldap_servers'][$sid]['properties'];
$this
->getCsvLdapData($test_ldap_id);
foreach ($this->csvTables['users'] as $guid => $user) {
$dn = 'cn=' . $user['cn'] . ',' . $this->csvTables['conf'][$test_ldap_id]['userbasedn'];
$this->csvTables['users'][$guid]['dn'] = $dn;
$attributes = $this
->generateUserLDAPAttributes($test_ldap_id, $user);
$this
->addLDAPUserToLDAPArraysFromAttributes($user, $sid, $dn, $attributes, $server_properties['ldap_type'], $server_properties['user_attr']);
}
if ($clones) {
$clonable_user = $this->csvTables['users'][101];
for ($i = 0; $i < $clones; $i++) {
$user = $clonable_user;
$cn = "clone" . $i;
$dn = 'cn=' . $cn . ',' . $this->csvTables['conf'][$test_ldap_id]['userbasedn'];
$user['cn'] = $cn;
$user['dn'] = $dn;
$user['uid'] = 20 + $i;
$user['guid'] = 120 + $i;
$user['lname'] = $user['lname'] . "_{$i}";
$attributes = $this
->generateUserLDAPAttributes($test_ldap_id, $user);
$this
->addLDAPUserToLDAPArraysFromAttributes($user, $sid, $dn, $attributes, $server_properties['ldap_type'], $server_properties['user_attr']);
}
}
foreach ($this->csvTables['groups'] as $guid => $group) {
$dn = 'cn=' . $group['cn'] . ',' . $this->csvTables['conf'][$test_ldap_id]['groupbasedn'];
$this->csvTables['groups'][$guid]['dn'] = $dn;
$attributes = array(
'cn' => array(
0 => $group['cn'],
'count' => 1,
),
'gid' => array(
0 => $group['gid'],
'count' => 1,
),
'guid' => array(
0 => $guid,
'count' => 1,
),
);
if ($server_properties['groupMembershipsAttr']) {
$membershipAttr = $server_properties['groupMembershipsAttr'];
foreach ($this->csvTables['memberships'] as $membership_id => $membership) {
if ($membership['gid'] == $group['gid']) {
$member_guid = $membership['member_guid'];
if (isset($this->csvTables['users'][$member_guid])) {
$member = $this->csvTables['users'][$member_guid];
}
elseif (isset($this->csvTables['groups'][$member_guid])) {
$member = $this->csvTables['groups'][$member_guid];
}
if ($server_properties['groupMembershipsAttrMatchingUserAttr'] == 'dn') {
$attributes[$server_properties['groupMembershipsAttr']][] = $member['dn'];
}
else {
$attributes[$server_properties['groupMembershipsAttr']][] = $member['attr'][$membershipAttr][0];
}
}
}
$attributes[$membershipAttr]['count'] = count($attributes[$membershipAttr]);
}
// need to figure out if memberOf type attribute is desired and populate it
$this->data['ldap_servers_by_guid'][$sid][$group['guid']]['attr'] = $attributes;
$this->data['ldap_servers_by_guid'][$sid][$group['guid']]['dn'] = $dn;
$this->data['ldap_servers'][$sid]['groups'][$dn]['attr'] = $attributes;
$this->ldapData['ldap_servers'][$sid][$dn] = $attributes;
}
if ($server_properties['groupUserMembershipsAttrExists']) {
$member_attr = $server_properties['groupUserMembershipsAttr'];
foreach ($this->csvTables['memberships'] as $gid => $membership) {
$group_dn = $this->data['ldap_servers_by_guid'][$sid][$membership['group_guid']]['dn'];
$user_dn = $this->data['ldap_servers_by_guid'][$sid][$membership['member_guid']]['dn'];
$this->ldapData['ldap_servers'][$sid][$user_dn][$member_attr][] = $group_dn;
if (isset($this->ldapData['ldap_servers'][$sid][$user_dn][$member_attr]['count'])) {
unset($this->ldapData['ldap_servers'][$sid][$user_dn][$member_attr]['count']);
}
$this->ldapData['ldap_servers'][$sid][$user_dn][$member_attr]['count'] = count($this->ldapData['ldap_servers'][$sid][$user_dn][$member_attr]);
}
}
$this->data['ldap_servers'][$sid]['ldap'] = $this->ldapData['ldap_servers'][$sid];
$this->data['ldap_servers'][$sid]['csv'] = $this->csvTables;
variable_set('ldap_test_server__' . $sid, $this->data['ldap_servers'][$sid]);
$current_sids = variable_get('ldap_test_servers', array());
$current_sids[] = $sid;
variable_set('ldap_test_servers', array_unique($current_sids));
}