summaryrefslogtreecommitdiffstats
path: root/application/modules/dev/controllers/RoleController.php
diff options
context:
space:
mode:
authorBjörn Geiger2011-03-23 19:31:03 +0100
committerBjörn Geiger2011-03-23 19:31:03 +0100
commitf581446f90526dd3466becddd625d23bd1c26ed4 (patch)
tree22b5708100e6c71e7cbd3a567527dcfc013fca91 /application/modules/dev/controllers/RoleController.php
parentseriel liegt jetzt im root/ (diff)
downloadpbs2-f581446f90526dd3466becddd625d23bd1c26ed4.tar.gz
pbs2-f581446f90526dd3466becddd625d23bd1c26ed4.tar.xz
pbs2-f581446f90526dd3466becddd625d23bd1c26ed4.zip
Rollenverwaltung in Dev Modul
Diffstat (limited to 'application/modules/dev/controllers/RoleController.php')
-rw-r--r--application/modules/dev/controllers/RoleController.php237
1 files changed, 229 insertions, 8 deletions
diff --git a/application/modules/dev/controllers/RoleController.php b/application/modules/dev/controllers/RoleController.php
index 3b45a8c..709d623 100644
--- a/application/modules/dev/controllers/RoleController.php
+++ b/application/modules/dev/controllers/RoleController.php
@@ -2,49 +2,266 @@
class dev_RoleController extends Zend_Controller_Action
{
+ protected $roleMapper;
+ protected $rightMapper;
+ protected $rightRolesMapper;
public function init()
{
if (Zend_Auth::getInstance()->hasIdentity()) {
-
+ $this->roleMapper = new Application_Model_RoleMapper();
+ $this->rightMapper = new Application_Model_RightMapper();
+ $this->rightRolesMapper = new Application_Model_RightRolesMapper();
} else {
- $this->_redirect('/dev/login/auth');
+ $this->_helper->redirector('login', 'auth');
}
}
public function indexAction()
{
-
+ $roleNamespace = Zend_Session::namespaceGet('role');
+ if(isset($roleNamespace['groupID'])) {
+ $roleList = $this->roleMapper->findBy('groupID', $roleNamespace['groupID']);
+ $this->view->groupID = $roleNamespace['groupID'];
+ $this->view->roleList = $roleList;
+ } else {
+ $this->_helper->redirector('groupselect', 'role');
+ return;
+ }
}
public function addAction()
{
+ $roleNamespace = Zend_Session::namespaceGet('role');
+ if(isset($roleNamespace['groupID'])) {
+ if (!isset($_POST["add"])){
+ $addForm = new dev_Form_RoleAdd(array('rightlist' => $rightList));
+ } else {
+ $addForm = new dev_Form_RoleAdd(array('rightlist' => $rightList),$_POST);
+ if ($addForm->isValid($_POST)) {
+
+ $_POST['groupID'] = $roleNamespace['groupID'];
+ $role = new Application_Model_Role($_POST);
+ 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->addForm = $addForm;
+ } else {
+ $this->_helper->redirector('groupselect', 'role');
+ return;
+ }
}
public function editAction()
{
-
+ $roleID = $this->_request->getParam('roleID');
+ if(!isset($roleID)) {
+ $addForm = new dev_Form_RoleAdd();
+ $this->view->addForm = $addForm;
+ return;
+ }
+ if (!isset($_POST["save"])){
+ $role = $this->roleMapper->find($roleID);
+ $_POST['title'] = $role->getTitle();
+ $_POST['description'] = $role->getDescription();
+ $_POST['groupID'] = $role->getGroupID();
+ $editForm = new dev_Form_RoleEdit();
+ } else {
+ $editForm = new dev_Form_RoleEdit($_POST);
+ if ($editForm->isValid($_POST)) {
+ $role = new Application_Model_Role($_POST);
+ $role->setID($this->_request->getParam('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;
}
public function showAction()
{
-
+ $roleID = $this->_request->getParam('roleID');
+ if($roleID) {
+ $rightroles = $this->rightRolesMapper->findBy('roleID', $roleID);
+ if(count($rightroles) > 0) {
+ foreach($rightroles as $rightrole) {
+ $right = $this->rightMapper->find($rightrole['rightID']);
+ $rightsList[] = $right;
+ }
+ if(is_array($rightsList)) {
+ $this->view->rightsList = $rightsList;
+ }
+ }
+ $this->view->role = $this->roleMapper->find($roleID);
+ $this->view->roleID = $roleID;
+ } else {
+ $this->_helper->redirector('', 'role');
+ return;
+ }
}
public function deleteAction()
{
-
+ $this->_helper->viewRenderer->setNoRender();
+ $roleID = $this->_request->getParam('roleID');
+ if (isset($roleID)){
+ $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;
+ }
+ $this->_helper->redirector('', 'role');
+ return;
+ } else {
+ $this->_helper->redirector('', 'role');
+ return;
+ }
}
public function linkrightAction()
{
- // action body
+ $roleID = $this->_request->getParam('roleID');
+ if(isset($roleID)) {
+ $rightroles = $this->rightRolesMapper->findBy('roleID', $roleID);
+ $rights = $this->rightMapper->fetchAll();
+ if(count($rightroles) > 0) {
+ if(count($rights) > 0) {
+ foreach($rights as $right) {
+ foreach($rightroles as $rightrole) {
+ if($right->getID() == $rightrole['rightID']) {
+ $found = true;
+ break;
+ }
+ }
+ if(!$found) {
+ $rightlist[] = $right;
+ }
+ $found = false;
+ }
+ }
+ } else {
+ $rightlist = $rights;
+ }
+ if(count($rightlist) > 0) {
+ if (!isset($_POST["link"])){
+ $linkForm = new dev_Form_LinkRight(array('rightlist' => $rightlist, 'roleID' => $roleID));
+ } else {
+ $linkForm = new dev_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;
+ }
+ $this->_redirect('/dev/role/show/roleID/' . $roleID);
+ return;
+ }
+ }
+ $this->view->linkForm = $linkForm;
+ } else {
+ $this->_redirect('/dev/role/show/roleID/' . $roleID);
+ return;
+ }
+ } else {
+ $this->_helper->redirector('', 'role');
+ return;
+ }
}
public function unlinkrightAction()
{
- // action body
+ $this->_helper-> viewRenderer-> setNoRender();
+ $rightRolesID = $this->_request->getParam('rightrolesID');
+ if(isset($rightRolesID)) {
+ $rightRolesID = explode('-',$rightRolesID);
+ $roleID = $rightRolesID[0];
+ $rightID = $rightRolesID[1];
+ if (isset($roleID) && isset($rightID)){
+ $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('/dev/role/show/roleID/' . $roleID);
+ return;
+ }
+ } else {
+ $this->_helper->redirector('', 'role');
+ return;
+ }
+ }
+
+ public function groupselectAction()
+ {
+ $roleNamespace = Zend_Session::namespaceGet('role');
+ if(isset($roleNamespace['groupID'])) {
+ $this->_helper->redirector('', 'role');
+ } else {
+ if(isset($_POST['selectgroup'])) {
+ $roleSession = new Zend_Session_Namespace('role');
+ $roleSession->groupID = $_POST['groupID'];
+ $this->_helper->redirector('', 'role');
+ return;
+ } else {
+ $personMapper = new Application_Model_PersonMapper();
+ $result = $personMapper->findBy('email', Zend_Auth::getInstance()->getIdentity());
+ $person = new Application_Model_Person($result[0]);
+ $person->setID($result[0]['personID']);
+ $membershipMapper = new Application_Model_MembershipMapper();
+ $memberships = $membershipMapper->findBy("personID",$person->getID());
+ $groupMapper = new Application_Model_GroupMapper();
+ if(isset($memberships)) {
+ foreach($memberships as $membership) {
+ $group = $groupMapper->find($membership['groupID']);
+ $groupList[] = $group;
+ }
+ }
+ $groupSelectForm = new dev_Form_GroupSelect(array('grouplist' => $groupList));
+ $this->view->groupSelectForm = $groupSelectForm;
+ }
+ }
+ }
+
+ public function changegroupAction()
+ {
+ $this->_helper-> viewRenderer-> setNoRender();
+ Zend_Session::namespaceUnset('role');
+ $this->_helper->redirector('groupselect', 'role');
+ return;
}
@@ -62,3 +279,7 @@ class dev_RoleController extends Zend_Controller_Action
+
+
+
+