summaryrefslogtreecommitdiffstats
path: root/application/modules/user/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'application/modules/user/controllers')
-rw-r--r--application/modules/user/controllers/PersonController.php11
-rw-r--r--application/modules/user/controllers/RoleController.php66
2 files changed, 48 insertions, 29 deletions
diff --git a/application/modules/user/controllers/PersonController.php b/application/modules/user/controllers/PersonController.php
index 4ec8297..e21a896 100644
--- a/application/modules/user/controllers/PersonController.php
+++ b/application/modules/user/controllers/PersonController.php
@@ -71,12 +71,12 @@ class user_PersonController extends Zend_Controller_Action
if(!Pbs_Acl::checkRight('pso')) {
$this->_redirect('/user');
}
- $this->view->showRight = Pbs_Acl::checkRight('psod');
- $this->view->editRight = Pbs_Acl::checkRight('peoa');
- $this->view->deleteRight = Pbs_Acl::checkRight('pd');
+ $this->view->showRight = true;//Pbs_Acl::checkRight('psod');
+ $this->view->editRight = Pbs_Acl::checkRight('peod');
+ $this->view->deleteRight = Pbs_Acl::checkRight('pdo');
$this->view->showOtherRight = Pbs_Acl::checkRight('psood');
$this->view->editOtherRight = Pbs_Acl::checkRight('peoa');
- $this->view->deleteOtherRight = Pbs_Acl::checkRight('pdo');
+ $this->view->deleteOtherRight = Pbs_Acl::checkRight('pd');
$this->view->suspendRight = Pbs_Acl::checkRight('psa');
$this->view->userIDsNamespace = $this->userIDsNamespace;
@@ -425,6 +425,9 @@ class user_PersonController extends Zend_Controller_Action
public function deleterequestAction()
{
+ if(!Pbs_Acl::checkRight('gdm')) {
+ $this->_redirect('/user');
+ }
$grouprequestID = $this->_request->getParam('grouprequestID');
$grouprequest = $this->groupRequestMapper->find($grouprequestID);
try {
diff --git a/application/modules/user/controllers/RoleController.php b/application/modules/user/controllers/RoleController.php
index bee6ecf..94d519b 100644
--- a/application/modules/user/controllers/RoleController.php
+++ b/application/modules/user/controllers/RoleController.php
@@ -3,6 +3,8 @@
class User_RoleController extends Zend_Controller_Action
{
protected $userIDsNamespace = null;
+ protected $membership;
+ protected $membershipMapper;
public function init()
{
@@ -15,9 +17,17 @@ class User_RoleController extends Zend_Controller_Action
$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 indexAction()
@@ -25,9 +35,33 @@ class User_RoleController extends Zend_Controller_Action
if(!Pbs_Acl::checkRight('ro')) {
$this->_redirect('/user');
}
- if(isset($this->userIDsNamespace['groupID'])) {
- $this->view->roleList = $this->roleMapper->findBy(array('groupID' => $this->userIDsNamespace['groupID']),true);
-
+ $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();
@@ -54,10 +88,7 @@ class User_RoleController extends Zend_Controller_Action
$this->view->deleteRight = Pbs_Acl::checkRight('rd');
$this->view->detailsRight = Pbs_Acl::checkRight('rdd');
$this->view->userIDsNamespace = $this->userIDsNamespace;
- } else {
- $this->_helper->redirector('selectmembership', 'person');
- return;
- }
+
}
public function searchAction(){
@@ -72,7 +103,7 @@ class User_RoleController extends Zend_Controller_Action
if(!Pbs_Acl::checkRight('ra')) {
$this->_redirect('/user');
}
- if(isset($this->userIDsNamespace['groupID'])) {
+
$roleID = $this->userIDsNamespace['roleID'];
$rights = $this->rightMapper->fetchAll();
if(count($rights) > 0) {
@@ -119,10 +150,6 @@ class User_RoleController extends Zend_Controller_Action
}
}
$this->view->addForm = $addForm;
- } else {
- $this->_helper->redirector('selectmembership', 'person');
- return;
- }
}
public function editAction()
@@ -190,11 +217,12 @@ class User_RoleController extends Zend_Controller_Action
$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) {
+ if($this->userIDsNamespace['groupID'] == $roleGroupID || $role->getInheritance() == 1) {
$rightroles = $this->rightRolesMapper->findBy(array('roleID' => $roleID),true);
if(count($rightroles) > 0) {
foreach($rightroles as $rightrole) {
@@ -435,15 +463,3 @@ class User_RoleController extends Zend_Controller_Action
}
-
-
-
-
-
-
-
-
-
-
-
-