diff options
Diffstat (limited to 'application/modules/user')
34 files changed, 900 insertions, 93 deletions
diff --git a/application/modules/user/controllers/AuthController.php b/application/modules/user/controllers/AuthController.php index db47f44..5d63b20 100644 --- a/application/modules/user/controllers/AuthController.php +++ b/application/modules/user/controllers/AuthController.php @@ -74,6 +74,7 @@ class User_AuthController extends Zend_Controller_Action $auth = Zend_Auth::getInstance(); $auth->clearIdentity(); Zend_Session::namespaceUnset('userIDs'); + Zend_Session::forgetMe(); $this->_helper->redirector('login', 'auth'); return; } @@ -119,25 +120,31 @@ class User_AuthController extends Zend_Controller_Action public function deleteAction() { - $this->_helper-> viewRenderer-> setNoRender(); - $result = $this->personmapper->findBy('email', Zend_Auth::getInstance()->getIdentity()); - $person = $result[0]; - $personID = $person["personID"]; - if (isset($personID)){ - $this->personmapper = new Application_Model_PersonMapper(); - $person = $this->personmapper->find($personID); - try { - $this->personmapper->delete($person); - }catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; + if($_POST['confirmdelete']) { + $auth = Zend_Auth::getInstance(); + $result = $this->personmapper->findBy('email', $auth->getIdentity()); + $person = $result[0]; + $personID = $person["personID"]; + if (isset($personID)){ + $this->personmapper = new Application_Model_PersonMapper(); + $person = $this->personmapper->find($personID); + try { + $this->personmapper->delete($person); + }catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $auth->clearIdentity(); + Zend_Session::namespaceUnset('userIDs'); + Zend_Session::forgetMe(); + $this->_helper->redirector('login', 'auth'); return; } - $auth = Zend_Auth::getInstance(); - $auth->clearIdentity(); - $this->_helper->redirector('login', 'auth'); - return; + } else { + $deleteconfirmform = new user_Form_ConfirmDeleteAccount(); + $this->view->deleteconfirmform = $deleteconfirmform; } } diff --git a/application/modules/user/controllers/FilterController.php b/application/modules/user/controllers/FilterController.php index d49e68f..fd8eaf5 100644 --- a/application/modules/user/controllers/FilterController.php +++ b/application/modules/user/controllers/FilterController.php @@ -171,10 +171,9 @@ class User_FilterController extends Zend_Controller_Action $filtermapper->find($this->_request->getParam('filterID'),$DBfilterentry); $compareresult = $filtermapper->compare($newfilterentry,$DBfilterentry); - print_a($compareresult); if(isset($compareresult['priority']) && count($compareresult) == 1){ $filtermapper->save($newfilterentry); - #$this->_redirect('/user/filter/index/modifyresult/ok'); + $this->_redirect('/user/filter/index/modifyresult/ok'); } else{ $this->_redirect('/user/filter/index/modifyresult/forbidden'); diff --git a/application/modules/user/controllers/GroupController.php b/application/modules/user/controllers/GroupController.php index 52136af..7a21aa9 100644 --- a/application/modules/user/controllers/GroupController.php +++ b/application/modules/user/controllers/GroupController.php @@ -3,20 +3,291 @@ class User_GroupController extends Zend_Controller_Action { + protected $groupMapper = null; + + protected $groupGroupsMapper = null; + + protected $membershipMapper = null; + + protected $groupRequestMapper = null; + + protected $personmapper = null; + + protected $rolemapper = null; + + protected $groupList = null; + + protected $userIDsNamespace = null; + public function init() { if (Zend_Auth::getInstance()->hasIdentity()) { - + $this->userIDsNamespace = Zend_Session::namespaceGet('userIDs'); + $this->groupMapper = new Application_Model_GroupMapper(); + $this->groupGroupsMapper = new Application_Model_GroupGroupsMapper(); + $this->membershipMapper = new Application_Model_MembershipMapper(); + $this->groupRequestMapper = new Application_Model_GroupRequestMapper(); + $this->personmapper = new Application_Model_PersonMapper(); + $this->rolemapper = new Application_Model_RoleMapper(); + $this->groupList = $this->groupMapper->fetchAll(); } else { $this->_helper->redirector('login', 'auth'); + return; } } public function indexAction() { - // action body + $this->_helper->redirector('show', 'group'); } + public function addAction() + { + if (!isset($_POST["add"])){ + $addForm = new user_Form_GroupAdd(array('grouplist' => $this->groupList)); + } else { + $addForm = new user_Form_GroupAdd(array('grouplist' => $this->groupList),$_POST); + + if ($addForm->isValid($_POST)) { + $group = new Application_Model_Group($_POST); + try { + $this->groupMapper->save($group); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + if($_POST['superordinatedGroupID'] != -1) { + $lastID = $this->groupMapper->getDbTable()->getDefaultAdapter()->lastInsertId(); + $groupgroups = new Application_Model_GroupGroups(); + $groupgroups->setParentID($_POST['superordinatedGroupID']); + $groupgroups->setGroupID($lastID); + try { + $this->groupGroupsMapper->save($groupgroups); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + + } + $this->_helper->redirector('', 'group'); + return; + } + } + + $this->view->addForm = $addForm; + } + + public function editAction() + { + $groupID = $this->_request->getParam('groupID'); + if(!isset($groupID)) { + if(count($this->userIDsNamespace) > 0) { + $groupID = $this->userIDsNamespace['groupID']; + } + } + if(!isset($groupID)) { + $addForm = new user_Form_GroupAdd(array('grouplist' => $this->groupList)); + $this->view->addForm = $addForm; + return; + } + if (!isset($_POST["save"])){ + $group = $this->groupMapper->find($groupID); + $_POST['title'] = $group->getTitle(); + $_POST['description'] = $group->getDescription(); + $editForm = new user_Form_GroupEdit(array('groupID' => $groupID)); + } else { + $editForm = new user_Form_GroupEdit(array('groupID' => $groupID), $_POST); + if ($editForm->isValid($_POST)) { + $group = new Application_Model_Group($_POST); + $group->setID($this->_request->getParam('groupID')); + try { + $this->groupMapper->save($group); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_redirect($_SERVER['HTTP_REFERER']); + return; + } + } + + $this->view->editForm = $editForm; + } + + public function showAction() + { + $groupID = $this->_request->getParam('groupID'); + if(!isset($groupID)) { + if(count($this->userIDsNamespace) > 0) { + $groupID = $this->userIDsNamespace['groupID']; + } + } + if($groupID) { + $groupRequests = $this->groupRequestMapper->findBy('groupID', $groupID); + if(isset($groupRequests)) { + foreach($groupRequests as $groupRequest) { + $person = $this->personmapper->find($groupRequest['personID']); + $groupRequestList[] = array( + 'grouprequestID' => $groupRequest['grouprequestID'], + 'person' => $person + ); + } + if(is_array($groupRequestList)) { + $this->view->groupRequestList = $groupRequestList; + } + $this->view->roleList = $this->rolemapper->findBy('groupID', $groupID); + } + $members = $this->membershipMapper->findBy('groupID', $groupID); + if(isset($members)) { + foreach($members as $member) { + $person = $this->personmapper->find($member['personID']); + $membersList[] = array( + 'membershipID' => $member['membershipID'], + 'person' => $person + ); + } + if(is_array($membersList)) { + $this->view->membersList = $membersList; + } + } + $groupgroups = $this->groupGroupsMapper->findBy('groupID', $groupID); + if(is_object($groupgroups)) { + $parentGroup = $this->groupMapper->find($groupgroups->getParentID()); + $this->view->$parentGroup = $parentGroup; + } + $group = $this->groupMapper->find($groupID); + $this->view->userIDsNamespace = $this->userIDsNamespace; + $this->view->group = $group; + $this->view->groupID = $groupID; + } else { + $this->_redirect('/user/'); + return; + } + } + + public function linkAction() + { + if (!isset($_POST["link"])){ + $linkForm = new user_Form_GroupLink(array('grouplist' => $this->groupList)); + } else { + $linkForm = new user_Form_GroupLink(array('grouplist' => $this->groupList),$_POST); + + if ($linkForm->isValid($_POST)) { + $groupgroups = new Application_Model_GroupGroups(); + $groupgroups->setParentID($_POST['superordinatedGroupID']); + $groupgroups->setGroupID($_POST['groupID']); + try { + $this->groupGroupsMapper->save($groupgroups); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_helper->redirector('', 'group'); + return; + } + } + + $this->view->linkForm = $linkForm; + } + + public function deleteAction() + { + $this->_helper->viewRenderer->setNoRender(); + $groupID = $this->_request->getParam('groupID'); + if(!isset($groupID)) { + if(count($this->userIDsNamespace) > 0) { + $groupID = $this->userIDsNamespace['groupID']; + } + } + if (isset($groupID)){ + $group = $this->groupMapper->find($groupID); + try { + $this->groupMapper->delete($group); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + if(strpos($_SERVER['HTTP_REFERER'], '/user/group/show')) { + if(strpos($_SERVER['HTTP_REFERER'], '/groupID/')) { + $this->_redirect('/user/group/showall'); + } else { + $this->_helper->redirector('changemembership', 'person'); + } + } else { + $this->_helper->redirector('showall', 'group'); + } + return; + } else { + $this->_redirect('/user/'); + return; + } + } + + public function grantpersonAction() + { + $this->_helper->viewRenderer->setNoRender(); + if(isset($_POST['grouprequestID']) && isset($_POST['roleID'])) { + $groupRequest = $this->groupRequestMapper->find($_POST['grouprequestID']); + try { + $this->groupRequestMapper->delete($groupRequest); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $membership = new Application_Model_Membership(); + $membership->setGroupID($groupRequest->getGroupID()); + $membership->setPersonID($groupRequest->getPersonID()); + $membership->setRoleID($_POST['roleID']); + try { + $this->membershipMapper->save($membership); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_redirect("/user/group/show/groupID/" . $groupRequest->getGroupID()); + } + } + + public function revokepersonAction() + { + $this->_helper->viewRenderer->setNoRender(); + $membershipID = $this->_request->getParam('membershipID'); + if(isset($membershipID)) { + $membership = $this->membershipMapper->find($membershipID); + if(isset($membership)) { + try { + $this->membershipMapper->delete($membership); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_redirect("/user/group/edit/groupID/" . $membership->getGroupID()); + } + + } } + + public function showallAction() + { + $this->view->userIDsNamespace = $this->userIDsNamespace; + $this->view->groupList = $this->groupList; + } + } diff --git a/application/modules/user/controllers/RoleController.php b/application/modules/user/controllers/RoleController.php index da65507..0b0cb7d 100644 --- a/application/modules/user/controllers/RoleController.php +++ b/application/modules/user/controllers/RoleController.php @@ -2,15 +2,15 @@ class User_RoleController extends Zend_Controller_Action { - private $userIDsNamespace; + protected $userIDsNamespace; public function init() { if (Zend_Auth::getInstance()->hasIdentity()) { $this->userIDsNamespace = Zend_Session::namespaceGet('userIDs'); - if($this->userIDsNamespace['groupID'] ==''){ + if($this->userIDsNamespace['roleID'] ==''){ $pbsNotifier = new Pbs_Notifier(); - echo $pbsNotifier->notify('No groupID set','forbidden'); + echo $pbsNotifier->notify('No roleID set','forbidden'); } $this->roleMapper = new Application_Model_RoleMapper(); $this->rightMapper = new Application_Model_RightMapper(); @@ -67,6 +67,11 @@ class User_RoleController extends Zend_Controller_Action { $roleID = $this->_request->getParam('roleID'); if(!isset($roleID)) { + if(count($this->userIDsNamespace) > 0) { + $roleID = $this->userIDsNamespace['roleID']; + } + } + if(!isset($roleID)) { $addForm = new user_Form_RoleAdd(); $this->view->addForm = $addForm; return; @@ -76,10 +81,12 @@ class User_RoleController extends Zend_Controller_Action $_POST['title'] = $role->getTitle(); $_POST['description'] = $role->getDescription(); $_POST['groupID'] = $role->getGroupID(); + $_POST['inheritance'] = $role->getInheritance(); $editForm = new user_Form_RoleEdit(array('roleID' => $roleID)); } else { $editForm = new user_Form_RoleEdit(array('roleID' => $roleID), $_POST); if ($editForm->isValid($_POST)) { + $role = new Application_Model_Role($_POST); $role->setID($this->_request->getParam('roleID')); try { @@ -90,7 +97,7 @@ class User_RoleController extends Zend_Controller_Action echo "Message: " . $e->getMessage() . "<br/>"; return; } - $this->_helper->redirector('', 'role'); + $this->_redirect($_SERVER['HTTP_REFERER']); return; } } @@ -100,6 +107,11 @@ class User_RoleController extends Zend_Controller_Action public function showAction() { $roleID = $this->_request->getParam('roleID'); + if(!isset($roleID)) { + if(count($this->userIDsNamespace) > 0) { + $roleID = $this->userIDsNamespace['roleID']; + } + } if($roleID) { $rightroles = $this->rightRolesMapper->findBy('roleID', $roleID); if(count($rightroles) > 0) { @@ -113,6 +125,7 @@ class User_RoleController extends Zend_Controller_Action } $this->view->role = $this->roleMapper->find($roleID); $this->view->roleID = $roleID; + $this->view->userIDsNamespace = $this->userIDsNamespace; } else { $this->_helper->redirector('', 'role'); return; @@ -123,6 +136,11 @@ class User_RoleController extends Zend_Controller_Action { $this->_helper->viewRenderer->setNoRender(); $roleID = $this->_request->getParam('roleID'); + if(!isset($roleID)) { + if(count($this->userIDsNamespace) > 0) { + $roleID = $this->userIDsNamespace['roleID']; + } + } if (isset($roleID)){ $role = $this->roleMapper->find($roleID); try { @@ -144,6 +162,11 @@ class User_RoleController extends Zend_Controller_Action public function linkrightAction() { $roleID = $this->_request->getParam('roleID'); + if(!isset($roleID)) { + if(count($this->userIDsNamespace) > 0) { + $roleID = $this->userIDsNamespace['roleID']; + } + } if(isset($roleID)) { $rightroles = $this->rightRolesMapper->findBy('roleID', $roleID); $rights = $this->rightMapper->fetchAll(); diff --git a/application/modules/user/forms/ConfirmDeleteAccount.php b/application/modules/user/forms/ConfirmDeleteAccount.php new file mode 100644 index 0000000..7bf5a32 --- /dev/null +++ b/application/modules/user/forms/ConfirmDeleteAccount.php @@ -0,0 +1,27 @@ +<?php + +class user_Form_ConfirmDeleteAccount extends Zend_Form +{ + + public function init() + { + $this->setName("ConfirmDeleteAccount"); + $this->setMethod('post'); + + $this->addElement('submit', 'confirmdelete', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Confirm', + )); + + $this->addElement('button', 'cancel', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Cancel', + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', + )); + } + + +} + diff --git a/application/modules/user/forms/GroupAdd.php b/application/modules/user/forms/GroupAdd.php new file mode 100644 index 0000000..ff2b97a --- /dev/null +++ b/application/modules/user/forms/GroupAdd.php @@ -0,0 +1,65 @@ +<?php + +class user_Form_GroupAdd extends Zend_Form +{ + private $grouplist; + + public function setGrouplist($grouplist){ + $this->grouplist = $grouplist; + + } + + + public function init() + { + $this->setName("GroupAdd"); + $this->setMethod('post'); + + $this->addElement('text', 'title', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(0, 50)), + ), + 'required' => true, + 'label' => 'Title:', + )); + + $this->addElement('text', 'description', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(0, 140)), + ), + 'required' => false, + 'label' => 'Description:', + )); + + $groupfield = $this->createElement('select','superordinatedGroupID'); + $groupfield ->setLabel('superordinated Group:'); + + $groupfield->addMultiOption('-1', '---- none ----'); + + if(count($this->grouplist)>0){ + foreach($this->grouplist as $group => $g){ + $groupfield->addMultiOption($g->getID(), $g->getTitle()); + } + } + $groupfield->setRegisterInArrayValidator(false); + $this->addElement($groupfield); + + $this->addElement('submit', 'add', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Add', + )); + + $this->addElement('button', 'cancel', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Cancel', + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', + )); + } + + +} + diff --git a/application/modules/user/forms/GroupEdit.php b/application/modules/user/forms/GroupEdit.php new file mode 100644 index 0000000..4f0d7fc --- /dev/null +++ b/application/modules/user/forms/GroupEdit.php @@ -0,0 +1,50 @@ +<?php + +class user_Form_GroupEdit extends Zend_Form +{ + private $groupID; + + public function setGroupID($groupID){ + $this->groupID = $groupID; + + } + + public function init() + { + $this->setName("GroupEdit"); + $this->setMethod('post'); + + $this->addElement('text', 'title', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(0, 50)), + ), + 'required' => true, + 'label' => 'Title:', + 'value' => $_POST['title'], + )); + + $this->addElement('text', 'description', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(0, 140)), + ), + 'required' => false, + 'label' => 'Description:', + 'value' => $_POST['description'], + )); + + $this->addElement('submit', 'save', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Save', + )); + + $this->addElement('button', 'cancel', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Cancel', + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', + )); + } +}
\ No newline at end of file diff --git a/application/modules/user/forms/GroupLink.php b/application/modules/user/forms/GroupLink.php new file mode 100644 index 0000000..9db7ce4 --- /dev/null +++ b/application/modules/user/forms/GroupLink.php @@ -0,0 +1,55 @@ +<?php + +class user_Form_GroupLink extends Zend_Form +{ + private $grouplist; + + public function setGrouplist($grouplist){ + $this->grouplist = $grouplist; + + } + + public function init() + { + $this->setName("GroupLink"); + $this->setMethod('post'); + + $groupfield = $this->createElement('select','groupID'); + $groupfield ->setLabel('Group:'); + + if(count($this->grouplist)>0){ + foreach($this->grouplist as $group => $g){ + $groupfield->addMultiOption($g->getID(), $g->getTitle()); + } + } + $groupfield->setRegisterInArrayValidator(false); + $this->addElement($groupfield); + + $groupfield1 = $this->createElement('select','superordinatedGroupID'); + $groupfield1 ->setLabel('superordinated Group:'); + + if(count($this->grouplist)>0){ + foreach($this->grouplist as $group => $g){ + $groupfield1->addMultiOption($g->getID(), $g->getTitle()); + } + } + $groupfield1->setRegisterInArrayValidator(false); + $this->addElement($groupfield1); + + $this->addElement('submit', 'link', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Link', + )); + + $this->addElement('button', 'cancel', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Cancel', + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', + )); + } + + +} + diff --git a/application/modules/user/forms/GroupRequest.php b/application/modules/user/forms/GroupRequest.php index 2cdada0..c9ba273 100644 --- a/application/modules/user/forms/GroupRequest.php +++ b/application/modules/user/forms/GroupRequest.php @@ -33,14 +33,14 @@ class user_Form_GroupRequest extends Zend_Form $this->addElement('submit', 'request', array( 'required' => false, 'ignore' => true, - 'label' => 'Request Membership', + 'label' => 'Request', )); $this->addElement('button', 'cancel', array( 'required' => false, 'ignore' => true, 'label' => 'Cancel', - 'onclick' => 'location.href="/user/person/"', + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', )); } diff --git a/application/modules/user/forms/LinkRight.php b/application/modules/user/forms/LinkRight.php index 139aee4..a7b28b1 100644 --- a/application/modules/user/forms/LinkRight.php +++ b/application/modules/user/forms/LinkRight.php @@ -32,14 +32,14 @@ class user_Form_LinkRight extends Zend_Form $this->addElement('submit', 'link', array( 'required' => false, 'ignore' => true, - 'label' => 'Add Right', + 'label' => 'Add', )); $this->addElement('button', 'cancel', array( 'required' => false, 'ignore' => true, 'label' => 'Cancel', - 'onclick' => 'location.href="/user/role/show/roleID/' . $this->roleID . '"', + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', )); } diff --git a/application/modules/user/forms/MembershipSelect.php b/application/modules/user/forms/MembershipSelect.php index fbf8b8a..b4b54c4 100644 --- a/application/modules/user/forms/MembershipSelect.php +++ b/application/modules/user/forms/MembershipSelect.php @@ -33,7 +33,7 @@ class user_Form_MembershipSelect extends Zend_Form $this->addElement('submit', 'selectmembership', array( 'required' => false, 'ignore' => true, - 'label' => 'Select Group', + 'label' => 'Select', )); } diff --git a/application/modules/user/forms/PersonEdit.php b/application/modules/user/forms/PersonEdit.php index d6c68e7..a6bd123 100644 --- a/application/modules/user/forms/PersonEdit.php +++ b/application/modules/user/forms/PersonEdit.php @@ -108,7 +108,7 @@ class user_Form_PersonEdit extends Zend_Form 'required' => false, 'ignore' => true, 'label' => 'Cancel', - 'onclick' => 'location.href="/user/person/"', + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', )); } diff --git a/application/modules/user/forms/RecoverPassword.php b/application/modules/user/forms/RecoverPassword.php index 90feb87..22a775f 100644 --- a/application/modules/user/forms/RecoverPassword.php +++ b/application/modules/user/forms/RecoverPassword.php @@ -19,7 +19,7 @@ class user_Form_RecoverPassword extends Zend_Form $this->addElement('submit', 'recoverPassword', array( 'required' => false, 'ignore' => true, - 'label' => 'Recover Password', + 'label' => 'Recover', )); } diff --git a/application/modules/user/forms/RoleAdd.php b/application/modules/user/forms/RoleAdd.php index 3b5200b..e8e99a5 100644 --- a/application/modules/user/forms/RoleAdd.php +++ b/application/modules/user/forms/RoleAdd.php @@ -31,6 +31,10 @@ class user_Form_RoleAdd extends Zend_Form 'label' => 'Description:', )); + $this->addElement('checkbox', 'inheritance', array( + 'label' => 'Inheritance:', + )); + $this->addElement('submit', 'add', array( 'required' => false, 'ignore' => true, @@ -41,7 +45,7 @@ class user_Form_RoleAdd extends Zend_Form 'required' => false, 'ignore' => true, 'label' => 'Cancel', - 'onclick' => 'location.href="/user/role/"', + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', )); } diff --git a/application/modules/user/forms/RoleEdit.php b/application/modules/user/forms/RoleEdit.php index 170a2f9..0bdc977 100644 --- a/application/modules/user/forms/RoleEdit.php +++ b/application/modules/user/forms/RoleEdit.php @@ -33,6 +33,17 @@ class user_Form_RoleEdit extends Zend_Form 'value' => $_POST['description'], )); + if($_POST['inheritance'] == 1) { + $this->addElement('checkbox', 'inheritance', array( + 'label' => 'Inheritance:', + 'checked' => 'checked', + )); + } else { + $this->addElement('checkbox', 'inheritance', array( + 'label' => 'Inheritance:', + )); + } + $this->addElement('hidden', 'groupID', array( 'value' => $_POST['groupID'], )); @@ -43,21 +54,12 @@ class user_Form_RoleEdit extends Zend_Form 'label' => 'Save', )); - if(strpos($_SERVER['HTTP_REFERER'], '/user/role/show/roleID')) { - $this->addElement('button', 'cancel', array( + $this->addElement('button', 'cancel', array( 'required' => false, 'ignore' => true, 'label' => 'Cancel', - 'onclick' => 'location.href="/user/role/show/roleID/' . $this->roleID . '"', - )); - } else { - $this->addElement('button', 'cancel', array( - 'required' => false, - 'ignore' => true, - 'label' => 'Cancel', - 'onclick' => 'location.href="/user/role/"', - )); - } + 'onclick' => 'location.href="' . $_SERVER['HTTP_REFERER'] . '"', + )); } diff --git a/application/modules/user/layouts/user.phtml b/application/modules/user/layouts/user.phtml index 83b1c49..35f0b22 100644 --- a/application/modules/user/layouts/user.phtml +++ b/application/modules/user/layouts/user.phtml @@ -1,8 +1,8 @@ <?php echo $this->doctype(); ?> - + <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"> <head> - + <?php $request = Zend_Controller_Front::getInstance()->getRequest(); $this->headTitle()->append(ucwords($request->getControllerName())); @@ -13,12 +13,13 @@ echo $this->headStyle()."\n"; echo $this->headLink()."\n"; echo $this->headScript()."\n"; ?> -<script src='/media/js/jquery.min.js'></script> +<script src='/media/js/jquery.min.js'></script> <script src='/media/js/jquery-ui.min.js'></script> -<script src='/media/js/script.js'></script> +<script src='/media/js/script.js'></script> </head> <body> <div id='sidepannel'> +<<<<<<< HEAD <div id="logo"><div id="logo-bar-gray"></div></div> <div id="sidepannel-top" class='portletNavigationTree'> <ul class='navTreeLevel0'> @@ -47,51 +48,86 @@ echo $this->headScript()."\n"; <li class='navTreeItem'><a href='/user/auth/logout'>Logout</a></li> <?php } +======= +<div id="logo"> +<div id="logo-bar-gray"></div> +</div> +<div id="sidepannel-top" class='portletNavigationTree'> +<ul class='navTreeLevel0'> + <li class='navTreeItem'><a href='/'><<</a></li> + <li class='navTreeItem'><a href='/user/'>user</a></li> + <li> + <ul class='navTreeLevel1'> + <li class='navTreeItem'><a href='/user/person'>Person</a></li> + <li class='navTreeItem'><a href='/user/group'>Group</a></li> + <li class='navTreeItem'><a href='/user/role'>Role</a></li> + <li class='navTreeItem'><a href='/user/bootiso'>BootIso</a></li> + <li class='navTreeItem'><a href='/user/bootmenu'>BootMenu</a></li> + <li class='navTreeItem'><a href='/user/config'>Config</a></li> + <li class='navTreeItem'><a href='/user/bootos'>BootOs</a></li> + <li class='navTreeItem'><a href='/user/client'>Client</a></li> + <li class='navTreeItem'><a href='/user/filter'>Filter</a></li> + <li class='navTreeItem'><a href='/user/pool'>Pool</a></li> + <?php + if(count(Zend_Session::namespaceGet('userIDs')) > 0) { + ?> + <li class='navTreeItem'><a href='/user/person/changemembership'>Change + Membership</a></li> + <?php + } else { +>>>>>>> d7af4710c133f5cfaf830c9ef617bac9730a77d3 ?> - </ul></li> - </ul> -</ul> - </div> + <li class='navTreeItem'><a href='/user/person/selectmembership'>Select + Membership</a></li> + <?php + } + ?> + <?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 {?> + <li class='navTreeItem'><a href='/user/auth/delete'>Delete Account</a></li> + <li class='navTreeItem'><a href='/user/auth/logout'>Logout</a></li> + <?php + } + ?> + </ul> + </li> +</ul> +</ul> +</div> </div> <div id='main'> - <div id="head-bg"> - <div id="head"> - <h1>pbs<sup>2</sup></h1> - <h2>Rechenzentrum Universität Freiburg</h2> - </div> - </div> - <div id="logo-bar-red"></div> - <div id="head-titlebar"> - <?php - echo ucwords($request->getControllerName()) . " > " . ucwords($request->getActionName()); - ?> - </div> - <div id="content"> - <?php echo $this->layout()->content; ?> - </div> +<div id="head-bg"> +<div id="head"> +<h1>pbs<sup>2</sup></h1> +<h2>Rechenzentrum Universität Freiburg</h2> +</div> +</div> +<div id="logo-bar-red"></div> +<div id="head-titlebar"><?php +echo ucwords($request->getControllerName()) . " > " . ucwords($request->getActionName()); +?></div> +<div id="content"><?php echo $this->layout()->content; ?></div> + +<div id="footer" class="footer flexbox flex"> +<div style='padding: 5px;'><a + onclick="$('#debug .v1').toggle();$('#debug .v2').toggle();">display +Debug</a> // <i>last edit: <?php echo date("m\/Y",filectime('index.php'));?></i> +// <i>version: 0.1.1</i></div> </div> - -<div id="footer" class="footer flexbox flex"> - <div style='padding:5px;'> - <a onclick="$('#debug .v1').toggle();$('#debug .v2').toggle();">display Debug</a> // - <i>last edit: <?php echo date("m\/Y",filectime('index.php'));?></i> // - <i>version: 0.1.1</i> - </div> </div> + <div id='debug'> - <div class='v1'> - <a onclick="$('#debug .v1').toggle();$('#debug .v2').toggle();"> - <img src='/media/img/down.png' /> - </a> - </div> - <div class='v2' style='display:none;'> - <div style='text-align:right;'> - <a onclick="$('#debug .v1').toggle();$('#debug .v2').toggle();"> - <img src='/media/img/up.png' /> - </a> - </div> - <?php print_a('Session',$_SESSION,'GET',$_GET,'POST',$_POST); ?> - </div> +<div class='v1'><a + onclick="$('#debug .v1').toggle();$('#debug .v2').toggle();"> <img + src='/media/img/down.png' /> </a></div> +<div class='v2' style='display: none;'> +<div style='text-align: right;'><a + onclick="$('#debug .v1').toggle();$('#debug .v2').toggle();"> <img + src='/media/img/up.png' /> </a></div> +<?php print_a('Session',$_SESSION,'GET',$_GET,'POST',$_POST); ?></div> </div> -</body> -</html> +</body> +</html> diff --git a/application/modules/user/views/scripts/auth/delete.phtml b/application/modules/user/views/scripts/auth/delete.phtml new file mode 100644 index 0000000..62bf24e --- /dev/null +++ b/application/modules/user/views/scripts/auth/delete.phtml @@ -0,0 +1,6 @@ +<h1>Delete Account</h1> +Do you really want to delete this account? +<?php +$this->deleteconfirmform->setAction($this->url()); +echo $this->deleteconfirmform; +?>
\ No newline at end of file diff --git a/application/modules/user/views/scripts/auth/login.phtml b/application/modules/user/views/scripts/auth/login.phtml index d68d2af..899c6e7 100644 --- a/application/modules/user/views/scripts/auth/login.phtml +++ b/application/modules/user/views/scripts/auth/login.phtml @@ -1,3 +1,4 @@ +<h1>Login</h1> <?php $this->loginForm->setAction($this->url()); echo $this->loginForm; diff --git a/application/modules/user/views/scripts/auth/recoverpassword.phtml b/application/modules/user/views/scripts/auth/recoverpassword.phtml index 881e00e..089aec3 100644 --- a/application/modules/user/views/scripts/auth/recoverpassword.phtml +++ b/application/modules/user/views/scripts/auth/recoverpassword.phtml @@ -1,3 +1,4 @@ +<h1>Recover Password</h1> <?php $this->recoverPasswordForm->setAction($this->url()); echo $this->recoverPasswordForm; diff --git a/application/modules/user/views/scripts/auth/register.phtml b/application/modules/user/views/scripts/auth/register.phtml index 2033b04..6217e06 100644 --- a/application/modules/user/views/scripts/auth/register.phtml +++ b/application/modules/user/views/scripts/auth/register.phtml @@ -1,3 +1,4 @@ +<h1>New Account</h1> <?php $this->registerForm->setAction($this->url()); echo $this->registerForm; diff --git a/application/modules/user/views/scripts/group/add.phtml b/application/modules/user/views/scripts/group/add.phtml new file mode 100644 index 0000000..588ce31 --- /dev/null +++ b/application/modules/user/views/scripts/group/add.phtml @@ -0,0 +1,5 @@ +<h1>Add Group</h1> +<?php +$this->addForm->setAction($this->url()); +echo $this->addForm; +?>
\ No newline at end of file diff --git a/application/modules/user/views/scripts/group/edit.phtml b/application/modules/user/views/scripts/group/edit.phtml new file mode 100644 index 0000000..add3a77 --- /dev/null +++ b/application/modules/user/views/scripts/group/edit.phtml @@ -0,0 +1,11 @@ +<h1>Edit Group</h1> +<?php +if(isset($this->addForm)) { + $this->addForm->setAction('/user/group/add'); + echo $this->addForm; +} +else { + $this->editForm->setAction($this->url()); + echo $this->editForm; +} +?> diff --git a/application/modules/user/views/scripts/group/index.phtml b/application/modules/user/views/scripts/group/index.phtml deleted file mode 100644 index a1e5635..0000000 --- a/application/modules/user/views/scripts/group/index.phtml +++ /dev/null @@ -1 +0,0 @@ -<br /><br /><center>View script for controller <b>Group</b> and script/action name <b>index</b></center>
\ No newline at end of file diff --git a/application/modules/user/views/scripts/group/link.phtml b/application/modules/user/views/scripts/group/link.phtml new file mode 100644 index 0000000..5bb2a9d --- /dev/null +++ b/application/modules/user/views/scripts/group/link.phtml @@ -0,0 +1,5 @@ +<h1>Link Groups</h1> +<?php +$this->linkForm->setAction($this->url()); +echo $this->linkForm; +?>
\ No newline at end of file diff --git a/application/modules/user/views/scripts/group/show.phtml b/application/modules/user/views/scripts/group/show.phtml new file mode 100644 index 0000000..d343204 --- /dev/null +++ b/application/modules/user/views/scripts/group/show.phtml @@ -0,0 +1,144 @@ +<?php +if($this->groupID) { + if(isset($this->userIDsNamespace['groupID'])) { + ?> +<h1>Group</h1> + <?php + echo $this->formButton('deletegroup', 'Delete', array( + 'onclick' => 'self.location="/user/group/delete/"', + 'class' => 'rightbutton')); + echo $this->formButton('editgroup', 'Edit', array( + 'onclick' => 'self.location="/user/group/edit/"', + 'class' => 'rightbutton')); + } else { + ?> +<h1>Group Details</h1> + <?php + echo $this->formButton('deletegroup', 'Delete', array( + 'onclick' => 'self.location="/user/group/delete/groupID/' . $this->group->getID() .'"', + 'class' => 'rightbutton')); + echo $this->formButton('editgroup', 'Edit', array( + 'onclick' => 'self.location="/user/group/edit/groupID/' . $this->group->getID() .'"', + 'class' => 'rightbutton')); + } + ?> +<span class="clear"></span> +<table> + <tr> + <th>Title</th> + <th>Description</th> + </tr> + <tr class="entry"> + <td><?php echo $this->group->getTitle(); ?></td> + <td><?php echo $this->group->getDescription(); ?></td> + </tr> + <?php + if(isset($parentGroup) && is_object($parentGroup)) { + ?> + <tr> + <td><b>Superordinated Group:</b></td> + <td><?php echo $this->parentGroup->getTitle(); ?></td> + </tr> + <?php + } + ?> +</table> + <?php + echo $this->formButton('editgroup', 'Show Grouplist', array( + 'onclick' => 'self.location="/user/group/showall"', + 'class' => 'rightbutton')); + if(isset($this->groupRequestList)) { + ?> +<br /> +<h2>Requests:</h2> +<table> + <tr> + <th>Firstname</th> + <th>Name</th> + <th>email</th> + <th>city</th> + <th>grant</th> + </tr> + <?php + foreach($this->groupRequestList as $grouprequest) { + $grouprequestID = $grouprequest['grouprequestID']; + $person = $grouprequest['person']; + ?> + <tr class="entry"> + <td><?php echo $person->getFirstname(); ?></td> + <td><?php echo $person->getName(); ?></td> + <td><?php echo $person->getEmail(); ?></td> + <td><?php echo $person->getCity(); ?></td> + <td> + <form action="/user/group/grantperson" method="post"><input + type="hidden" name="grouprequestID" + value="<?php echo $grouprequestID; ?>" /> <?php printRoleSelect($this->roleList); ?> + <input type="image" src='/media/img/save.png' alt='Grant Person' + name="confirm" value="confirm" /></form> + </td> + </tr> + <?php + } + ?> +</table> + <?php + } + if(isset($this->membersList)) { + ?> +<br /> +<h2>Members:</h2> +<table> + <tr> + <th>Firstname</th> + <th>Name</th> + <th>email</th> + <th>city</th> + <th>revoke</th> + </tr> + + <?php + foreach($this->membersList as $member) { + $membershipID = $member['membershipID']; + $person = $member['person']; + ?> + <tr class="entry"> + <td><?php echo $person->getFirstname(); ?></td> + <td><?php echo $person->getName(); ?></td> + <td><?php echo $person->getEmail(); ?></td> + <td><?php echo $person->getCity(); ?></td> + <td class='action'><a + href="<?php echo $this->url( + array( + 'module' => 'user', + 'controller' => 'group', + 'action' => 'revokeperson', + 'membershipID' => $membershipID, + ), + 'default', + true) ?>"> <img src='/media/img/delete.png' alt='Delete Group' /></a> + </td> + </tr> + <?php + } + ?> +</table> + <?php + } +} + +function printRoleSelect($roleList) { + if(!is_array($roleList)) { + return; + } + echo "<select name=\"roleID\">"; + foreach($roleList as $role) { + echo "<option value=\"" . $role['roleID'] . "\">" . $role['title'] . "</option>"; + } + echo "</select>"; +} +?> +<br /> +<br /> +<br /> +<br /> +<br /> diff --git a/application/modules/user/views/scripts/group/showall.phtml b/application/modules/user/views/scripts/group/showall.phtml new file mode 100644 index 0000000..e26e91e --- /dev/null +++ b/application/modules/user/views/scripts/group/showall.phtml @@ -0,0 +1,79 @@ +<h1>Groups</h1> +<?php echo $this->formButton('addgroup', 'Add Group', array( + 'onclick' => 'self.location="/user/group/add"', + 'class' => 'addbutton')) +?> +<table> + <tr> + <th>Title</th> + <th colspan=3>Actions</th> + </tr> + <?php + $count = 0; + foreach($this->groupList as $group) { + ?> + <tr + <?php if($group->getID() == $this->userIDsNamespace['groupID']) echo 'class="selectedEntry"'; else echo 'class="entry"'; ?>> + <td><?php echo $group->getTitle(); ?></td> + <td class='action'><a + href="<?php if($group->getID() == $this->userIDsNamespace['groupID']) echo $this->url( + array( + 'module' => 'user', + 'controller' => 'group', + 'action' => 'show' + ), + 'default', + true); else echo $this->url( + array( + 'module' => 'user', + 'controller' => 'group', + 'action' => 'show', + 'groupID' => $group->getID() + ), + 'default', + true); ?>"> <img src='/media/img/show.png' alt='Show Group' /></a></td> + <td class='action'><a + href="<?php if($group->getID() == $this->userIDsNamespace['groupID']) echo $this->url( + array( + 'module' => 'user', + 'controller' => 'group', + 'action' => 'edit' + ), + 'default', + true); else echo $this->url( + array( + 'module' => 'user', + 'controller' => 'group', + 'action' => 'edit', + 'groupID' => $group->getID() + ), + 'default', + true); ?>"> <img src='/media/img/edit.png' alt='Edit Group' /></a></td> + <td class='action'><a + href="<?php if($group->getID() == $this->userIDsNamespace['groupID']) echo $this->url( + array( + 'module' => 'user', + 'controller' => 'group', + 'action' => 'delete' + ), + 'default', + true); else echo $this->url( + array( + 'module' => 'user', + 'controller' => 'group', + 'action' => 'delete', + 'groupID' => $group->getID() + ), + 'default', + true); ?>"> <img src='/media/img/delete.png' alt='Delete Group' /></a> + </td> + </tr> + <?php + $count++; + } + ?> +</table> + <?php echo $this->formButton('linkgroups', 'Link Groups', array( + 'onclick' => 'self.location="/user/group/link"', + 'class' => 'addbutton')) + ?> diff --git a/application/modules/user/views/scripts/person/edit.phtml b/application/modules/user/views/scripts/person/edit.phtml index 955ed35..3e666d4 100644 --- a/application/modules/user/views/scripts/person/edit.phtml +++ b/application/modules/user/views/scripts/person/edit.phtml @@ -1,3 +1,4 @@ +<h1>Edit Person</h1> <?php $this->editForm->setAction($this->url()); echo $this->editForm; diff --git a/application/modules/user/views/scripts/person/index.phtml b/application/modules/user/views/scripts/person/index.phtml index f23bc07..cdf5c6b 100644 --- a/application/modules/user/views/scripts/person/index.phtml +++ b/application/modules/user/views/scripts/person/index.phtml @@ -32,7 +32,7 @@ if(isset($this->groups)) { foreach($this->groups as $group) { ?> <tr - <?php if($group['membershipID'] == $this->userIDsNamespace['membershipID']) echo 'class="selectedMembership"'; else echo 'class="entry"'; ?>> + <?php if($group['membershipID'] == $this->userIDsNamespace['membershipID']) echo 'class="selectedEntry"'; else echo 'class="entry"'; ?>> <td><?php echo $group['title']; ?></td> <td><?php echo $group['description']; ?></td> <td class='action'><a diff --git a/application/modules/user/views/scripts/person/request.phtml b/application/modules/user/views/scripts/person/request.phtml index 2da570f..91a625b 100644 --- a/application/modules/user/views/scripts/person/request.phtml +++ b/application/modules/user/views/scripts/person/request.phtml @@ -1,3 +1,4 @@ +<h1>Request Membership</h1> <?php if(count($this->requestForm->getGrouplist())>0) { $this->requestForm->setAction($this->url()); diff --git a/application/modules/user/views/scripts/person/selectmembership.phtml b/application/modules/user/views/scripts/person/selectmembership.phtml index 2bfe4d6..5f7e5bf 100644 --- a/application/modules/user/views/scripts/person/selectmembership.phtml +++ b/application/modules/user/views/scripts/person/selectmembership.phtml @@ -1,3 +1,4 @@ +<h1>Select Membership</h1> <?php $this->membershipSelectForm->setAction($this->url()); echo $this->membershipSelectForm; diff --git a/application/modules/user/views/scripts/role/add.phtml b/application/modules/user/views/scripts/role/add.phtml index 4f96cf0..23d4c55 100644 --- a/application/modules/user/views/scripts/role/add.phtml +++ b/application/modules/user/views/scripts/role/add.phtml @@ -1,3 +1,4 @@ +<h1>Add Role</h1> <?php $this->addForm->setAction($this->url()); echo $this->addForm; diff --git a/application/modules/user/views/scripts/role/edit.phtml b/application/modules/user/views/scripts/role/edit.phtml index c976a90..59482f0 100644 --- a/application/modules/user/views/scripts/role/edit.phtml +++ b/application/modules/user/views/scripts/role/edit.phtml @@ -1,3 +1,4 @@ +<h1>Edit Role</h1> <?php if(isset($this->addForm)) { $this->addForm->setAction('/etc/role/add'); diff --git a/application/modules/user/views/scripts/role/linkright.phtml b/application/modules/user/views/scripts/role/linkright.phtml index 94ad343..38c0d45 100644 --- a/application/modules/user/views/scripts/role/linkright.phtml +++ b/application/modules/user/views/scripts/role/linkright.phtml @@ -1,3 +1,4 @@ +<h1>Add Right</h1> <?php $this->linkForm->setAction($this->url()); echo $this->linkForm; diff --git a/application/modules/user/views/scripts/role/show.phtml b/application/modules/user/views/scripts/role/show.phtml index 9abab1a..b99c1f8 100644 --- a/application/modules/user/views/scripts/role/show.phtml +++ b/application/modules/user/views/scripts/role/show.phtml @@ -1,6 +1,14 @@ -<h1>Role Details</h1> <?php if($this->roleID) { + if(isset($this->userIDsNamespace['roleID'])) { + ?> +<h1>Role</h1> + <?php + } else { + ?> +<h1>Role Details</h1> + <?php + } ?> <?php echo $this->formButton('deleterole', 'Delete', array( 'onclick' => 'self.location="/user/role/delete/roleID/' . $this->role->getID() .'"', @@ -13,10 +21,12 @@ if($this->roleID) { <tr> <th>Title</th> <th>Description</th> + <th>Inheritance</th> </tr> <tr class="entry"> <td><?php echo $this->role->getTitle(); ?></td> <td><?php echo $this->role->getDescription(); ?></td> + <td><?php if($this->role->getInheritance() == 1) echo "yes"; else echo "no"; ?></td> </tr> </table> <br /> |
