array('modificar', 'cambiarPassword'), 'users' => array('@'), ), array('deny', // deny all users 'users' => array('*'), ), ); } /** * Actualiza un usuario. * 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 actionModificar($id) { if ($id != Yii::app()->user->id) throw new CHttpException(404, Yii::t('profind', 'La página solicitada no existe.')); $usuario = $this->loadModel($id); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($usuario); if (isset($_POST['Usuario'])) { $usuario->attributes = $_POST['Usuario']; $ficheroFotografia = CUploadedFile::getInstance($usuario, 'ficheroFotografia'); $quitarFotografia = Yii::app()->request->getParam('quitar_fotografia', '0'); if ($usuario->save()) { if (($quitarFotografia == '1') && ($usuario->fotografia->tieneFotografia())) $usuario->fotografia->eliminarFotografia(); if ($ficheroFotografia) $usuario->fotografia->guardarFotografia($ficheroFotografia); Yii::app()->user->setFlash('success', Yii::t('profind', 'Se ha actualizado el perfil')); $this->redirect(array('modificar', 'id' => $usuario->id)); } } $this->render('modificar', array( 'model' => $usuario, )); } /** * 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) { $model = Usuario::model()->findByPk($id); if ($model === null) throw new CHttpException(404, Yii::t('profind', 'La página solicitada no existe.')); return $model; } /** * Performs the AJAX validation. * @param CModel the model to be validated */ protected function performAjaxValidation($model) { if (isset($_POST['ajax']) && $_POST['ajax'] === 'usuario-form') { echo CActiveForm::validate($model); Yii::app()->end(); } } }