diff options
author | Björn Geiger | 2011-04-08 13:20:06 +0200 |
---|---|---|
committer | Björn Geiger | 2011-04-08 13:20:06 +0200 |
commit | fb9e5f028899f8205541fe86d7eb9c5e12c4a5ad (patch) | |
tree | bd1864cd6dcd4668ba9131b04bf6490ef9e803b3 /application | |
parent | highlight in Bootmenu gefixt und das default-Bootmenu bekomtm kein Link zum s... (diff) | |
download | pbs2-fb9e5f028899f8205541fe86d7eb9c5e12c4a5ad.tar.gz pbs2-fb9e5f028899f8205541fe86d7eb9c5e12c4a5ad.tar.xz pbs2-fb9e5f028899f8205541fe86d7eb9c5e12c4a5ad.zip |
Auch beim hinzufügen von weiteren Rechten nun Checkboxliste
Diffstat (limited to 'application')
-rw-r--r-- | application/models/RightRolesMapper.php | 2 | ||||
-rw-r--r-- | application/modules/user/controllers/RoleController.php | 28 | ||||
-rw-r--r-- | application/modules/user/forms/LinkRight.php | 45 | ||||
-rw-r--r-- | application/modules/user/forms/RoleAdd.php | 16 | ||||
-rw-r--r-- | application/modules/user/layouts/user.phtml | 101 | ||||
-rw-r--r-- | application/modules/user/views/scripts/role/show.phtml | 2 |
6 files changed, 115 insertions, 79 deletions
diff --git a/application/models/RightRolesMapper.php b/application/models/RightRolesMapper.php index 32ed666..4ab37f2 100644 --- a/application/models/RightRolesMapper.php +++ b/application/models/RightRolesMapper.php @@ -86,7 +86,7 @@ class Application_Model_RightRolesMapper if (null === ($roleID = $rightroles->getRoleID()) || null === ($rightID = $rightroles->getRightID())) { return; } else { - $this->getDbTable()->delete(array('roleID = ?' => $roleID, 'rightID = ?' => $roleID)); + $this->getDbTable()->delete(array('roleID = ?' => $roleID, 'rightID = ?' => $rightID)); } } diff --git a/application/modules/user/controllers/RoleController.php b/application/modules/user/controllers/RoleController.php index 4e0aa52..88e2eeb 100644 --- a/application/modules/user/controllers/RoleController.php +++ b/application/modules/user/controllers/RoleController.php @@ -303,20 +303,24 @@ class User_RoleController extends Zend_Controller_Action } if(count($rightlist) > 0) { if (!isset($_POST["link"])){ - $linkForm = new user_Form_LinkRight(array('rightlist' => $rightlist, 'roleID' => $roleID)); + $linkForm = new user_Form_LinkRight(array('rightlist' => $rightlist)); } else { - $linkForm = new user_Form_LinkRight(array('rightlist' => $rightlist, 'roleID' => $roleID), $_POST); + $linkForm = new user_Form_LinkRight(array('rightlist' => $rightlist, $_POST)); if ($linkForm->isValid($_POST)) { - $rightroles = new Application_Model_RightRoles(); - $rightroles->setRightID($_POST['rightID']); - $rightroles->setRoleID($roleID); - try { - $this->rightRolesMapper->save($rightroles); - } catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - return; + foreach($_POST['rights'] as $rightID => $bool) { + if($bool == 1) { + $rightroles = new Application_Model_RightRoles(); + $rightroles->setRightID($rightID); + $rightroles->setRoleID($roleID); + try { + $this->rightRolesMapper->save($rightroles); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + } } $this->_redirect('/user/role/show/roleID/' . $roleID); return; diff --git a/application/modules/user/forms/LinkRight.php b/application/modules/user/forms/LinkRight.php index 54aacd6..80cfb1d 100644 --- a/application/modules/user/forms/LinkRight.php +++ b/application/modules/user/forms/LinkRight.php @@ -3,29 +3,54 @@ class user_Form_LinkRight extends Zend_Form { private $rightlist; - private $roleID; public function setRightlist($rightlist){ $this->rightlist = $rightlist; } - public function setRoleID($roleID){ - $this->roleID = $roleID; - } - public function init() { - $this->setName("LinkRight"); + $this->setName("LinkRights"); $this->setMethod('post'); - $rightfield = $this->createElement('select','rightID',array('label'=> 'Right: ','required' => true,'multioptions'=> $this->rightlist)); - $rightfield->setRegisterInArrayValidator(false); - $this->addElement($rightfield); + $sform = new Zend_Form_SubForm(array('legend' => 'Rights:')); + + $sform->addElement('button', 'checkAll', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Check All', + 'class' => 'leftbutton', + 'onclick' => "checkAllCheckBoxes();", + )); + + $sform->addElement('button', 'uncheckAll', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Uncheck All', + 'onclick' => "uncheckAllCheckBoxes();", + )); + + if(count($this->rightlist) > 0) { + foreach($this->rightlist as $rightcategory => $rights) { + foreach($rights as $rightID => $rightTitle) { + $element = $this->createElement('checkbox', "$rightID", array( + 'label' => $rightTitle . ':', + 'belongsTo' => 'rights', + )); + $elements[] = $rightID; + $sform->addElement($element); + } + $sform->addDisplayGroup($elements, "$rightcategory", array("legend" => $rightcategory . ":")); + unset($elements); + } + } + + $this->addSubForm($sform, 'rights'); $this->addElement('submit', 'link', array( 'required' => false, 'ignore' => true, - 'label' => 'Add', + 'label' => 'Add Rights', )); $this->addElement('button', 'cancel', array( diff --git a/application/modules/user/forms/RoleAdd.php b/application/modules/user/forms/RoleAdd.php index 5968b47..d165701 100644 --- a/application/modules/user/forms/RoleAdd.php +++ b/application/modules/user/forms/RoleAdd.php @@ -32,6 +32,21 @@ class user_Form_RoleAdd extends Zend_Form )); $sform = new Zend_Form_SubForm(array('legend' => 'Rights:')); + + $sform->addElement('button', 'checkAll', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Check All', + 'class' => 'leftbutton', + 'onclick' => "checkAllCheckBoxes(new Array('inheritance'));", + )); + + $sform->addElement('button', 'uncheckAll', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Uncheck All', + 'onclick' => "uncheckAllCheckBoxes(new Array('inheritance'));", + )); if(count($this->rightlist) > 0) { foreach($this->rightlist as $rightcategory => $rights) { foreach($rights as $rightID => $rightTitle) { @@ -46,6 +61,7 @@ class user_Form_RoleAdd extends Zend_Form unset($elements); } } + $this->addSubForm($sform, 'rights'); $this->addElement('checkbox', 'inheritance', array( diff --git a/application/modules/user/layouts/user.phtml b/application/modules/user/layouts/user.phtml index edbe209..b27b747 100644 --- a/application/modules/user/layouts/user.phtml +++ b/application/modules/user/layouts/user.phtml @@ -29,60 +29,52 @@ echo $this->headScript()."\n"; <li class='navTreeItem'><a href='/user/'>user</a></li> <li> <ul class='navTreeLevel1'> - <?php if (Zend_Auth::getInstance()->hasIdentity() && count(Zend_Session::namespaceGet('userIDs')) > 0) { - # This should be splitted - if(Pbs_Acl::checkRight('psod')) - echo "<li class='navTreeItem'><a href='/user/person'>Own Details</a></li>"; - if(Pbs_Acl::checkRight('pso')) - echo "<li class='navTreeItem'><a href='/user/person/showall'>Personlist</a></li>"; - if(Pbs_Acl::checkRight('gsdo')) - echo "<li class='navTreeItem'><a href='/user/group'>Own Group</a></li>"; - if(Pbs_Acl::checkRight('gso')) - echo "<li class='navTreeItem'><a href='/user/group/showall'>Grouplist</a></li>"; - if(Pbs_Acl::checkRight('ro')) - echo "<li class='navTreeItem'><a href='/user/role'>Role</a></li>"; - if(Pbs_Acl::checkRight('bai') || Pbs_Acl::checkRight('bui')) - echo "<li class='navTreeItem'><a href='/user/bootiso'>BootIso</a></li>"; - if(Pbs_Acl::checkRight('pro')) - echo "<li class='navTreeItem'><a href='/user/preboot'>PreBoot</a></li>"; - if(Pbs_Acl::checkRight('booai') || Pbs_Acl::checkRight('booui')) - echo "<li class='navTreeItem'><a href='/user/bootmenu'>BootMenu</a></li>"; - if(Pbs_Acl::checkRight('csai') || Pbs_Acl::checkRight('csui')) - echo "<li class='navTreeItem'><a href='/user/config'>Config</a></li>"; - if(Pbs_Acl::checkRight('boai') || Pbs_Acl::checkRight('boui')) - echo "<li class='navTreeItem'><a href='/user/bootos'>BootOs</a></li>"; - if(Pbs_Acl::checkRight('clo')) - echo "<li class='navTreeItem'><a href='/user/client'>Client</a></li>"; - if(Pbs_Acl::checkRight('fo')) - echo "<li class='navTreeItem'><a href='/user/filter'>Filter</a></li>"; - if(Pbs_Acl::checkRight('poo')) - echo "<li class='navTreeItem'><a href='/user/pool'>Pool</a></li>"; - if(Pbs_Acl::checkRight('so')) - echo "<li class='navTreeItem'><a href='/user/session'>Session</a></li>"; - } - ?> - <?php if (!Zend_Auth::getInstance()->hasIdentity()) {?> - <li class='navTreeItem'><a href='/user/auth/login'>Login</a></li> - <li class='navTreeItem'><a href='/user/auth/register'>Register</a></li> - <?php - } else { + <?php if (Zend_Auth::getInstance()->hasIdentity() && count(Zend_Session::namespaceGet('userIDs')) > 0) { + # This should be splitted + if(Pbs_Acl::checkRight('psod')) + echo "<li class='navTreeItem'><a href='/user/person'>Own Details</a></li>"; + if(Pbs_Acl::checkRight('pso')) + echo "<li class='navTreeItem'><a href='/user/person/showall'>Personlist</a></li>"; + if(Pbs_Acl::checkRight('gsdo')) + echo "<li class='navTreeItem'><a href='/user/group'>Own Group</a></li>"; + if(Pbs_Acl::checkRight('gso')) + echo "<li class='navTreeItem'><a href='/user/group/showall'>Grouplist</a></li>"; + if(Pbs_Acl::checkRight('ro')) + echo "<li class='navTreeItem'><a href='/user/role'>Rolelist</a></li>"; + if(Pbs_Acl::checkRight('bai') || Pbs_Acl::checkRight('bui')) + echo "<li class='navTreeItem'><a href='/user/bootiso'>BootIso</a></li>"; + if(Pbs_Acl::checkRight('pro')) + echo "<li class='navTreeItem'><a href='/user/preboot'>PreBoot</a></li>"; + if(Pbs_Acl::checkRight('booai') || Pbs_Acl::checkRight('booui')) + echo "<li class='navTreeItem'><a href='/user/bootmenu'>BootMenu</a></li>"; + if(Pbs_Acl::checkRight('csai') || Pbs_Acl::checkRight('csui')) + echo "<li class='navTreeItem'><a href='/user/config'>Config</a></li>"; + if(Pbs_Acl::checkRight('boai') || Pbs_Acl::checkRight('boui')) + echo "<li class='navTreeItem'><a href='/user/bootos'>BootOs</a></li>"; + if(Pbs_Acl::checkRight('clo')) + echo "<li class='navTreeItem'><a href='/user/client'>Client</a></li>"; + if(Pbs_Acl::checkRight('fo')) + echo "<li class='navTreeItem'><a href='/user/filter'>Filter</a></li>"; + if(Pbs_Acl::checkRight('poo')) + echo "<li class='navTreeItem'><a href='/user/pool'>Pool</a></li>"; + if(Pbs_Acl::checkRight('so')) + echo "<li class='navTreeItem'><a href='/user/session'>Session</a></li>"; + } + ?> + <?php if (!Zend_Auth::getInstance()->hasIdentity()) { + echo "<li class='navTreeItem'><a href='/user/auth/login'>Login</a></li>"; + echo "<li class='navTreeItem'><a href='/user/auth/register'>Register</a></li>"; + } else { if(count(Zend_Session::namespaceGet('userIDs')) > 0) { - ?> - <li class='navTreeItem'><a href='/user/person/changemembership'>Change - Membership</a></li> - <?php + echo "<li class='navTreeItem'><a href='/user/person/changemembership'>Change Membership</a></li>"; } else { - ?> - <li class='navTreeItem'><a href='/user/person/selectmembership'>Select - Membership</a></li> - <?php + echo "<li class='navTreeItem'><a href='/user/person/selectmembership'>Select Membership</a></li>"; } - ?> - <li class='navTreeItem'><a href='/user/auth/delete'>Delete Account</a></li> - <li class='navTreeItem'><a href='/user/auth/logout'>Logout</a></li> - <?php - } - ?> + if(Pbs_Acl::checkRight('pdo')) + echo "<li class='navTreeItem'><a href='/user/auth/delete'>Delete Account</a></li>"; + echo "<li class='navTreeItem'><a href='/user/auth/logout'>Logout</a></li>"; + } + ?> </ul> </li> </ul> @@ -97,11 +89,11 @@ echo $this->headScript()."\n"; </div> <div id="logo-bar-red"></div> <div id="head-titlebar"> -<div style='float:right'><?php +<div style='float: right'><?php if(Zend_Auth::getInstance()->hasIdentity()){ echo 'Angemeldet als '; $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); - + if(isset($userIDsNamespace['membershipID'])){ $membershipMapper = new Application_Model_MembershipMapper(); $membership = new Application_Model_Membership(); @@ -122,8 +114,7 @@ if(Zend_Auth::getInstance()->hasIdentity()){ echo "<b><i>".$role->getTitle()."</i></b>"; } } -?> -</div> +?></div> <?php echo ucwords($request->getControllerName()) . " > " . ucwords($request->getActionName()); ?></div> diff --git a/application/modules/user/views/scripts/role/show.phtml b/application/modules/user/views/scripts/role/show.phtml index 6769336..8194353 100644 --- a/application/modules/user/views/scripts/role/show.phtml +++ b/application/modules/user/views/scripts/role/show.phtml @@ -33,7 +33,7 @@ if($this->roleID) { <h2>Rights:</h2> <?php if($this->rightsAvailable === true) { - echo $this->formButton('linkright', 'Add Right', array( + echo $this->formButton('linkright', 'Add Rights', array( 'onclick' => 'self.location="/user/role/linkright/roleID/' . $this->role->getID() .'"', 'class' => 'addbutton'))?> <br /> |