commit 57bf6804d90d7aab1bde2057ac7d5a3d1854bb33
parent 8829bdad51ecd8653dd8a11a9d6b4637c84304d6
Author: dankert <devnull@localhost>
Date: Sat, 7 Feb 2009 12:12:40 +0100
Vereinfachte Darstellung der Gruppenzugehörigkeiten.
Diffstat:
3 files changed, 57 insertions(+), 12 deletions(-)
diff --git a/actionClasses/UserAction.class.php b/actionClasses/UserAction.class.php
@@ -250,15 +250,49 @@ class UserAction extends Action
$gruppenListe = array();
- foreach( $this->user->getGroups() as $id=>$name )
+ $allGroups = Group::getAll();
+ $userGroups = $this->user->getGroups();
+
+ foreach( $allGroups as $id=>$name )
{
+
+ $hasGroup = array_key_exists($id,$userGroups);
+ $varName = 'group'.$id;
$gruppenListe[$id] = array('name' =>$name,
- 'delgroupurl'=>Html::url($this->actionName,'delgroup',$this->getRequestId(),array('groupid'=>$id)) );
+ 'id' =>$id,
+ 'var' =>$varName,
+ 'member' =>$hasGroup
+ );
+ $this->setTemplateVar($varName,$hasGroup);
}
$this->setTemplateVar('memberships',$gruppenListe);
}
+ function savegroups()
+ {
+ $allGroups = Group::getAll();
+ $userGroups = $this->user->getGroups();
+
+ foreach( $allGroups as $id=>$name )
+ {
+ $hasGroup = array_key_exists($id,$userGroups);
+
+ if ( !$hasGroup && $this->hasRequestVar('group'.$id) )
+ {
+ $this->user->addGroup($id);
+ $this->addNotice('group',$name,'ADDED');
+ }
+
+ if ( $hasGroup && !$this->hasRequestVar('group'.$id) )
+ {
+ $this->user->delGroup($id);
+ $this->addNotice('group',$name,'DELETED');
+ }
+ }
+ }
+
+
/**
* Aendern des Kennwortes
*/
@@ -322,7 +356,7 @@ class UserAction extends Action
}
else
{
- // Berechtigung für "alle".
+ // Berechtigung f�r "alle".
}
// $show = array();
@@ -345,7 +379,7 @@ class UserAction extends Action
/**
- * @param String $name Menüpunkt
+ * @param String $name Men�punkt
* @return boolean
*/
function checkMenu( $menu )
diff --git a/actionClasses/UserAction.ini.php b/actionClasses/UserAction.ini.php
@@ -36,6 +36,12 @@ goto=groups
[groups]
menu=memberships
+editable=true
+target=savegroups
+
+[savegroups]
+menu=memberships
+goto=groups
[addgroup]
menu=memberships
diff --git a/themes/default/templates/user/groups.tpl.src.php b/themes/default/templates/user/groups.tpl.src.php
@@ -1,10 +1,14 @@
page
- window name:USER_MEMBERSHIPS widths:70%,30% width:70%
- list list:memberships extract:true
+ form
+ window name:USER_MEMBERSHIPS widths:5%,95% width:70%
+ list list:memberships extract:true
+ row
+ cell
+ checkbox name:var:var
+ cell
+ label for:var:var
+ image file:icon_group
+ text var:name
row
- cell class:fx
- image file:icon_group
- text var:name
- cell class:fx
- link url:var:delgroupurl
- text text:GLOBAL_DELETE
+ cell colspan:2 class:act
+ button type:ok +
\ No newline at end of file