summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5157b75)
raw | patch | inline | side by side (parent: 5157b75)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 24 Feb 2010 10:13:54 +0000 (10:13 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 24 Feb 2010 10:13:54 +0000 (10:13 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15685 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/plugins/admin/departments/class_department.inc | patch | blob | history | |
gosa-core/plugins/admin/departments/generic.tpl | patch | blob | history |
diff --git a/gosa-core/plugins/admin/departments/class_department.inc b/gosa-core/plugins/admin/departments/class_department.inc
index ba0cc57099b6105356ccc23788d9803ccaf7f693..859ec3f9a52b4eab00a467a531c8d9022340bc02 100644 (file)
/* attribute list for save action */
var $attributes= array("ou", "description", "businessCategory", "st", "l", "postalAddress",
- "telephoneNumber", "facsimileTelephoneNumber", "gosaUnitTag");
+ "telephoneNumber", "facsimileTelephoneNumber", "gosaUnitTag", "manager");
/* Do not append the structural object classes here, they are added dynamically in the constructor */
var $objectclasses= array("top", "gosaDepartment");
var $orig_ou = "";
var $baseSelector;
+ var $manager_enabled = FALSE;
+ var $manager_name ="";
+ var $manager ="";
+
function department (&$config, $dn)
{
/* Add the default structural obejct class 'locality' if this is a new entry
$this->baseSelector->setSubmitButton(false);
$this->baseSelector->setHeight(300);
$this->baseSelector->update(true);
+
+
+
+ // If the 'manager' attribute is present in gosaDepartment allow to manage it.
+ $ldap = $this->config->get_ldap_link();
+ $ocs = $ldap->get_objectclasses();
+ if(isset($ocs['gosaDepartment']['MAY']) && in_array('manager', $ocs['gosaDepartment']['MAY'])){
+ $this->manager_enabled = TRUE;
+
+ // Detect the managers name
+ $this->manager_name = "";
+ $ldap = $this->config->get_ldap_link();
+ if(!empty($this->manager)){
+ $ldap->cat($this->manager, array('cn'));
+ if($ldap->count()){
+ $attrs = $ldap->fetch();
+ $this->manager_name = $attrs['cn'][0];
+ }else{
+ $this->manager_name = "("._("Unknown")."!): ".$this->manager;
+ }
+ }
+ }
}
function execute()
$this->config->get_departments($this->dn);
$this->config->make_idepartments();
$smarty= get_smarty();
- $smarty->assign("usePrototype", "true");
+ $smarty->assign("usePrototype", "true");
+
+ // Clear manager attribute if requested
+ if(preg_match("/ removeManager/i", " ".implode(array_keys($_POST),' ')." ")){
+ $this->manager = "";
+ $this->manager_name = "";
+ }
+
+ // Allow to manager manager attribute
+ if($this->manager_enabled){
+
+ // Allow to select a new inetOrgPersion:manager
+ if(preg_match("/ editManager/i", " ".implode(array_keys($_POST),' ')." ")){
+ $this->dialog = new singleUserSelect($this->config, get_userinfo());
+ }
+ if($this->dialog && count($this->dialog->detectPostActions())){
+ $users = $this->dialog->detectPostActions();
+ if(isset($users['targets']) && count($users['targets'])){
+
+ $headpage = $this->dialog->getHeadpage();
+ $dn = $users['targets'][0];
+ $attrs = $headpage->getEntry($dn);
+ $this->manager = $dn;
+ $this->manager_name = $attrs['cn'][0];
+ $this->dialog = NULL;
+ }
+ }
+ if(isset($_POST['add_users_cancel'])){
+ $this->dialog = NULL;
+ }
+ if($this->dialog) return($this->dialog->execute());
+ }
+ $smarty->assign("manager",$this->manager);
+ $smarty->assign("manager_name",$this->manager_name);
+ $smarty->assign("manager_enabled",$this->manager_enabled);
+
$tmp = $this->plInfo();
foreach($tmp['plProvidedAcls'] as $name => $translation){
"postalAddress" => _("Address"),
"telephoneNumber" => _("Telephone"),
"facsimileTelephoneNumber" => _("Fax"),
+ "manager" => _("Manager"),
"gosaUnitTag" => _("Administrative settings"))
));
diff --git a/gosa-core/plugins/admin/departments/generic.tpl b/gosa-core/plugins/admin/departments/generic.tpl
index 022098f827e7cf2c7694a9bfcd54e8c4f7c5bb7d..5e0dd79df164e2638f4ce18b9a7cbadd6ebb84e4 100644 (file)
</td>
</tr>
{/if}
+
+ {if $manager_enabled}
+ <tr>
+ <td><label for="manager">{t}Manager{/t}</label></td>
+ <td>
+{render acl=$managerACL}
+ <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+ title='{$manager}'>
+{/render}
+{render acl=$managerACL}
+ <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+{/render}
+ {if $manager!=""}
+{render acl=$managerACL}
+ <img src='images/info_small.png' title='{$manager}' class='center'>
+{/render}
+{render acl=$managerACL}
+ <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+{/render}
+ {/if}
+ </td>
+ </tr>
+ {/if}
+
</table>
</td>