openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 57bf6804d90d7aab1bde2057ac7d5a3d1854bb33
parent 8829bdad51ecd8653dd8a11a9d6b4637c84304d6
Author: dankert <devnull@localhost>
Date:   Sat,  7 Feb 2009 12:12:40 +0100

Vereinfachte Darstellung der Gruppenzugehörigkeiten.

Diffstat:
actionClasses/UserAction.class.php | 42++++++++++++++++++++++++++++++++++++++----
actionClasses/UserAction.ini.php | 6++++++
themes/default/templates/user/groups.tpl.src.php | 21+++++++++++++--------
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