summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 603af7d)
raw | patch | inline | side by side (parent: 603af7d)
author | cajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 21 Jan 2010 14:44:13 +0000 (14:44 +0000) | ||
committer | cajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 21 Jan 2010 14:44:13 +0000 (14:44 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15235 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/plugins/personal/posix/class_posixAccount.inc | patch | blob | history | |
gosa-core/plugins/personal/posix/generic.tpl | patch | blob | history |
diff --git a/gosa-core/plugins/personal/posix/class_posixAccount.inc b/gosa-core/plugins/personal/posix/class_posixAccount.inc
index cdf74fe9eba78991549432d0bc538c7cb9611a81..cbdf7366a01cb3914e0f2cfd8088bf0946357e93 100644 (file)
var $uid= "";
var $multiple_support = TRUE;
var $groupMembership_some = array();
+ var $groupMembershipList;
/* constructor, if 'dn' is set, the node loads the given
'dn' from LDAP */
session::set("sysfilter", $sysfilter);
}
$this->ui = get_userinfo();
+
+ /* Create list widget */
+ $this->groupMembershipList= new sortableListing($this->groupMembership, $this->generateGroupInfos());
+ $this->groupMembershipList->setDeleteable(true);
+ $this->groupMembershipList->setHeader(array(_("Group"),_("Description")));
+ $this->groupMembershipList->setColspecs(array('*','*'));
+ $this->groupMembershipList->setWidth("100%");
+ $this->groupMembershipList->setHeight("130px");
+ $this->groupMembershipList->setInstantDelete(false);
}
plugin::execute();
$display= "";
+ /* Let the lists update themselves */
+ $this->groupMembershipList->setAcl($this->getacl('memberUid', (!is_object($this->parent) && !session::is_set('edit'))));
+ $this->groupMembershipList->update();
+
/* Log view */
if($this->is_account && !$this->view_logged){
$this->view_logged = TRUE;
$this->delGroup ($_POST['group_list']);
}
+ /* Delete selected groups */
+ $action= $this->groupMembershipList->getAction();
+ if ($action['action'] == 'delete') {
+ $this->delGroup (array($this->groupMembershipList->getKey($action['targets'][0])));
+ }
+
/* Add user workstation? */
if (isset($_POST["add_ws"])){
$this->show_ws_dialog= TRUE;
/* Show main page */
$smarty= get_smarty();
$smarty->assign("usePrototype", "true");
+ $smarty->assign("groupMembershipList", $this->groupMembershipList->render());
/* In 'MyAccount' mode, we must remove write acls if we are not in editing mode. */
$SkipWrite = (!isset($this->parent) || !$this->parent) && !session::is_set('edit');
}
}
- /* Sort groups */
- asort ($this->groupMembership);
- reset ($this->groupMembership);
+ // Sync new list
+ $this->groupMembershipList->setListData($this->groupMembership, $this->generateGroupInfos());
}
}
}
}
+
+ // Sync new list
+ $this->groupMembershipList->setListData($this->groupMembership, $this->generateGroupInfos());
}
plugin::set_multi_edit_values($attrs);
$this->groupMembership = $groups;
}
+
+
+ function generateGroupInfos()
+ {
+ $tmp= array();
+
+ foreach ($this->groupMembership as $key => $value) {
+ if (!preg_match('/^([^[]+)\[(.*)\]$/', $value, $m)) {
+ $tmp[$key]= array($value, "");
+ } else {
+ $tmp[$key]= array(rtrim($m[1]), $m[2]);
+ }
+ }
+
+ return ($tmp);
+ }
+
}
+
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>
diff --git a/gosa-core/plugins/personal/posix/generic.tpl b/gosa-core/plugins/personal/posix/generic.tpl
index ceb6fa86dc8e273e704a13c799cff32a63ba6b4e..5fe78a56778cf19bba92e50e92db74376c450703 100644 (file)
<b style="color:red">{t}(Warning: more than 16 groups are not supported by NFS!){/t}</b>
<br>
{/if}
-{render acl=$groupMembershipACL}
- <select style="width:100%; height:130px;" name="group_list[]" size=16 multiple >
-{if !$multiple_support}
- {html_options options=$groupMembership}
-{else}
- {foreach from=$groupMembership item=group key=key}
- <option value="{$key}">{$group} ({t}Common group{/t})</option>
- {/foreach}
- {foreach from=$groupMembership_some item=group key=key}
- <option value="{$key}"
- style='color: #888888; background: #DDDDDD;background-color: #DDDDDD;'>{$group} ({t}Groups differ{/t})</option>
- {/foreach}
-{/if}
- </select>
-{/render}
- <br>
-{render acl=$groupMembershipACL}
+ {render acl=$groupMembershipACL}
+ {$groupMembershipList}
+ {/render}
+ {render acl=$groupMembershipACL}
<input type=submit value="{msgPool type=addButton}" name="edit_groupmembership" >
-{/render}
-{render acl=$groupMembershipACL}
+ {/render}
+<!--{render acl=$groupMembershipACL}
<input type=submit value="{msgPool type=delButton}" name="delete_groupmembership" >
-{/render}
+{/render}-->
</td>
</tr>
</table>