@@ -316,7 +318,7 @@
-
+
@@ -332,8 +334,14 @@
-
-
+
+
+
+
+
+
+
+
diff --git a/application/modules/user/controllers/AuthController.php b/application/modules/user/controllers/AuthController.php
index 7eccc98..8160104 100644
--- a/application/modules/user/controllers/AuthController.php
+++ b/application/modules/user/controllers/AuthController.php
@@ -2,9 +2,7 @@
class User_AuthController extends Zend_Controller_Action
{
-
protected $personmapper = null;
-
private $db = null;
public function init()
@@ -120,11 +118,19 @@ class User_AuthController extends Zend_Controller_Action
public function deleteAction()
{
+ if($this->_request->getParam('personID')) {
+ if(!Pbs_Acl::checkRight('peoa')) {
+ $this->_redirect('/user');
+ }
+ $personID = $this->_request->getParam('personID');
+ } else {
+ if(!Pbs_Acl::checkRight('pdo')) {
+ $this->_redirect('/user');
+ }
+ $userIDsNamespace = Zend_Session::namespaceGet('userIDs');
+ $personID = $userIDsNamespace['personID'];
+ }
if($_POST['confirmdelete']) {
- $auth = Zend_Auth::getInstance();
- $result = $this->personmapper->findBy(array('email' => $auth->getIdentity()),true);
- $person = $result[0];
- $personID = $person["personID"];
if (isset($personID)){
$this->personmapper = new Application_Model_PersonMapper();
$person = $this->personmapper->find($personID);
diff --git a/application/modules/user/controllers/PersonController.php b/application/modules/user/controllers/PersonController.php
index e614b98..08add21 100644
--- a/application/modules/user/controllers/PersonController.php
+++ b/application/modules/user/controllers/PersonController.php
@@ -2,7 +2,6 @@
class user_PersonController extends Zend_Controller_Action
{
-
protected $person = null;
protected $personmapper = null;
protected $membershipMapper = null;
@@ -10,14 +9,20 @@ class user_PersonController extends Zend_Controller_Action
protected $groupMapper = null;
protected $groups = null;
protected $groupRequestMapper = null;
+ protected $userIDsNamespace = null;
public function init()
{
if (Zend_Auth::getInstance()->hasIdentity()) {
$this->personmapper = new Application_Model_PersonMapper();
- $result = $this->personmapper->findBy(array('email' => Zend_Auth::getInstance()->getIdentity()),true);
- $this->person = new Application_Model_Person($result[0]);
- $this->person->setID($result[0]['personID']);
+ $this->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
+ if($this->userIDsNamespace['personID']) {
+ $this->person = $this->personmapper->find($this->userIDsNamespace['personID']);
+ } else {
+ $result = $this->personmapper->findBy(array('email' => Zend_Auth::getInstance()->getIdentity()),true);
+ $this->person = new Application_Model_Person($result[0]);
+ $this->person->setID($result[0]['personID']);
+ }
$this->groupMapper = new Application_Model_GroupMapper();
$this->groupRequestMapper = new Application_Model_GroupRequestMapper();
$this->membershipMapper = new Application_Model_MembershipMapper();
@@ -26,10 +31,10 @@ class user_PersonController extends Zend_Controller_Action
foreach($this->memberships as $membership) {
$group = $this->groupMapper->find($membership['groupID']);
$this->groups[] = array (
- 'groupID' => $group->getID(),
- 'title' => $group->getTitle(),
- 'description' => $group->getDescription(),
- 'membershipID' => $membership['membershipID']
+ 'groupID' => $group->getID(),
+ 'title' => $group->getTitle(),
+ 'description' => $group->getDescription(),
+ 'membershipID' => $membership['membershipID']
);
}
}
@@ -41,12 +46,15 @@ class user_PersonController extends Zend_Controller_Action
public function indexAction()
{
-
if(!Pbs_Acl::checkRight('psod')) {
$this->_redirect('/user');
}
$this->view->person = $this->person;
$this->view->groups = $this->groups;
+ $this->view->groupRequestRight = Pbs_Acl::checkRight('grm');
+ $this->view->editRight = Pbs_Acl::checkRight('peoa');
+ $this->view->leaveRight = Pbs_Acl::checkRight('gl');
+ $this->view->overviewRight = Pbs_Acl::checkRight('pso');
$this->view->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
}
@@ -55,27 +63,54 @@ class user_PersonController extends Zend_Controller_Action
if(!Pbs_Acl::checkRight('peod')) {
$this->_redirect('/user');
}
- $this->view->person = $this->person;
+ if($personID = $this->_request->getParam('personID')) {
+ if(!Pbs_Acl::checkRight('peoa')) {
+ $this->_redirect('/user');
+ }
+ $person = $this->personmapper->find($personID);
+ $this->view->person = $person;
+ } else {
+ $this->view->person = $this->person;
+ }
if (!isset($_POST["save"])){
$editForm = new user_Form_PersonEdit();
} else {
$editForm = new user_Form_PersonEdit($_POST);
if ($editForm->isValid($_POST)) {
- if(isset($_POST['newpassword'])) {
- $date = new DateTime();
- $this->person->setPassword($_POST['newpassword']);
- $this->person->setPasswordSalt(MD5($date->getTimestamp()));
- $this->person->setPassword(MD5($this->person->getPassword() . $this->person->getPasswordSalt()));
- }
- $this->person->setOptions($_POST);
- try {
- $this->personmapper->save($this->person);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "
";
- echo "Message: " . $e->getMessage() . "
";
- echo "Email Address already existing.";
- return;
+ if($personID = $this->_request->getParam('personID')) {
+ if(isset($_POST['newpassword'])) {
+ $date = new DateTime();
+ $person->setPassword($_POST['newpassword']);
+ $person->setPasswordSalt(MD5($date->getTimestamp()));
+ $person->setPassword(MD5($person->getPassword() . $this->person->getPasswordSalt()));
+ }
+ $person->setOptions($_POST);
+ try {
+ $this->personmapper->save($person);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "
";
+ echo "Message: " . $e->getMessage() . "
";
+ echo "Email Address already existing.";
+ return;
+ }
+ } else {
+ if(isset($_POST['newpassword'])) {
+ $date = new DateTime();
+ $this->person->setPassword($_POST['newpassword']);
+ $this->person->setPasswordSalt(MD5($date->getTimestamp()));
+ $this->person->setPassword(MD5($this->person->getPassword() . $this->person->getPasswordSalt()));
+ }
+ $this->person->setOptions($_POST);
+ try {
+ $this->personmapper->save($this->person);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "
";
+ echo "Message: " . $e->getMessage() . "
";
+ echo "Email Address already existing.";
+ return;
+ }
}
$this->_helper->redirector('', 'person');
return;
@@ -151,10 +186,9 @@ class user_PersonController extends Zend_Controller_Action
public function leaveAction()
{
- // Nicht klar welches Recht geprüft werden soll
- /*if(!Pbs_Acl::checkRight('peod')) {
- $this->_redirect('/user');
- }*/
+ if(!Pbs_Acl::checkRight('gl')) {
+ $this->_redirect('/user');
+ }
$this->_helper-> viewRenderer-> setNoRender();
$this->view->person = $this->person;
$membershipID = $this->_request->getParam('membershipID');
@@ -197,9 +231,9 @@ class user_PersonController extends Zend_Controller_Action
$group = $groupMapper->find($membership['groupID']);
$role = $roleMapper->find($membership['roleID']);
$membershipList[] = array(
- 'membershipID' => $membership['membershipID'],
- 'group' => $group->getTitle(),
- 'role' => $role->getTitle()
+ 'membershipID' => $membership['membershipID'],
+ 'group' => $group->getTitle(),
+ 'role' => $role->getTitle()
);
}
}
@@ -220,6 +254,54 @@ class user_PersonController extends Zend_Controller_Action
return;
}
+ public function showallAction()
+ {
+ 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->showOtherRight = Pbs_Acl::checkRight('psood');
+ $this->view->editOtherRight = Pbs_Acl::checkRight('peoa');
+ $this->view->deleteOtherRight = Pbs_Acl::checkRight('pdo');
+ $this->view->userIDsNamespace = $this->userIDsNamespace;
+ $this->view->personList = $this->personmapper->fetchAll();
+ }
+
+ public function showAction()
+ {
+ if(!Pbs_Acl::checkRight('psood')) {
+ $this->_redirect('/user');
+ }
+ $personID = $this->_request->getParam('personID');
+ if($personID) {
+ $person = $this->personmapper->find($personID);
+ $memberships = $this->membershipMapper->findBy(array("personID" => $person->getID()),true);
+ if(isset($memberships)) {
+ foreach($memberships as $membership) {
+ $group = $this->groupMapper->find($membership['groupID']);
+ $groups[] = array (
+ 'groupID' => $group->getID(),
+ 'title' => $group->getTitle(),
+ 'description' => $group->getDescription(),
+ 'membershipID' => $membership['membershipID']
+ );
+ }
+ }
+ $this->view->person = $person;
+ $this->view->groups = $groups;
+ $this->view->personID = $personID;
+ $this->view->editRight = Pbs_Acl::checkRight('peoa');
+ $this->view->deleteRight = Pbs_Acl::checkRight('pd');
+ $this->view->overviewRight = Pbs_Acl::checkRight('pso');
+ $this->view->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
+ } else {
+ $this->_helper->redirector('', 'person');
+ return;
+ }
+ }
+
}
@@ -237,3 +319,7 @@ class user_PersonController extends Zend_Controller_Action
+
+
+
+
diff --git a/application/modules/user/views/scripts/group/show.phtml b/application/modules/user/views/scripts/group/show.phtml
index d343204..9777b21 100644
--- a/application/modules/user/views/scripts/group/show.phtml
+++ b/application/modules/user/views/scripts/group/show.phtml
@@ -139,6 +139,3 @@ function printRoleSelect($roleList) {
?>
-
-
-
diff --git a/application/modules/user/views/scripts/group/showall.phtml b/application/modules/user/views/scripts/group/showall.phtml
index e26e91e..e58e762 100644
--- a/application/modules/user/views/scripts/group/showall.phtml
+++ b/application/modules/user/views/scripts/group/showall.phtml
@@ -1,4 +1,4 @@
-Groups
+Groups Overview
formButton('addgroup', 'Add Group', array(
'onclick' => 'self.location="/user/group/add"',
'class' => 'addbutton'))
@@ -77,3 +77,5 @@
'onclick' => 'self.location="/user/group/link"',
'class' => 'addbutton'))
?>
+
+
diff --git a/application/modules/user/views/scripts/person/index.phtml b/application/modules/user/views/scripts/person/index.phtml
index cdf5c6b..715bd95 100644
--- a/application/modules/user/views/scripts/person/index.phtml
+++ b/application/modules/user/views/scripts/person/index.phtml
@@ -1,5 +1,5 @@
Person
-formButton('editperson', 'Edit', array(
+editRight === true) echo $this->formButton('editperson', 'Edit', array(
'onclick' => 'self.location="/user/person/edit/"',
'class' => 'rightbutton'))?>
@@ -15,18 +15,23 @@
Last Login Date: person->getLogindate()) echo date ('d. F Y - H:i', $this->person->getLogindate()) . " Uhr"; ?>
Register Date: person->getRegisterdate()) . ' Uhr'; ?>
overviewRight === true) echo $this->formButton('showallperson', 'Show Personlist', array(
+ 'onclick' => 'self.location="/user/person/showall/"',
+ 'class' => 'rightbutton'));
if(isset($this->groups)) {
?>
Member in the following Groups:
- formButton('changeGroup', 'Select other Membership', array(
- 'onclick' => 'self.location="/user/person/changemembership"',
- 'class' => 'rightbutton'))?>
| Title |
Description |
+ leaveRight === true) {
+ ?>
Leave |
+
groups as $group) {
@@ -35,6 +40,8 @@ if(isset($this->groups)) {
userIDsNamespace['membershipID']) echo 'class="selectedEntry"'; else echo 'class="entry"'; ?>>
|
|
+ leaveRight === true) {
+ ?>
|
+
- formButton('addtogroup', 'Add to additional
+ groupRequestRight === true) echo $this->formButton('addtogroup', 'Add to additional
Groups', array(
'onclick' => 'self.location="/user/person/request/"',
'class' => 'addbutton'));
@@ -59,6 +69,3 @@ Groups', array(
?>
-
-
-
diff --git a/application/modules/user/views/scripts/person/show.phtml b/application/modules/user/views/scripts/person/show.phtml
new file mode 100644
index 0000000..a380b3c
--- /dev/null
+++ b/application/modules/user/views/scripts/person/show.phtml
@@ -0,0 +1,48 @@
+Person
+editRight === true) echo $this->formButton('editperson', 'Edit', array(
+ 'onclick' => 'self.location="/user/person/edit/personID/' . $this->personID . '"',
+ 'class' => 'rightbutton')) ?>
+deleteRight === true) echo $this->formButton('deleteperson', 'Delete', array(
+ 'onclick' => 'self.location="/user/auth/delete/personID/' . $this->personID . '"',
+ 'class' => 'rightbutton')) ?>
+
+
+Title: person->getTitle(); ?>
+Name: person->getName(); ?>
+Firstname: person->getFirstname(); ?>
+Street: person->getStreet(); ?>
+Housenumber: person->getHousenumber(); ?>
+City: person->getCity(); ?>
+Postalcode: person->getPostalcode(); ?>
+Email: person->getEmail(); ?>
+Last Login Date: person->getLogindate()) echo date ('d. F Y - H:i', $this->person->getLogindate()) . " Uhr"; ?>
+Register Date: person->getRegisterdate()) . ' Uhr'; ?>
+overviewRight === true) echo $this->formButton('showallperson', 'Show Personlist', array(
+ 'onclick' => 'self.location="/user/person/showall/"',
+ 'class' => 'rightbutton'));
+if(isset($this->groups)) {
+ ?>
+
+Member in the following Groups:
+
+
+ | Title |
+ Description |
+
+ groups as $group) {
+ ?>
+
+ |
+ |
+
+
+
+
+
+
diff --git a/application/modules/user/views/scripts/person/showall.phtml b/application/modules/user/views/scripts/person/showall.phtml
new file mode 100644
index 0000000..68e9e7c
--- /dev/null
+++ b/application/modules/user/views/scripts/person/showall.phtml
@@ -0,0 +1,117 @@
+Persons Overview
+
+
+
+
+ | Title |
+ Name |
+ Firstname |
+ Email |
+ showRight === true || $this->editRight === true || $this->deleteRight === true) {
+ ?>
+ Actions |
+
+
+ personList) > 0) {
+ foreach($this->personList as $person) {
+ ?>
+ getID() == $this->userIDsNamespace['personID']) echo 'class="selectedEntry"'; else echo 'class="entry"'; ?>>
+ | getTitle(); ?> |
+ getName(); ?> |
+ getFirstname(); ?> |
+ getEmail(); ?> |
+ getID() == $this->userIDsNamespace['personID']) {
+ if($this->showRight === true) {
+ ?>
+  |
+ editRight === true) { ?>
+  |
+ deleteRight === true) { ?>
+  |
+ showOtherRight === true) {
+ ?>
+  |
+ editOtherRight === true) {
+ ?>
+  |
+ deleteOtherRight === true) {
+ ?>
+  |
+
+
+
+
diff --git a/application/modules/user/views/scripts/role/index.phtml b/application/modules/user/views/scripts/role/index.phtml
index db20aa2..a0b4284 100644
--- a/application/modules/user/views/scripts/role/index.phtml
+++ b/application/modules/user/views/scripts/role/index.phtml
@@ -56,4 +56,6 @@ if($this->userIDsNamespace['groupID']) {