LSaddon::asterisk : Added generate_asteriskMD5HashedPassword() function

This commit is contained in:
Benjamin Renard 2012-09-04 19:13:38 +02:00
parent 1136dfedea
commit 8c512875db
2 changed files with 32 additions and 0 deletions

View file

@ -29,4 +29,6 @@
// Asterisk hashed password LSformat
define('LS_ASTERISK_HASH_PWD_FORMAT','%{uid}:sip.lsexample.com:%{clearPassword}');
// Password attribute name to generate MD5 hashed asterisk password
define('LS_ASTERISK_USERPASSWORD_ATTR','userPassword');
?>

View file

@ -29,6 +29,12 @@ LSerror :: defineError('ASTERISK_SUPPORT_01',
LSerror :: defineError('ASTERISK_01',
__("Asterisk : The function %{function} only work with %{objectName}.")
);
LSerror :: defineError('ASTERISK_02',
__("Asterisk : The attribute %{dependency} is missing. Unable to generate MD5 hashed password.")
);
LSerror :: defineError('ASTERISK_03',
__("Asterisk : Clear password not availlable. Unable to generate MD5 hashed password.")
);
/**
* Check support of Asterisk by LdapSaisie
@ -42,6 +48,7 @@ LSerror :: defineError('ASTERISK_01',
$MUST_DEFINE_CONST= array(
'LS_ASTERISK_HASH_PWD_FORMAT',
'LS_ASTERISK_USERPASSWORD_ATTR',
);
foreach($MUST_DEFINE_CONST as $const) {
@ -80,6 +87,29 @@ LSerror :: defineError('ASTERISK_01',
}
$ldapObject -> registerOtherValue('clearPassword',$clearPassword);
return md5($ldapObject->getFData(LS_ASTERISK_HASH_PWD_FORMAT));
}
/**
* Generate asterisk MD5 hashed password
*
* @author Benjamin Renard <brenard@easter-eggs.com>
*
* @param[in] $ldapObject The LSldapObject
*
* @retval string asterisk MD5 hashed password or False
*/
function generate_asteriskMD5HashedPassword($ldapObject) {
if ( get_class($ldapObject -> attrs[ LS_ASTERISK_USERPASSWORD_ATTR ]) != 'LSattribute' ) {
LSerror :: addErrorCode('ASTERISK_02',array(LS_ASTERISK_USERPASSWORD_ATTR));
return;
}
$password = $ldapObject -> attrs[ LS_ASTERISK_USERPASSWORD_ATTR ] -> ldap -> getClearPassword();
if (!$password or empty($password)) {
LSerror :: addErrorCode('ASTERISK_03');
return;
}
return hashAsteriskPassword($ldapObject,(string)$password);
}