本文整理汇总了PHP中Zend_Ldap_Node类的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Ldap_Node类的具体用法?PHP Zend_Ldap_Node怎么用?PHP Zend_Ldap_Node使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Zend_Ldap_Node类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _createEntry
/**
* Creates the data structure for the given entry data
*
* @param array $data
* @return Zend_Ldap_Node
*/
protected function _createEntry(array $data)
{
/**
* @see Zend_Ldap_Node
*/
$node = Zend_Ldap_Node::fromArray($data, true);
$node->attachLdap($this->_iterator->getLdap());
return $node;
}
示例2: _createEntry
/**
* Creates the data structure for the given entry data
*
* @param array $data
* @return Zend_Ldap_Node
*/
protected function _createEntry(array $data)
{
/**
* @see Zend_Ldap_Node
*/
require_once PHP_LIBRARY_PATH . 'Zend/Ldap/Node.php';
$node = Zend_Ldap_Node::fromArray($data, true);
$node->attachLdap($this->_iterator->getLdap());
return $node;
}
示例3: getNode
/**
* Returns the specified DN as a Zend_Ldap_Node
*
* @param string|Zend_Ldap_Dn $dn
* @return Zend_Ldap_Node|null
* @throws Zend_Ldap_Exception
*/
public function getNode($dn)
{
/**
* Zend_Ldap_Node
*/
#require_once 'Zend/Ldap/Node.php';
return Zend_Ldap_Node::fromLdap($dn, $this);
}
示例4: testLoadFromLdapWithDnObject
public function testLoadFromLdapWithDnObject()
{
$dn = Zend_Ldap_Dn::fromString($this->_createDn('ou=Test1,'));
$node = Zend_Ldap_Node::fromLdap($dn, $this->_getLdap());
$this->assertType('Zend_Ldap_Node', $node);
$this->assertTrue($node->isAttached());
}
示例5: _createTestNode
/**
* @return Zend_Ldap_Node
*/
protected function _createTestNode()
{
return Zend_Ldap_Node::fromArray($this->_createTestArrayData(), true);
}
示例6: getNode
/**
* Returns the specified DN as a Zend_Ldap_Node
*
* @param string|Zend_Ldap_Dn $dn
* @return Zend_Ldap_Node|null
* @throws Zend_Ldap_Exception
*/
public function getNode($dn)
{
/**
* Zend_Ldap_Node
*/
require_once PHP_LIBRARY_PATH . 'Zend/Ldap/Node.php';
return Zend_Ldap_Node::fromLdap($dn, $this);
}
示例7: testGetChanges
public function testGetChanges()
{
$node = $this->_createTestNode();
$node->host = array('d');
$node->empty = 'not Empty';
unset($node->boolean);
$changes = $node->getChanges();
$this->assertEquals(array('add' => array('empty' => array('not Empty')), 'delete' => array('boolean' => array()), 'replace' => array('host' => array('d'))), $changes);
$node = Zend_Ldap_Node::create('uid=test,dc=example,dc=org', array('account'));
$node->host = 'host';
unset($node->cn);
unset($node['sn']);
$node['givenName'] = 'givenName';
$node->appendToAttribute('objectClass', 'domain');
$this->assertEquals(array('uid' => array('test'), 'objectclass' => array('account', 'domain'), 'host' => array('host'), 'givenname' => array('givenName')), $node->getChangedData());
$this->assertEquals(array('add' => array('uid' => array('test'), 'objectclass' => array('account', 'domain'), 'host' => array('host'), 'givenname' => array('givenName')), 'delete' => array(), 'replace' => array()), $node->getChanges());
}
示例8: testMoveNode
public function testMoveNode()
{
$dnOld = $this->_createDn('ou=Test1,');
$dnNew = $this->_createDn('ou=Test,');
$node = Zend_Ldap_Node::fromLdap($dnOld, $this->_getLdap());
$node->setDn($dnNew);
$node->update();
$this->assertFalse($this->_getLdap()->exists($dnOld));
$this->assertTrue($this->_getLdap()->exists($dnNew));
$node = Zend_Ldap_Node::fromLdap($dnNew, $this->_getLdap());
$node->move($dnOld);
$node->update();
$this->assertFalse($this->_getLdap()->exists($dnNew));
$this->assertTrue($this->_getLdap()->exists($dnOld));
$node = Zend_Ldap_Node::fromLdap($dnOld, $this->_getLdap());
$node->rename($dnNew);
$node->update();
$this->assertFalse($this->_getLdap()->exists($dnOld));
$this->assertTrue($this->_getLdap()->exists($dnNew));
}
示例9: handleLdapUser
/**
* Updates or creates user by given ldap node
*
* @param Zend_Ldap_Node $node
* @return User User Object
*/
public function handleLdapUser($node)
{
$username = $node->getAttribute(HSetting::Get('usernameAttribute', 'authentication_ldap'), 0);
$email = $node->getAttribute('mail', 0);
$guid = $this->binToStrGuid($node->getAttribute('objectGUID', 0));
// Try to load User:
$userChanged = false;
$user = null;
if ($guid != "") {
$user = User::model()->findByAttributes(array('guid' => $guid, 'auth_mode' => User::AUTH_MODE_LDAP));
} else {
// Fallback use e-mail
$user = User::model()->findByAttributes(array('email' => $email, 'auth_mode' => User::AUTH_MODE_LDAP));
}
if ($user === null) {
$user = new User();
if ($guid != "") {
$user->guid = $guid;
}
$user->status = User::STATUS_ENABLED;
$user->auth_mode = User::AUTH_MODE_LDAP;
$user->group_id = 1;
Yii::log('Create ldap user ' . $username . '!', CLogger::LEVEL_INFO, 'authentication_ldap');
}
// Update Group Mapping
foreach (Group::model()->findAll('ldap_dn != ""') as $group) {
if (in_array($group->ldap_dn, $node->getAttribute('memberOf'))) {
if ($user->group_id != $group->id) {
$userChanged = true;
$user->group_id = $group->id;
}
}
}
// Update Users Field
if ($user->username != $username) {
$userChanged = true;
$user->username = $username;
}
if ($user->email != $email) {
$userChanged = true;
$user->email = $email;
}
if ($user->validate()) {
// Only Save user when something is changed
if ($userChanged || $user->isNewRecord) {
$user->save();
}
// Update Profile Fields
foreach (ProfileField::model()->findAll('ldap_attribute != ""') as $profileField) {
$ldapAttribute = $profileField->ldap_attribute;
$profileFieldName = $profileField->internal_name;
$user->profile->{$profileFieldName} = $node->getAttribute($ldapAttribute, 0);
}
if ($user->profile->validate()) {
$user->profile->save();
// Update Space Mapping
foreach (Space::model()->findAll('ldap_dn != ""') as $space) {
if (in_array($space->ldap_dn, $node->getAttribute('memberOf'))) {
$space->addMember($user->id);
}
}
} else {
Yii::log('Could not create or update ldap user profile! (' . print_r($user->profile->getErrors(), true) . ")", CLogger::LEVEL_ERROR, 'authentication_ldap');
}
} else {
Yii::log('Could not create or update ldap user! (' . print_r($user->getErrors(), true) . ")", CLogger::LEVEL_ERROR, 'authentication_ldap');
}
return $user;
}
示例10: handleLdapUser
/**
* Updates or creates user by given ldap node
*
* @param Zend_Ldap_Node $node
* @return User User Object
*/
public function handleLdapUser($node)
{
$usernameAttribute = Setting::Get('usernameAttribute', 'authentication_ldap');
if ($usernameAttribute == '') {
$usernameAttribute = 'sAMAccountName';
}
$emailAttribute = Setting::Get('emailAttribute', 'authentication_ldap');
if ($emailAttribute == '') {
$emailAttribute = 'mail';
}
$username = $node->getAttribute($usernameAttribute, 0);
$email = $node->getAttribute($emailAttribute, 0);
$guid = $this->binToStrGuid($node->getAttribute('objectGUID', 0));
// Try to load User:
$userChanged = false;
$user = null;
if ($guid != "") {
$user = User::findOne(array('guid' => $guid, 'auth_mode' => User::AUTH_MODE_LDAP));
} else {
// Fallback use e-mail
$user = User::findOne(array('email' => $email, 'auth_mode' => User::AUTH_MODE_LDAP));
}
if ($user === null) {
$user = new User();
if ($guid != "") {
$user->guid = $guid;
}
$user->status = User::STATUS_ENABLED;
$user->auth_mode = User::AUTH_MODE_LDAP;
$user->group_id = 1;
Yii::info('Create ldap user ' . $username . '!');
}
// Update Users Field
if ($user->username != $username) {
$userChanged = true;
$user->username = $username;
}
if ($user->email != $email) {
$userChanged = true;
$user->email = $email;
}
if ($user->validate()) {
// Only Save user when something is changed
if ($userChanged || $user->isNewRecord) {
$user->save();
}
// Update Profile Fields
foreach (ProfileField::find()->andWhere(['!=', 'ldap_attribute', ''])->all() as $profileField) {
$ldapAttribute = $profileField->ldap_attribute;
$profileFieldName = $profileField->internal_name;
$user->profile->{$profileFieldName} = $node->getAttribute($ldapAttribute, 0);
}
if ($user->profile->validate() && $user->profile->save()) {
$this->trigger(self::EVENT_UPDATE_USER, new ParameterEvent(['user' => $user, 'node' => $node]));
} else {
Yii::error('Could not create or update ldap user profile! (' . print_r($user->profile->getErrors(), true) . ")");
}
} else {
Yii::error('Could not create or update ldap user! (' . print_r($user->getErrors(), true) . ")");
}
return $user;
}
示例11: testRdnAttributesHandleMultiValuedAttribute3
/**
* ZF-11611
*/
public function testRdnAttributesHandleMultiValuedAttribute3()
{
$data = array('dn' => 'cn=funkygroup,ou=Groupes,dc=domain,dc=local', 'objectClass' => array('groupOfNames', 'top'), 'cn' => array(0 => 'The Funkygroup'), 'member' => 'uid=john-doe,ou=Users,dc=domain,dc=local');
$node = Zend_Ldap_Node::fromArray($data, true);
$cn = $node->getAttribute('cn');
$this->assertEquals(array(0 => 'The Funkygroup', 1 => 'funkygroup'), $cn);
}
示例12: getNode
/**
* Returns the specified DN as a Zend_Ldap_Node
*
* @param string|Zend_Ldap_Dn $dn
* @return Zend_Ldap_Node|null
* @throws Zend_Ldap_Exception
*/
public function getNode($dn)
{
/**
* Zend_Ldap_Node
*/
return Zend_Ldap_Node::fromLdap($dn, $this);
}
示例13: numChildren
public function numChildren()
{
$conn = $this->source->getLdap();
if ($conn) {
return $conn->countChildren($this->node->getCurrentDN());
}
return 0;
}