diff options
Diffstat (limited to 'protected/controllers/UserController.php')
| -rw-r--r-- | protected/controllers/UserController.php | 113 |
1 files changed, 75 insertions, 38 deletions
diff --git a/protected/controllers/UserController.php b/protected/controllers/UserController.php index 79fc7e8..3c28e7b 100644 --- a/protected/controllers/UserController.php +++ b/protected/controllers/UserController.php @@ -1,7 +1,6 @@ <?php -class UserController extends Controller -{ +class UserController extends Controller { /** * @var string the default layout for the views. Defaults to '//layouts/column2', meaning * using two-column layout. See 'protected/views/layouts/column2.php'. @@ -11,8 +10,7 @@ class UserController extends Controller /** * @return array action filters */ - public function filters() - { + public function filters() { return array( 'accessControl', // perform access control for CRUD operations ); @@ -23,11 +21,10 @@ class UserController extends Controller * This method is used by the 'accessControl' filter. * @return array access control rules */ - public function accessRules() - { + public function accessRules() { return array( array('allow', // allow admin user to perform 'admin' and 'delete' actions - 'actions'=>array('create','update','index','view','admin','delete'), + 'actions'=>array('create', 'update', 'index', 'view', 'admin', 'delete', 'newPassword'), 'users'=>array('admin'), ), array('deny', // deny all users @@ -40,8 +37,7 @@ class UserController extends Controller * Displays a particular model. * @param integer $id the ID of the model to be displayed */ - public function actionView($id) - { + public function actionView($id) { $this->render('view', array( 'model'=>$this->loadModel($id), )); @@ -51,19 +47,18 @@ class UserController extends Controller * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ - public function actionCreate() - { + public function actionCreate() { $model = new User; // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); - if(isset($_POST['User'])) - { + if (isset($_POST['User'])) { $model->attributes = $_POST['User']; - if($model->save()) + if ($model->save()) { $this->redirect(array('view', 'id'=>$model->id)); } + } $this->render('create', array( 'model'=>$model, @@ -75,19 +70,18 @@ class UserController extends Controller * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id the ID of the model to be updated */ - public function actionUpdate($id) - { + public function actionUpdate($id) { $model = $this->loadModel($id); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); - if(isset($_POST['User'])) - { + if (isset($_POST['User'])) { $model->attributes = $_POST['User']; - if($model->save()) + if ($model->save()) { $this->redirect(array('view', 'id'=>$model->id)); } + } $this->render('update', array( 'model'=>$model, @@ -99,26 +93,24 @@ class UserController extends Controller * If deletion is successful, the browser will be redirected to the 'admin' page. * @param integer $id the ID of the model to be deleted */ - public function actionDelete($id) - { - if(Yii::app()->request->isPostRequest) - { + public function actionDelete($id) { + if (Yii::app()->request->isPostRequest) { // we only allow deletion via POST request $this->loadModel($id)->delete(); // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser - if(!isset($_GET['ajax'])) + if (!isset($_GET['ajax'])) { $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin')); } - else + } else { throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.'); } + } /** * Lists all models. */ - public function actionIndex() - { + public function actionIndex() { $dataProvider = new CActiveDataProvider('User'); $this->render('index', array( 'dataProvider'=>$dataProvider, @@ -128,28 +120,75 @@ class UserController extends Controller /** * Manages all models. */ - public function actionAdmin() - { + public function actionAdmin() { $model = new User('search'); $model->unsetAttributes(); // clear any default values - if(isset($_GET['User'])) + if (isset($_GET['User'])) { $model->attributes = $_GET['User']; + } $this->render('admin', array( 'model'=>$model, )); } + public function actionNewPassword() { + if (Yii::app()->request->isAjaxRequest) { + if (isset($_POST['id'])) { + $model = $this->loadModel($_POST['id']);
+
+ $pw = $model->generateNewPassword();
+
+ $model->password = $pw;
+ $model->admin_pw_reset = true;
+
+ if ($model->save()) { + // E-Mail an den Verein + $message = new YiiMailMessage(); + $message->view = "newVerein";
+ $message->setBody(array("username"=>$model->username, "pw"=>$pw));
+ $message->subject = 'Ihr Verein wurde auf astaf.de eingetragen';
+ $message->addTo($model->verein->email);
+ $message->from = Yii::app()->params['adminEmail']; + Yii::app()->mail->send($message); + + // E-Mail an die Admin-Adresse + $message = new YiiMailMessage();
+ $message->setBody("Dem Verein '".$model->verein->name."' (".$model->username.") wurde ein neues Passwort zugeschickt.");
+ $message->subject = 'Der Verein \''.$model->verein->name.'\' wurde auf astaf.de eingetragen';
+ $message->addTo(Yii::app()->params['adminEmail']);
+ $message->from = Yii::app()->params['adminEmail'];
+ Yii::app()->mail->send($message); +
+ echo CJSON::encode(array( + 'status'=>'success', + 'message'=>'Das neue Passwort wurde erfolgreich generiert: '.$pw + ));
+ Yii::app()->end();
+ } else { + echo CJSON::encode(array(
+ 'status'=>'failure',
+ 'message'=>'Fehler bei der Generierung des neuen Passworts.'
+ )); + } + } else { + throw new CHttpException(400); + } + } else { + throw new CHttpException(400); + } + } + /** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ - public function loadModel($id) - { + public function loadModel($id) { $model = User::model()->findByPk($id); - if($model===null) - throw new CHttpException(404,'The requested page does not exist.'); + if ($model === null) { + throw new CHttpException(404, 'The requested user does not exist.'); + } return $model; } @@ -157,10 +196,8 @@ class UserController extends Controller * Performs the AJAX validation. * @param CModel the model to be validated */ - protected function performAjaxValidation($model) - { - if(isset($_POST['ajax']) && $_POST['ajax']==='user-form') - { + protected function performAjaxValidation($model) { + if(isset($_POST['ajax']) && $_POST['ajax'] === 'user-form') { echo CActiveForm::validate($model); Yii::app()->end(); } |
