patch from Pavel
This commit is contained in:
parent
a9cf18f451
commit
057bb829fd
|
@ -201,10 +201,7 @@ class asteriskExtensionNewUI extends baseModule {
|
||||||
* @return htmlElement HTML meta data
|
* @return htmlElement HTML meta data
|
||||||
*/
|
*/
|
||||||
function display_html_attributes() {
|
function display_html_attributes() {
|
||||||
//Set default owner as logged in user if no other owner is set
|
|
||||||
if ( !$this->isExtensionOwnerSet()) {
|
|
||||||
$this->setDefaultExtensionOwner();
|
|
||||||
}
|
|
||||||
|
|
||||||
$return = new htmlTable();
|
$return = new htmlTable();
|
||||||
|
|
||||||
|
@ -215,10 +212,15 @@ class asteriskExtensionNewUI extends baseModule {
|
||||||
if (isset($this->extensionRows[0]['astextension'][0])) {
|
if (isset($this->extensionRows[0]['astextension'][0])) {
|
||||||
$extName = $this->extensionRows[0]['astextension'][0];
|
$extName = $this->extensionRows[0]['astextension'][0];
|
||||||
}
|
}
|
||||||
|
//This procedure LOAD all data from LDAP and then print to a page
|
||||||
$this->render_extensions_by_priority($extName, $return);
|
$this->render_extensions_by_priority($extName, $return);
|
||||||
|
|
||||||
// owners
|
// owners
|
||||||
|
//Set default owner as logged in user if no other owner is set
|
||||||
|
if ( !$this->isExtensionOwnerSet()) {
|
||||||
|
$this->setDefaultExtensionOwner();
|
||||||
|
}
|
||||||
|
|
||||||
$this->render_exten_owners_set_controls($return);
|
$this->render_exten_owners_set_controls($return);
|
||||||
|
|
||||||
return $return;
|
return $return;
|
||||||
|
@ -256,6 +258,9 @@ class asteriskExtensionNewUI extends baseModule {
|
||||||
$entries = $this->array_sort($entries, 'astpriority');
|
$entries = $this->array_sort($entries, 'astpriority');
|
||||||
$this->extensionRowsOrig = $entries;
|
$this->extensionRowsOrig = $entries;
|
||||||
$this->extensionRows = $entries;
|
$this->extensionRows = $entries;
|
||||||
|
if(isset($this->extensionRows[0]['member'])){
|
||||||
|
$this->extensionOwners = $this->extensionRows[0]['member'];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$entries = $this->extensionRows;
|
$entries = $this->extensionRows;
|
||||||
}
|
}
|
||||||
|
@ -530,7 +535,7 @@ class asteriskExtensionNewUI extends baseModule {
|
||||||
* Return true if even one owner is set and false otherwise
|
* Return true if even one owner is set and false otherwise
|
||||||
*/
|
*/
|
||||||
function isExtensionOwnerSet(){
|
function isExtensionOwnerSet(){
|
||||||
if (sizeof($this->extensionOwners) > 0) {
|
if ( sizeof($this->extensionOwners) > 0 ) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -894,7 +899,7 @@ class asteriskExtensionNewUI extends baseModule {
|
||||||
for ($rowCounter = 0; $rowCounter < count($this->extensionRowsOrig); $rowCounter++) {
|
for ($rowCounter = 0; $rowCounter < count($this->extensionRowsOrig); $rowCounter++) {
|
||||||
$rowOrig = $this->extensionRowsOrig[$rowCounter];
|
$rowOrig = $this->extensionRowsOrig[$rowCounter];
|
||||||
unset($rowOrig['dn']);
|
unset($rowOrig['dn']);
|
||||||
if ($rowCounter <= count($this->extensionRows)) {
|
if ($rowCounter < count($this->extensionRows)) {
|
||||||
$row = $this->extensionRows[$rowCounter];
|
$row = $this->extensionRows[$rowCounter];
|
||||||
|
|
||||||
if (count($diffVals = array_diff_key($rowOrig, $row)) != 0) {
|
if (count($diffVals = array_diff_key($rowOrig, $row)) != 0) {
|
||||||
|
@ -906,7 +911,14 @@ class asteriskExtensionNewUI extends baseModule {
|
||||||
$diffValsSerialysed = array_diff(array_map("serialize", array_intersect_key($row, $rowOrig)), array_map("serialize", $rowOrig));
|
$diffValsSerialysed = array_diff(array_map("serialize", array_intersect_key($row, $rowOrig)), array_map("serialize", $rowOrig));
|
||||||
if (count($diffValsSerialysed) != 0) {
|
if (count($diffValsSerialysed) != 0) {
|
||||||
$diffVals = array_map("unserialize", $diffValsSerialysed);
|
$diffVals = array_map("unserialize", $diffValsSerialysed);
|
||||||
ldap_mod_replace($_SESSION['ldap']->server(), "cn=" . $row["cn"][0] . "," . $this->getAccountContainer()->dnSuffix, $diffVals);
|
if($row["cn"][0] == $rowOrig["cn"][0]){
|
||||||
|
ldap_mod_replace($_SESSION['ldap']->server(), "cn=" . $row["cn"][0] . "," . $this->getAccountContainer()->dnSuffix, $diffVals);
|
||||||
|
}else{
|
||||||
|
$origDN = "cn=" . $rowOrig["cn"][0] . "," . $this->getAccountContainer()->dnSuffix;
|
||||||
|
$newRDN = "cn=" . $row["cn"][0];
|
||||||
|
ldap_rename($_SESSION['ldap']->server(), $origDN, $newRDN, $this->getAccountContainer()->dnSuffix, true);
|
||||||
|
ldap_mod_replace($_SESSION['ldap']->server(), $newRDN . "," . $this->getAccountContainer()->dnSuffix, $diffVals);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ldap_delete($_SESSION['ldap']->server(), "cn=" . $rowOrig["cn"][0] . "," . $_SESSION['config']->get_Suffix('asteriskExtNewUI'));
|
ldap_delete($_SESSION['ldap']->server(), "cn=" . $rowOrig["cn"][0] . "," . $_SESSION['config']->get_Suffix('asteriskExtNewUI'));
|
||||||
|
|
Loading…
Reference in New Issue