[ 'class' => VerbFilter::className(), 'actions' => [ ], ], 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ 'allow' => true, 'roles' => ['@'], /* 'matchCallback' => function ($rule, $action) { return Yii::$app->user->identity->status == USER::STATUS_ADMIN ; } */ ] ], ], ]; } /** * Updates an existing User model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate() { $model = $this->findModel(Yii::$app->user->identity->id); if ($model->load(Yii::$app->request->post()) && $model->validate()) { // l'utilisateur ne peut pas changer d'adresse email $old_model = $this->findModel(Yii::$app->user->identity->id); $model->email = $old_model->email; // modification du mot de passe if (strlen($model->password_new)) { //$model->setPassword($model->password_new) ; $model->password_hash = Yii::$app->security->generatePasswordHash($model->password_new); $model->password_old = ''; $model->password_new = ''; $model->password_new_confirm = ''; } $model->save(); Yii::$app->session->setFlash('success', 'Votre profil a bien été modifié.'); return $this->render('update', [ 'model' => $model, ]); } else { if (!$model->validate()) { Yii::$app->session->setFlash('error', 'Le formulaire comporte des erreurs.'); } return $this->render('update', [ 'model' => $model, ]); } } /** * Finds the User model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return User the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = User::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } }