+
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';
?>
-
+