本文整理汇总了PHP中Zend_Ldap_Attribute类的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Ldap_Attribute类的具体用法?PHP Zend_Ldap_Attribute怎么用?PHP Zend_Ldap_Attribute使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Zend_Ldap_Attribute类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testChangePasswordWithUserAccountActiveDirectory
public function testChangePasswordWithUserAccountActiveDirectory()
{
if ($this->_getLdap()->getRootDse()->getServerType() !== Zend_Ldap_Node_RootDse::SERVER_TYPE_ACTIVEDIRECTORY) {
$this->markTestSkipped('Test can only be run on an ActiveDirectory server');
}
$options = $this->_getLdap()->getOptions();
if ($options['useSsl'] !== true && $options['useStartTls'] !== true) {
$this->markTestSkipped('Test can only be run on an SSL or TLS secured connection');
}
$dn = $this->_createDn('cn=New User,');
$data = array();
$password = 'pa$$w0rd';
Zend_Ldap_Attribute::setAttribute($data, 'cn', 'New User', false);
Zend_Ldap_Attribute::setAttribute($data, 'displayName', 'New User', false);
Zend_Ldap_Attribute::setAttribute($data, 'sAMAccountName', 'newuser', false);
Zend_Ldap_Attribute::setAttribute($data, 'userAccountControl', 512, false);
Zend_Ldap_Attribute::setAttribute($data, 'objectClass', 'person', true);
Zend_Ldap_Attribute::setAttribute($data, 'objectClass', 'organizationalPerson', true);
Zend_Ldap_Attribute::setAttribute($data, 'objectClass', 'user', true);
Zend_Ldap_Attribute::setPassword($data, $password, Zend_Ldap_Attribute::PASSWORD_UNICODEPWD, 'unicodePwd');
try {
$this->_getLdap()->add($dn, $data);
$this->_getLdap()->bind($dn, $password);
$newPasswd = 'newpasswd';
$newData = array();
Zend_Ldap_Attribute::setPassword($newData, $newPasswd, Zend_Ldap_Attribute::PASSWORD_UNICODEPWD);
$this->_getLdap()->update($dn, $newData);
try {
$this->_getLdap()->bind($dn, $password);
$this->fail('Expected exception not thrown');
} catch (Zend_Ldap_Exception $zle) {
$message = $zle->getMessage();
$this->assertTrue(strstr($message, 'Invalid credentials') || strstr($message, 'Server is unwilling to perform'));
}
$this->assertType('Zend_Ldap', $this->_getLdap()->bind($dn, $newPasswd));
$this->_getLdap()->bind();
$this->_getLdap()->delete($dn);
} catch (Zend_Ldap_Exception $e) {
$this->_getLdap()->bind();
if ($this->_getLdap()->exists($dn)) {
$this->_getLdap()->delete($dn);
}
$this->fail($e->getMessage());
}
}
示例2: removeFromAttribute
/**
* Remove given values from a LDAP attribute
*
* @param string $attribName
* @param mixed|array $value
* @return void
*/
public function removeFromAttribute($attribName, $value)
{
Zend_Ldap_Attribute::removeFromAttribute($this->_currentData, $attribName, $value);
}
示例3: _parseLdapSchemaSyntax
/**
* Parse the given tokens into a data structure
*
* @param array $data
* @param array $tokens
* @return void
*/
protected function _parseLdapSchemaSyntax(array &$data, array $tokens)
{
// tokens that have no value associated
$noValue = array('single-value', 'obsolete', 'collective', 'no-user-modification', 'abstract', 'structural', 'auxiliary');
// tokens that can have multiple values
$multiValue = array('must', 'may', 'sup');
while (count($tokens) > 0) {
$token = strtolower(array_shift($tokens));
if (in_array($token, $noValue)) {
$data[$token] = true;
// single value token
} else {
$data[$token] = array_shift($tokens);
// this one follows a string or a list if it is multivalued
if ($data[$token] == '(') {
// this creates the list of values and cycles through the tokens
// until the end of the list is reached ')'
$data[$token] = array();
while ($tmp = array_shift($tokens)) {
if ($tmp == ')') {
break;
}
if ($tmp != '$') {
$data[$token][] = Zend_Ldap_Attribute::convertFromLdapValue($tmp);
}
}
} else {
$data[$token] = Zend_Ldap_Attribute::convertFromLdapValue($data[$token]);
}
// create a array if the value should be multivalued but was not
if (in_array($token, $multiValue) && !is_array($data[$token])) {
$data[$token] = array($data[$token]);
}
}
}
}
示例4: testPasswordGenerationUnicodePwd
public function testPasswordGenerationUnicodePwd()
{
$password = 'new';
$unicodePwd = Zend_Ldap_Attribute::createPassword($password, Zend_Ldap_Attribute::PASSWORD_UNICODEPWD);
$this->assertEquals(10, strlen($unicodePwd));
$this->assertEquals("\"new\"", $unicodePwd);
}
示例5: _changePassLdap
protected function _changePassLdap(\Core_Dto_Mapping $dtoPass, $userEntity, $recover = FALSE)
{
try {
$ldapUser = $userEntity->getSqPessoa()->getSqPessoaFisica()->getNuCpf();
$userPasswd = $dtoPass->getTxSenha();
$adminAuth = $this->_adminAuthLDAP();
if (!$recover) {
$adminAuth->bind($ldapUser, $userPasswd);
}
$userDn = current($adminAuth->search("samAccountName={$ldapUser}")->toArray());
if (!$userDn) {
throw new \Core_Exception_ServiceLayer_Verification("Usuário inexistente no LDAP");
}
$userData = array();
\Zend_Ldap_Attribute::setPassword($userData, $dtoPass->getTxSenhaNova(), \Zend_Ldap_Attribute::PASSWORD_UNICODEPWD);
$this->_adminAuthLDAP()->update($userDn['dn'], $userData);
} catch (\Zend_Ldap_Exception $exc) {
$message = sprintf('[SICA-e] LDAP Error in %s: "%s"', __METHOD__, $exc->getMessage());
error_log($message);
$this->getMessaging()->addErrorMessage($exc->getMessage());
$message = sprintf('[Erro no LDAP] %s', $exc->getMessage());
$ldapCode = $exc->getCode();
if ($ldapCode > 0) {
$message = sprintf('LDAP0x%x', $ldapCode);
}
throw new \Core_Exception_ServiceLayer_Verification($message);
}
}
示例6: updateByLogin
public function updateByLogin($login, $options)
{
$filter = Zend_Ldap_Filter::equals('samaccountname', $login);
$ldap = $this->getLdap();
$users = $ldap->search($filter);
if ($users->count() > 0) {
$user = $users->getFirst();
$dn = $user['dn'];
$entry = array();
foreach ($options as $attrib => $value) {
Zend_Ldap_Attribute::setAttribute($entry, $attrib, $value);
}
$res = $ldap->update($dn, $entry);
return $res;
}
return false;
}
示例7: _setLDAPAttribute
/**
* Sets the value for the given LDAP attribute.
*
* @param array $entry LDAP entry
* @param string $attribName Attribute name.
* @param mixed $value Value.
*/
protected function _setLDAPAttribute(&$entry, $attribName, $value)
{
$attribName = strtolower($attribName);
Zend_Ldap_Attribute::setAttribute($entry, $attribName, $value);
}