summaryrefslogtreecommitdiffstats
path: root/application/modules/user/controllers/RoleController.php
diff options
context:
space:
mode:
authorSebastian Schmelzer2012-01-11 14:36:35 +0100
committerSebastian Schmelzer2012-01-11 14:36:35 +0100
commitfca04a6dab252eb9e8c0a92ce3b7e14b32e68d1e (patch)
tree6e6aaf749f34db8c7c7153c23ef85c57187430bb /application/modules/user/controllers/RoleController.php
parentAPI: mit addBootos kann man nun auch editieren (diff)
downloadpbs2-fca04a6dab252eb9e8c0a92ce3b7e14b32e68d1e.tar.gz
pbs2-fca04a6dab252eb9e8c0a92ce3b7e14b32e68d1e.tar.xz
pbs2-fca04a6dab252eb9e8c0a92ce3b7e14b32e68d1e.zip
format source files
Diffstat (limited to 'application/modules/user/controllers/RoleController.php')
-rw-r--r--application/modules/user/controllers/RoleController.php886
1 files changed, 435 insertions, 451 deletions
diff --git a/application/modules/user/controllers/RoleController.php b/application/modules/user/controllers/RoleController.php
index 4a4640f..8d8c3c2 100644
--- a/application/modules/user/controllers/RoleController.php
+++ b/application/modules/user/controllers/RoleController.php
@@ -1,474 +1,458 @@
-<?php
+<? php
/*
* Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg
- * This program is free software distributed under the GPL version 2.
- * See http://gpl.openslx.org/
- *
- * If you have any feedback please consult http://feedback.openslx.org/ and
- * send your suggestions, praise, or complaints to feedback@openslx.org
- *
- * General information about OpenSLX can be found at http://openslx.org/
- */
+* This program is free software distributed under the GPL version 2.
+* See http://gpl.openslx.org/
+*
+* If you have any feedback please consult http://feedback.openslx.org/ and
+* send your suggestions, praise, or complaints to feedback@openslx.org
+*
+* General information about OpenSLX can be found at http://openslx.org/
+*/
-class User_RoleController extends Zend_Controller_Action
-{
- protected $userIDsNamespace = null;
- protected $membership;
- protected $membershipMapper;
+class User_RoleController extends Zend_Controller_Action {
+ protected $userIDsNamespace = null;
+ protected $membership;
+ protected $membershipMapper;
- public function init()
- {
- if (Zend_Auth::getInstance()->hasIdentity()) {
- $this->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
- if($this->userIDsNamespace['roleID'] ==''){
- $pbsNotifier = new Pbs_Notifier();
- echo $pbsNotifier->notify('No roleID set','forbidden');
- }
- $this->roleMapper = new Application_Model_RoleMapper();
- $this->rightMapper = new Application_Model_RightMapper();
- $this->rightRolesMapper = new Application_Model_RightRolesMapper();
- $this->membershipMapper = new Application_Model_MembershipMapper();
-
- $userIDsNamespace = Zend_Session::namespaceGet('userIDs');
- $this->membership = new Application_Model_Membership();
- $this->membershipMapper->find($userIDsNamespace['membershipID'],$this->membership);
- } else {
- $this->_helper->redirector('login', 'auth');
- }
- if($this->membership->getGroupID() == ''){
- $this->_helper->redirector('selectmembership', 'person');
- }
- }
+ public function init() {
+ if (Zend_Auth::getInstance()->hasIdentity()) {
+ $this->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
+ if($this->userIDsNamespace['roleID'] == '') {
+ $pbsNotifier = new Pbs_Notifier();
+ echo $pbsNotifier->notify('No roleID set', 'forbidden');
+ }
+ $this->roleMapper = new Application_Model_RoleMapper();
+ $this->rightMapper = new Application_Model_RightMapper();
+ $this->rightRolesMapper = new Application_Model_RightRolesMapper();
+ $this->membershipMapper = new Application_Model_MembershipMapper();
- public function indexAction()
- {
- if(!Pbs_Acl::checkRight('ro')) {
- $this->_redirect('/user');
- }
- $this->view->membership = $this->membership;
- $groupID = $this->membership->getGroupID();
- $this->view->roleList = $this->roleMapper->findBy(array('groupID' => $groupID),true);
-
- $roles = array();
- $groupGroupsMapper = new Application_Model_GroupGroupsMapper();
- $parents = $groupGroupsMapper->getParentGroups($groupID);
- $groupMapper = new Application_Model_GroupMapper();
- $roleMapper = new Application_Model_RoleMapper();
- $crawled = array();
- foreach($parents as $p){
- foreach($p as $a){
- if(!in_array($a,$crawled)){
- $crawled[] = $a;
- $group = $groupMapper->find($a);
- if($groupID != $a)
- $r = $roleMapper->findBy(array('groupID' => $a,'inheritance'=>"1"));
- else
- $r = $roleMapper->findBy(array('groupID' => $a));
- foreach($r as $d){
- $roles[$group->getTitle()][] = $d;
- }
- }
- }
- }
- $this->view->roleList = $roles;
-
- // Search
- $search = $this->_request->getParam('search');
- $mySearch = new Pbs_Search();
- $mySearch->setSearchTerm($search);
- $mySearch->setModule('role');
- if($search != ''){
- $this->view->search = $mySearch->getSearchTerm();
- $this->view->roleList = $mySearch->search($this->view->roleList);
- }
- $this->view->searchform = $mySearch->searchForm();
+ $userIDsNamespace = Zend_Session::namespaceGet('userIDs');
+ $this->membership = new Application_Model_Membership();
+ $this->membershipMapper->find($userIDsNamespace['membershipID'], $this->membership);
+ } else {
+ $this->_helper->redirector('login', 'auth');
+ }
+ if($this->membership->getGroupID() == '') {
+ $this->_helper->redirector('selectmembership', 'person');
+ }
+ }
- // Pagination
- $pagination = new Pbs_Pagination();
- $pagination->setPerPage(10);
- $pagination->setElement($this->view->roleList);
- $pagination->setRequestPage($this->_request->getParam('page'));
- $pagination->setPageUrl('/user/role/index'.((isset($this->view->search))?'/search/'.$this->view->search:''));
+ public function indexAction() {
+ if(!Pbs_Acl::checkRight('ro')) {
+ $this->_redirect('/user');
+ }
+ $this->view->membership = $this->membership;
+ $groupID = $this->membership->getGroupID();
+ $this->view->roleList = $this->roleMapper->findBy(array('groupID' => $groupID), true);
- $this->view->roleList = $pagination->getElements();
- $this->view->pagination = $pagination->pagination();
- $this->view->page = $pagination->getRequestPage();
- $this->view->addRight = Pbs_Acl::checkRight('ra');
- $this->view->editRight = Pbs_Acl::checkRight('re');
- $this->view->deleteRight = Pbs_Acl::checkRight('rd');
- $this->view->detailsRight = Pbs_Acl::checkRight('rdd');
- $this->view->userIDsNamespace = $this->userIDsNamespace;
+ $roles = array();
+ $groupGroupsMapper = new Application_Model_GroupGroupsMapper();
+ $parents = $groupGroupsMapper->getParentGroups($groupID);
+ $groupMapper = new Application_Model_GroupMapper();
+ $roleMapper = new Application_Model_RoleMapper();
+ $crawled = array();
+ foreach($parents as $p) {
+ foreach($p as $a) {
+ if(!in_array($a, $crawled)) {
+ $crawled[] = $a;
+ $group = $groupMapper->find($a);
+ if($groupID != $a)
+ { $r = $roleMapper->findBy(array('groupID' => $a, 'inheritance' => "1")); }
+ else
+ { $r = $roleMapper->findBy(array('groupID' => $a)); }
+ foreach($r as $d) {
+ $roles[$group->getTitle()][] = $d;
+ }
+ }
+ }
+ }
+ $this->view->roleList = $roles;
- }
+ // Search
+ $search = $this->_request->getParam('search');
+ $mySearch = new Pbs_Search();
+ $mySearch->setSearchTerm($search);
+ $mySearch->setModule('role');
+ if($search != '') {
+ $this->view->search = $mySearch->getSearchTerm();
+ $this->view->roleList = $mySearch->search($this->view->roleList);
+ }
+ $this->view->searchform = $mySearch->searchForm();
- public function searchAction(){
- if(!Pbs_Acl::checkRight('ro')) {
- $this->_redirect('/user');
- }
- $this->_redirect('/user/role/index/search/'.($_GET['search']));
- }
+ // Pagination
+ $pagination = new Pbs_Pagination();
+ $pagination->setPerPage(10);
+ $pagination->setElement($this->view->roleList);
+ $pagination->setRequestPage($this->_request->getParam('page'));
+ $pagination->setPageUrl('/user/role/index'.((isset($this->view->search)) ? '/search/'.$this->view->search : ''));
- public function addAction()
- {
- if(!Pbs_Acl::checkRight('ra')) {
- $this->_redirect('/user');
- }
+ $this->view->roleList = $pagination->getElements();
+ $this->view->pagination = $pagination->pagination();
+ $this->view->page = $pagination->getRequestPage();
+ $this->view->addRight = Pbs_Acl::checkRight('ra');
+ $this->view->editRight = Pbs_Acl::checkRight('re');
+ $this->view->deleteRight = Pbs_Acl::checkRight('rd');
+ $this->view->detailsRight = Pbs_Acl::checkRight('rdd');
+ $this->view->userIDsNamespace = $this->userIDsNamespace;
- $roleID = $this->userIDsNamespace['roleID'];
- $rights = $this->rightMapper->fetchAll();
- if(count($rights) > 0) {
- $rightCategoryMapper = new Application_Model_RightCategoryMapper();
- foreach($rights as $right) {
- $rightCategory = $rightCategoryMapper->find($right->getRightcategoryID());
- $rightlist[$rightCategory->getTitle()][$right->getID()] = $right->getTitle();
- }
- }
- if (!isset($_POST["add"])){
- $addForm = new user_Form_RoleAdd(array('rightlist' => $rightlist, 'inheritanceright' => Pbs_Acl::checkRight('rir'), 'addrighttoroleright' => Pbs_Acl::checkRight('rar')));
- } else {
- $addForm = new user_Form_RoleAdd(array('rightlist' => $rightlist, 'inheritanceright' => Pbs_Acl::checkRight('rir'), 'addrighttoroleright' => Pbs_Acl::checkRight('rar')),$_POST);
- if ($addForm->isValid($_POST)) {
- $_POST['groupID'] = $this->userIDsNamespace['groupID'];
- $role = new Application_Model_Role($_POST);
- try {
- $this->roleMapper->save($role);
- $db = Zend_Db_Table::getDefaultAdapter();
- $insertedRoleID = $db->lastInsertId();
- } 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) {
- $rightrole = new Application_Model_RightRoles();
- $rightrole->setRightID($rightID);
- $rightrole->setRoleID($insertedRoleID);
- try {
- $this->rightRolesMapper->save($rightrole);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
- }
- }
- }
- $this->_helper->redirector('', 'role');
- return;
- }
- }
- $this->view->addForm = $addForm;
- }
+ }
- public function editAction()
- {
- if(!Pbs_Acl::checkRight('re')) {
- $this->_redirect('/user');
- }
- $roleID = $this->_request->getParam('roleID');
- if(!isset($roleID)) {
- if(count($this->userIDsNamespace) > 0) {
- $roleID = $this->userIDsNamespace['roleID'];
- }
- }
- if(!isset($roleID)) {
- $this->_helper->redirector('add', 'role');
- return;
- } else {
- $roleMapper = new Application_Model_RoleMapper();
- $role = $roleMapper->find($roleID);
- $roleGroupID = $role->getGroupID();
- }
- if($this->userIDsNamespace['groupID'] == $roleGroupID) {
- if (!isset($_POST["save"])){
- $role = $this->roleMapper->find($roleID);
- $_POST['title'] = $role->getTitle();
- $_POST['description'] = $role->getDescription();
- $_POST['groupID'] = $role->getGroupID();
- $_POST['inheritance'] = $role->getInheritance();
- $editForm = new user_Form_RoleEdit(array('roleID' => $roleID, 'inheritanceright' => Pbs_Acl::checkRight('rir')));
- } else {
- $editForm = new user_Form_RoleEdit(array('roleID' => $roleID, 'inheritanceright' => Pbs_Acl::checkRight('rir')), $_POST);
- if ($editForm->isValid($_POST)) {
+ public function searchAction() {
+ if(!Pbs_Acl::checkRight('ro')) {
+ $this->_redirect('/user');
+ }
+ $this->_redirect('/user/role/index/search/'.($_GET['search']));
+ }
- $role = new Application_Model_Role($_POST);
- $role->setID($roleID);
- try {
- $this->roleMapper->save($role);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
- }
- $this->_helper->redirector('', 'role');
- return;
- }
- }
- $this->view->editForm = $editForm;
- } else {
- $pbsNotifier = new Pbs_Notifier();
- echo $pbsNotifier->notify('modify','forbidden');
- $this->_helper-> viewRenderer-> setNoRender();
- return;
- }
- }
+ public function addAction() {
+ if(!Pbs_Acl::checkRight('ra')) {
+ $this->_redirect('/user');
+ }
- public function showAction()
- {
- if(!Pbs_Acl::checkRight('rdd')) {
- $this->_redirect('/user');
- }
- $roleID = $this->_request->getParam('roleID');
- if(!isset($roleID)) {
- if(count($this->userIDsNamespace) > 0) {
- $roleID = $this->userIDsNamespace['roleID'];
- }
- }
- $this->view->membership = $this->membership;
- if($roleID) {
- $roleMapper = new Application_Model_RoleMapper();
- $role = $roleMapper->find($roleID);
- $roleGroupID = $role->getGroupID();
- if($this->userIDsNamespace['groupID'] == $roleGroupID || $role->getInheritance() == 1) {
- $rightroles = $this->rightRolesMapper->findBy(array('roleID' => $roleID),true);
- if(count($rightroles) > 0) {
- foreach($rightroles as $rightrole) {
- $right = $this->rightMapper->find($rightrole['rightID']);
- $rightsList[$right->getRightcategoryID()][] = $right;
- }
- if(is_array($rightsList)) {
- $this->view->rightsList = $rightsList;
- }
- }
- $rightCategoryMapper = new Application_Model_RightCategoryMapper();
- $rightCategories = $rightCategoryMapper->fetchAll();
- if(count($rightCategories) > 0) {
- foreach($rightCategories as $rightCategory) {
- $rightcategorieslist[$rightCategory->getID()] = $rightCategory->getTitle();
- }
- $this->view->rightcategorieslist = $rightcategorieslist;
- }
- $rights = $this->rightMapper->fetchAll();
- if(count($rights) == count($rightroles)) {
- $this->view->rightsAvailable = false;
- } else {
- $this->view->rightsAvailable = true;
- }
- $this->view->editRight = Pbs_Acl::checkRight('re');
- $this->view->deleteRight = Pbs_Acl::checkRight('rd');
- $this->view->addRightToRoleRight = Pbs_Acl::checkRight('rar');
- $this->view->removeRightOfRoleRight = Pbs_Acl::checkRight('rrr');
- $this->view->role = $this->roleMapper->find($roleID);
- $this->view->roleID = $roleID;
- $this->view->userIDsNamespace = $this->userIDsNamespace;
- } else {
- $pbsNotifier = new Pbs_Notifier();
- echo $pbsNotifier->notify('view','forbidden');
- $this->_helper-> viewRenderer-> setNoRender();
- return;
- }
- } else {
- $this->_helper->redirector('', 'role');
- return;
- }
- }
+ $roleID = $this->userIDsNamespace['roleID'];
+ $rights = $this->rightMapper->fetchAll();
+ if(count($rights) > 0) {
+ $rightCategoryMapper = new Application_Model_RightCategoryMapper();
+ foreach($rights as $right) {
+ $rightCategory = $rightCategoryMapper->find($right->getRightcategoryID());
+ $rightlist[$rightCategory->getTitle()][$right->getID()] = $right->getTitle();
+ }
+ }
+ if (!isset($_POST["add"])) {
+ $addForm = new user_Form_RoleAdd(array('rightlist' => $rightlist, 'inheritanceright' => Pbs_Acl::checkRight('rir'), 'addrighttoroleright' => Pbs_Acl::checkRight('rar')));
+ } else {
+ $addForm = new user_Form_RoleAdd(array('rightlist' => $rightlist, 'inheritanceright' => Pbs_Acl::checkRight('rir'), 'addrighttoroleright' => Pbs_Acl::checkRight('rar')), $_POST);
+ if ($addForm->isValid($_POST)) {
+ $_POST['groupID'] = $this->userIDsNamespace['groupID'];
+ $role = new Application_Model_Role($_POST);
+ try {
+ $this->roleMapper->save($role);
+ $db = Zend_Db_Table::getDefaultAdapter();
+ $insertedRoleID = $db->lastInsertId();
+ } 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) {
+ $rightrole = new Application_Model_RightRoles();
+ $rightrole->setRightID($rightID);
+ $rightrole->setRoleID($insertedRoleID);
+ try {
+ $this->rightRolesMapper->save($rightrole);
+ } catch(Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ }
+ }
+ $this->_helper->redirector('', 'role');
+ return;
+ }
+ }
+ $this->view->addForm = $addForm;
+ }
- public function deleteAction()
- {
- if(!Pbs_Acl::checkRight('rd')) {
- $this->_redirect('/user');
- }
- $this->_helper->viewRenderer->setNoRender();
- $roleID = $this->_request->getParam('roleID');
- if(!isset($roleID)) {
- if(count($this->userIDsNamespace) > 0) {
- $roleID = $this->userIDsNamespace['roleID'];
- }
- }
- if (isset($roleID)){
- $roleMapper = new Application_Model_RoleMapper();
- $role = $roleMapper->find($roleID);
- $roleGroupID = $role->getGroupID();
- if($this->userIDsNamespace['groupID'] == $roleGroupID) {
- $role = $this->roleMapper->find($roleID);
- try {
- $this->roleMapper->delete($role);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
- }
- if($_SERVER['HTTP_REFERER']) {
- if(strpos($_SERVER['HTTP_REFERER'], '/user/role/show') !== false && strpos($_SERVER['HTTP_REFERER'], '/roleID/') === false) {
- $this->_helper->redirector('changemembership', 'person');
- } else {
- $this->_helper->redirector('', 'role');
- }
- } else {
- $this->_helper->redirector('', 'role');
- }
- return;
- } else {
- $pbsNotifier = new Pbs_Notifier();
- echo $pbsNotifier->notify('delete','forbidden');
- $this->_helper-> viewRenderer-> setNoRender();
- return;
- }
- } else {
- $this->_helper->redirector('', 'role');
- return;
- }
- }
+ public function editAction() {
+ if(!Pbs_Acl::checkRight('re')) {
+ $this->_redirect('/user');
+ }
+ $roleID = $this->_request->getParam('roleID');
+ if(!isset($roleID)) {
+ if(count($this->userIDsNamespace) > 0) {
+ $roleID = $this->userIDsNamespace['roleID'];
+ }
+ }
+ if(!isset($roleID)) {
+ $this->_helper->redirector('add', 'role');
+ return;
+ } else {
+ $roleMapper = new Application_Model_RoleMapper();
+ $role = $roleMapper->find($roleID);
+ $roleGroupID = $role->getGroupID();
+ }
+ if($this->userIDsNamespace['groupID'] == $roleGroupID) {
+ if (!isset($_POST["save"])) {
+ $role = $this->roleMapper->find($roleID);
+ $_POST['title'] = $role->getTitle();
+ $_POST['description'] = $role->getDescription();
+ $_POST['groupID'] = $role->getGroupID();
+ $_POST['inheritance'] = $role->getInheritance();
+ $editForm = new user_Form_RoleEdit(array('roleID' => $roleID, 'inheritanceright' => Pbs_Acl::checkRight('rir')));
+ } else {
+ $editForm = new user_Form_RoleEdit(array('roleID' => $roleID, 'inheritanceright' => Pbs_Acl::checkRight('rir')), $_POST);
+ if ($editForm->isValid($_POST)) {
- public function linkrightAction()
- {
- if(!Pbs_Acl::checkRight('rar')) {
- $this->_redirect('/user');
- }
- $roleID = $this->_request->getParam('roleID');
- if(!isset($roleID)) {
- if(count($this->userIDsNamespace) > 0) {
- $roleID = $this->userIDsNamespace['roleID'];
- }
- }
- if(isset($roleID)) {
- $roleMapper = new Application_Model_RoleMapper();
- $role = $roleMapper->find($roleID);
- $roleGroupID = $role->getGroupID();
- if($this->userIDsNamespace['groupID'] == $roleGroupID) {
- $rightroles = $this->rightRolesMapper->findBy(array('roleID' => $roleID),true);
- $rights = $this->rightMapper->fetchAll();
- if(count($rightroles) > 0) {
- if(count($rights) > 0) {
- $rightCategoryMapper = new Application_Model_RightCategoryMapper();
- foreach($rights as $right) {
- foreach($rightroles as $rightrole) {
- if($right->getID() == $rightrole['rightID']) {
- $found = true;
- break;
- }
- }
- if(!$found) {
- $rightCategory = $rightCategoryMapper->find($right->getRightcategoryID());
- $rightlist[$rightCategory->getTitle()][$right->getID()] = $right->getTitle();
- }
- $found = false;
- }
- }
- } else {
- $rightCategoryMapper = new Application_Model_RightCategoryMapper();
- foreach($rights as $right) {
- $rightCategory = $rightCategoryMapper->find($right->getRightcategoryID());
- $rightlist[$rightCategory->getTitle()][$right->getID()] = $right->getTitle();
- }
- }
- if(count($rightlist) > 0) {
- if (!isset($_POST["link"])){
- $linkForm = new user_Form_LinkRight(array('rightlist' => $rightlist));
- } else {
- $linkForm = new user_Form_LinkRight(array('rightlist' => $rightlist, $_POST));
- if ($linkForm->isValid($_POST)) {
- foreach($_POST['rights'] as $rightID => $bool) {
- if($bool == 1) {
- $rightroles = new Application_Model_RightRoles();
- $rightroles->setRightID($rightID);
- $rightroles->setRoleID($roleID);
+ $role = new Application_Model_Role($_POST);
+ $role->setID($roleID);
+ try {
+ $this->roleMapper->save($role);
+ } catch(Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ $this->_helper->redirector('', 'role');
+ return;
+ }
+ }
+ $this->view->editForm = $editForm;
+ } else {
+ $pbsNotifier = new Pbs_Notifier();
+ echo $pbsNotifier->notify('modify', 'forbidden');
+ $this->_helper-> viewRenderer-> setNoRender();
+ return;
+ }
+ }
- 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;
- }
- }
- $this->view->linkForm = $linkForm;
- } else {
- $this->_redirect('/user/role/show/roleID/' . $roleID);
- return;
- }
+ public function showAction() {
+ if(!Pbs_Acl::checkRight('rdd')) {
+ $this->_redirect('/user');
+ }
+ $roleID = $this->_request->getParam('roleID');
+ if(!isset($roleID)) {
+ if(count($this->userIDsNamespace) > 0) {
+ $roleID = $this->userIDsNamespace['roleID'];
+ }
+ }
+ $this->view->membership = $this->membership;
+ if($roleID) {
+ $roleMapper = new Application_Model_RoleMapper();
+ $role = $roleMapper->find($roleID);
+ $roleGroupID = $role->getGroupID();
+ if($this->userIDsNamespace['groupID'] == $roleGroupID || $role->getInheritance() == 1) {
+ $rightroles = $this->rightRolesMapper->findBy(array('roleID' => $roleID), true);
+ if(count($rightroles) > 0) {
+ foreach($rightroles as $rightrole) {
+ $right = $this->rightMapper->find($rightrole['rightID']);
+ $rightsList[$right->getRightcategoryID()][] = $right;
+ }
+ if(is_array($rightsList)) {
+ $this->view->rightsList = $rightsList;
+ }
+ }
+ $rightCategoryMapper = new Application_Model_RightCategoryMapper();
+ $rightCategories = $rightCategoryMapper->fetchAll();
+ if(count($rightCategories) > 0) {
+ foreach($rightCategories as $rightCategory) {
+ $rightcategorieslist[$rightCategory->getID()] = $rightCategory->getTitle();
+ }
+ $this->view->rightcategorieslist = $rightcategorieslist;
+ }
+ $rights = $this->rightMapper->fetchAll();
+ if(count($rights) == count($rightroles)) {
+ $this->view->rightsAvailable = false;
+ } else {
+ $this->view->rightsAvailable = true;
+ }
+ $this->view->editRight = Pbs_Acl::checkRight('re');
+ $this->view->deleteRight = Pbs_Acl::checkRight('rd');
+ $this->view->addRightToRoleRight = Pbs_Acl::checkRight('rar');
+ $this->view->removeRightOfRoleRight = Pbs_Acl::checkRight('rrr');
+ $this->view->role = $this->roleMapper->find($roleID);
+ $this->view->roleID = $roleID;
+ $this->view->userIDsNamespace = $this->userIDsNamespace;
+ } else {
+ $pbsNotifier = new Pbs_Notifier();
+ echo $pbsNotifier->notify('view', 'forbidden');
+ $this->_helper-> viewRenderer-> setNoRender();
+ return;
+ }
+ } else {
+ $this->_helper->redirector('', 'role');
+ return;
+ }
+ }
- } else {
- $pbsNotifier = new Pbs_Notifier();
- echo $pbsNotifier->notify('link','forbidden');
- $this->_helper-> viewRenderer-> setNoRender();
- return;
- }
- } else {
- $this->_helper->redirector('', 'role');
- return;
- }
- }
+ public function deleteAction() {
+ if(!Pbs_Acl::checkRight('rd')) {
+ $this->_redirect('/user');
+ }
+ $this->_helper->viewRenderer->setNoRender();
+ $roleID = $this->_request->getParam('roleID');
+ if(!isset($roleID)) {
+ if(count($this->userIDsNamespace) > 0) {
+ $roleID = $this->userIDsNamespace['roleID'];
+ }
+ }
+ if (isset($roleID)) {
+ $roleMapper = new Application_Model_RoleMapper();
+ $role = $roleMapper->find($roleID);
+ $roleGroupID = $role->getGroupID();
+ if($this->userIDsNamespace['groupID'] == $roleGroupID) {
+ $role = $this->roleMapper->find($roleID);
+ try {
+ $this->roleMapper->delete($role);
+ } catch(Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
+ if($_SERVER['HTTP_REFERER']) {
+ if(strpos($_SERVER['HTTP_REFERER'], '/user/role/show') != = false && strpos($_SERVER['HTTP_REFERER'], '/roleID/') == = false) {
+ $this->_helper->redirector('changemembership', 'person');
+ } else {
+ $this->_helper->redirector('', 'role');
+ }
+ } else {
+ $this->_helper->redirector('', 'role');
+ }
+ return;
+ } else {
+ $pbsNotifier = new Pbs_Notifier();
+ echo $pbsNotifier->notify('delete', 'forbidden');
+ $this->_helper-> viewRenderer-> setNoRender();
+ return;
+ }
+ } else {
+ $this->_helper->redirector('', 'role');
+ return;
+ }
+ }
- public function unlinkrightAction()
- {
- if(!Pbs_Acl::checkRight('rrr')) {
- $this->_redirect('/user');
- }
- $this->_helper-> viewRenderer-> setNoRender();
- $rightRolesID = $this->_request->getParam('rightrolesID');
- if(isset($rightRolesID)) {
- $rightRolesID = explode('-',$rightRolesID);
- $roleID = $rightRolesID[0];
- if($rightRolesID[1] == 'all') {
- $rightRolesMapper = new Application_Model_RightRolesMapper();
- $rightroleslist = $rightRolesMapper->findBy(array('roleID' => $roleID));
- foreach($rightroleslist as $rightroles) {
- try {
- $this->rightRolesMapper->delete($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;
- } else {
- $rightID = $rightRolesID[1];
- if (isset($roleID) && isset($rightID)){
- $roleMapper = new Application_Model_RoleMapper();
- $role = $roleMapper->find($roleID);
- $roleGroupID = $role->getGroupID();
- if($this->userIDsNamespace['groupID'] == $roleGroupID) {
- $rightroles = new Application_Model_RightRoles();
- $rightroles->setRoleID($roleID);
- $rightroles->setRightID($rightID);
- try {
- $this->rightRolesMapper->delete($rightroles);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
+ public function linkrightAction() {
+ if(!Pbs_Acl::checkRight('rar')) {
+ $this->_redirect('/user');
+ }
+ $roleID = $this->_request->getParam('roleID');
+ if(!isset($roleID)) {
+ if(count($this->userIDsNamespace) > 0) {
+ $roleID = $this->userIDsNamespace['roleID'];
+ }
+ }
+ if(isset($roleID)) {
+ $roleMapper = new Application_Model_RoleMapper();
+ $role = $roleMapper->find($roleID);
+ $roleGroupID = $role->getGroupID();
+ if($this->userIDsNamespace['groupID'] == $roleGroupID) {
+ $rightroles = $this->rightRolesMapper->findBy(array('roleID' => $roleID), true);
+ $rights = $this->rightMapper->fetchAll();
+ if(count($rightroles) > 0) {
+ if(count($rights) > 0) {
+ $rightCategoryMapper = new Application_Model_RightCategoryMapper();
+ foreach($rights as $right) {
+ foreach($rightroles as $rightrole) {
+ if($right->getID() == $rightrole['rightID']) {
+ $found = true;
+ break;
+ }
+ }
+ if(!$found) {
+ $rightCategory = $rightCategoryMapper->find($right->getRightcategoryID());
+ $rightlist[$rightCategory->getTitle()][$right->getID()] = $right->getTitle();
+ }
+ $found = false;
+ }
+ }
+ } else {
+ $rightCategoryMapper = new Application_Model_RightCategoryMapper();
+ foreach($rights as $right) {
+ $rightCategory = $rightCategoryMapper->find($right->getRightcategoryID());
+ $rightlist[$rightCategory->getTitle()][$right->getID()] = $right->getTitle();
+ }
+ }
+ if(count($rightlist) > 0) {
+ if (!isset($_POST["link"])) {
+ $linkForm = new user_Form_LinkRight(array('rightlist' => $rightlist));
+ } else {
+ $linkForm = new user_Form_LinkRight(array('rightlist' => $rightlist, $_POST));
+ if ($linkForm->isValid($_POST)) {
+ foreach($_POST['rights'] as $rightID => $bool) {
+ if($bool == 1) {
+ $rightroles = new Application_Model_RightRoles();
+ $rightroles->setRightID($rightID);
+ $rightroles->setRoleID($roleID);
- }
- $this->_redirect('/user/role/show/roleID/' . $roleID);
- return;
- } else {
- $pbsNotifier = new Pbs_Notifier();
- echo $pbsNotifier->notify('unlink','forbidden');
- $this->_helper-> viewRenderer-> setNoRender();
- return;
- }
- }
- }
- } else {
- $this->_helper->redirector('', 'role');
- return;
- }
- }
+ 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;
+ }
+ }
+ $this->view->linkForm = $linkForm;
+ } else {
+ $this->_redirect('/user/role/show/roleID/' . $roleID);
+ return;
+ }
+
+ } else {
+ $pbsNotifier = new Pbs_Notifier();
+ echo $pbsNotifier->notify('link', 'forbidden');
+ $this->_helper-> viewRenderer-> setNoRender();
+ return;
+ }
+ } else {
+ $this->_helper->redirector('', 'role');
+ return;
+ }
+ }
+
+ public function unlinkrightAction() {
+ if(!Pbs_Acl::checkRight('rrr')) {
+ $this->_redirect('/user');
+ }
+ $this->_helper-> viewRenderer-> setNoRender();
+ $rightRolesID = $this->_request->getParam('rightrolesID');
+ if(isset($rightRolesID)) {
+ $rightRolesID = explode('-', $rightRolesID);
+ $roleID = $rightRolesID[0];
+ if($rightRolesID[1] == 'all') {
+ $rightRolesMapper = new Application_Model_RightRolesMapper();
+ $rightroleslist = $rightRolesMapper->findBy(array('roleID' => $roleID));
+ foreach($rightroleslist as $rightroles) {
+ try {
+ $this->rightRolesMapper->delete($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;
+ } else {
+ $rightID = $rightRolesID[1];
+ if (isset($roleID) && isset($rightID)) {
+ $roleMapper = new Application_Model_RoleMapper();
+ $role = $roleMapper->find($roleID);
+ $roleGroupID = $role->getGroupID();
+ if($this->userIDsNamespace['groupID'] == $roleGroupID) {
+ $rightroles = new Application_Model_RightRoles();
+ $rightroles->setRoleID($roleID);
+ $rightroles->setRightID($rightID);
+ try {
+ $this->rightRolesMapper->delete($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;
+ } else {
+ $pbsNotifier = new Pbs_Notifier();
+ echo $pbsNotifier->notify('unlink', 'forbidden');
+ $this->_helper-> viewRenderer-> setNoRender();
+ return;
+ }
+ }
+ }
+ } else {
+ $this->_helper->redirector('', 'role');
+ return;
+ }
+ }
}