From 63b4fb51d481e4376f60f188c171d57970abbd46 Mon Sep 17 00:00:00 2001 From: Björn Geiger Date: Wed, 13 Apr 2011 15:05:53 +0200 Subject: Suspend und Resume Account --- .../modules/user/controllers/AuthController.php | 12 ++++-- .../modules/user/controllers/PersonController.php | 49 ++++++++++++++++++++++ application/modules/user/forms/PersonEdit.php | 2 +- application/modules/user/forms/Register.php | 2 +- .../modules/user/views/scripts/person/index.phtml | 39 +++++++++++++---- .../user/views/scripts/person/owndetails.phtml | 48 +++++++++++++-------- .../modules/user/views/scripts/person/show.phtml | 29 +++++++++---- 7 files changed, 142 insertions(+), 39 deletions(-) (limited to 'application/modules') diff --git a/application/modules/user/controllers/AuthController.php b/application/modules/user/controllers/AuthController.php index d1596ae..a90c8db 100644 --- a/application/modules/user/controllers/AuthController.php +++ b/application/modules/user/controllers/AuthController.php @@ -52,9 +52,14 @@ class User_AuthController extends Zend_Controller_Action $person->setID($result[0]['personID']); $date = new DateTime(); $person->setLogindate($date->getTimestamp()); - $this->personmapper->save($person); - $this->_helper->redirector('selectmembership', 'person'); - return; + if($person->getSuspended()) { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('Your Account is suspended', 'error'); + } else { + $this->personmapper->save($person); + $this->_helper->redirector('selectmembership', 'person'); + return; + } } else { $pbsNotifier = new Pbs_Notifier(); $this->view->notification = $pbsNotifier->notify('Wrong Email or Password', 'error'); @@ -95,6 +100,7 @@ class User_AuthController extends Zend_Controller_Action $person = new Application_Model_Person($_POST); $this->personmapper = new Application_Model_PersonMapper(); $date = new DateTime(); + $person->setSuspended(0); $person->setRegisterdate($date->getTimestamp()); $person->setPasswordSalt(MD5($date->getTimestamp())); $person->setPassword(MD5($person->getPassword() . $person->getPasswordSalt())); diff --git a/application/modules/user/controllers/PersonController.php b/application/modules/user/controllers/PersonController.php index bbdf232..975b10e 100644 --- a/application/modules/user/controllers/PersonController.php +++ b/application/modules/user/controllers/PersonController.php @@ -63,6 +63,7 @@ class user_PersonController extends Zend_Controller_Action $this->view->showOtherRight = Pbs_Acl::checkRight('psood'); $this->view->editOtherRight = Pbs_Acl::checkRight('peoa'); $this->view->deleteOtherRight = Pbs_Acl::checkRight('pdo'); + $this->view->suspendRight = Pbs_Acl::checkRight('psa'); $this->view->userIDsNamespace = $this->userIDsNamespace; $this->view->personList = $this->personmapper->fetchAll(); @@ -123,6 +124,7 @@ class user_PersonController extends Zend_Controller_Action $this->view->groupRequestRight = true; $this->view->editRight = Pbs_Acl::checkRight('peod'); $this->view->leaveRight = Pbs_Acl::checkRight('gl'); + $this->view->suspendRight = Pbs_Acl::checkRight('psa'); $this->view->userIDsNamespace = Zend_Session::namespaceGet('userIDs'); } @@ -386,6 +388,7 @@ class user_PersonController extends Zend_Controller_Action $this->view->personID = $personID; $this->view->editRight = Pbs_Acl::checkRight('peoa'); $this->view->deleteRight = Pbs_Acl::checkRight('pd'); + $this->view->suspendRight = Pbs_Acl::checkRight('psa'); $this->view->userIDsNamespace = Zend_Session::namespaceGet('userIDs'); } else { $this->_helper->redirector('', 'person'); @@ -409,6 +412,52 @@ class user_PersonController extends Zend_Controller_Action return; } + public function suspendAction() + { + if(!Pbs_Acl::checkRight('psa')) { + $this->_redirect('/user'); + } + $this->_helper->viewRenderer->setNoRender(); + $personID = $this->_request->getParam('personID'); + if(isset($personID)) { + $person = $this->personmapper->find($personID); + $person->setSuspended(1); + if(isset($person)) { + try { + $this->personmapper->save($person); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + return; + } + $this->_redirect("/user/person/"); + } + } + } + public function resumeAction() + { + if(!Pbs_Acl::checkRight('psa')) { + $this->_redirect('/user'); + } + $this->_helper->viewRenderer->setNoRender(); + $personID = $this->_request->getParam('personID'); + if(isset($personID)) { + $person = $this->personmapper->find($personID); + $person->setSuspended(0); + if(isset($person)) { + try { + $this->personmapper->save($person); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "
"; + echo "Message: " . $e->getMessage() . "
"; + return; + } + $this->_redirect("/user/person/"); + } + } + } } diff --git a/application/modules/user/forms/PersonEdit.php b/application/modules/user/forms/PersonEdit.php index 7175691..392174c 100644 --- a/application/modules/user/forms/PersonEdit.php +++ b/application/modules/user/forms/PersonEdit.php @@ -92,7 +92,7 @@ class user_Form_PersonEdit extends Zend_Form $this->addElement('password', 'newpassword', array( 'filters' => array('StringTrim'), 'validators' => array( - array('StringLength', false, array(0, 50)), + array('StringLength', false, array(5, 50)), ), 'required' => false, 'label' => 'Neues Password:', diff --git a/application/modules/user/forms/Register.php b/application/modules/user/forms/Register.php index 9c2a42d..1a054c4 100644 --- a/application/modules/user/forms/Register.php +++ b/application/modules/user/forms/Register.php @@ -84,7 +84,7 @@ class user_Form_Register extends Zend_Form $this->addElement('password', 'password', array( 'filters' => array('StringTrim'), 'validators' => array( - array('StringLength', false, array(0, 50)), + array('StringLength', false, array(5, 50)), ), 'required' => true, 'label' => 'Password:', diff --git a/application/modules/user/views/scripts/person/index.phtml b/application/modules/user/views/scripts/person/index.phtml index 1304299..93dfd78 100644 --- a/application/modules/user/views/scripts/person/index.phtml +++ b/application/modules/user/views/scripts/person/index.phtml @@ -15,14 +15,12 @@ $class=''; if($person->getID() == $this->userIDsNamespace['personID']) $class= 'highlight checked'; ?> -
-getID() != $this->userIDsNamespace['personID']) { +
getID() != $this->userIDsNamespace['personID']) { ?> -
-
Person
- -
- +
Person
+
+
@@ -103,6 +101,33 @@ if($person->getID() == $this->userIDsNamespace['personID']) { suspendRight === true) { + if($person->getSuspended() == 1) { + ?> Resume Account + Suspend Account
getTitle(); ?> getFirstname(); ?> getName(); ?>
getEmail(); ?>
diff --git a/application/modules/user/views/scripts/person/owndetails.phtml b/application/modules/user/views/scripts/person/owndetails.phtml index db9221d..dc6e9aa 100644 --- a/application/modules/user/views/scripts/person/owndetails.phtml +++ b/application/modules/user/views/scripts/person/owndetails.phtml @@ -1,27 +1,40 @@

Own Details

editRight === true) echo $this->formButton('editperson', 'Edit', array( 'onclick' => 'self.location="/user/person/edit/"', 'class' => 'rightbutton'))?>
-
-
person->getTitle()." ".$this->person->getFirstname()." ".$this->person->getName(); ?>
-
person->getEmail(); ?>
-
-
person->getStreet(); ?> 
-
person->getHousenumber(); ?> 
-
person->getCity(); ?> 
-
person->getPostalcode(); ?> 
-
person->getEmail(); ?> 
-
person->getLogindate()) echo date ('d. F Y - H:i', $this->person->getLogindate()) . " Uhr"; ?> 
-
person->getRegisterdate()) . ' Uhr'; ?> 
-
-
-
+
+
person->getTitle()." ".$this->person->getFirstname()." ".$this->person->getName(); ?>
+
person->getEmail(); ?>
+
+
person->getStreet(); ?> 
+ +
person->getHousenumber(); ?> 
+ +
person->getCity(); ?> 
+ +
person->getPostalcode(); ?> 
+ +
person->getEmail(); ?> 
+ +
person->getLogindate()) echo date ('d. F Y - H:i', $this->person->getLogindate()) . " Uhr"; ?> 
+ +
person->getRegisterdate()) . ' Uhr'; ?> 
+suspendRight === true) +{ + ?> +
person->getSuspended() == 1) echo "yes"; else echo "no"; ?>
+
+

Member in the following Groups:

@@ -65,8 +78,7 @@ $class= 'highlight checked';
pagination; if(isset($this->groupRequestList)) { - ?> -
+ ?>

Requests:

groupRequestList as $grouprequest) { @@ -103,4 +115,4 @@ foreach($this->groupRequestList as $grouprequest) { ?>
+ ?> \ No newline at end of file diff --git a/application/modules/user/views/scripts/person/show.phtml b/application/modules/user/views/scripts/person/show.phtml index c43bde3..2f2ef56 100644 --- a/application/modules/user/views/scripts/person/show.phtml +++ b/application/modules/user/views/scripts/person/show.phtml @@ -66,7 +66,18 @@
+suspendRight === true) +{ + ?> +
+
+
Suspended: person->getSuspended() == 1) echo "yes"; else echo "no"; ?>
+
+
+

Member in the following Groups:

groups)==0) @@ -105,18 +116,18 @@ foreach($this->groupRequestList as $grouprequest) {
getTitle(); ?>
- getDescription()) { - ?> + getDescription()) { + ?>
getDescription(); ?>
- +
 
-
+
-