This repository has been archived on 2024-12-01. You can view files and clone it, but cannot push or open issues or pull requests.
factuges_web/www/protected/modules/yii-user-master/controllers/ProfileController.php

105 lines
2.7 KiB
PHP
Raw Normal View History

<?php
class ProfileController extends Controller
{
public $defaultAction = 'profile';
public $layout='//layouts/column2';
/**
* @var CActiveRecord the currently loaded data model instance.
*/
private $_model;
/**
* Shows a particular model.
*/
public function actionProfile()
{
$model = $this->loadUser();
$this->render('profile',array(
'model'=>$model,
'profile'=>$model->profile,
));
}
/**
* Updates a particular model.
* If update is successful, the browser will be redirected to the 'view' page.
*/
public function actionEdit()
{
$model = $this->loadUser();
$profile=$model->profile;
// ajax validator
if(isset($_POST['ajax']) && $_POST['ajax']==='profile-form')
{
echo UActiveForm::validate(array($model,$profile));
Yii::app()->end();
}
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
$profile->attributes=$_POST['Profile'];
if($model->validate()&&$profile->validate()) {
$model->save();
$profile->save();
Yii::app()->user->setFlash('profileMessage',UserModule::t("Changes is saved."));
$this->redirect(array('/user/profile'));
} else $profile->validate();
}
$this->render('edit',array(
'model'=>$model,
'profile'=>$profile,
));
}
/**
* Change password
*/
public function actionChangepassword() {
$model = new UserChangePassword;
if (Yii::app()->user->id) {
// ajax validator
if(isset($_POST['ajax']) && $_POST['ajax']==='changepassword-form')
{
echo UActiveForm::validate($model);
Yii::app()->end();
}
if(isset($_POST['UserChangePassword'])) {
$model->attributes=$_POST['UserChangePassword'];
if($model->validate()) {
$new_password = User::model()->notsafe()->findbyPk(Yii::app()->user->id);
$new_password->password = UserModule::encrypting($model->password);
$new_password->activkey=UserModule::encrypting(microtime().$model->password);
$new_password->save();
Yii::app()->user->setFlash('profileMessage',UserModule::t("New password is saved."));
$this->redirect(array("profile"));
}
}
$this->render('changepassword',array('model'=>$model));
}
}
/**
* 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 primary key value. Defaults to null, meaning using the 'id' GET variable
*/
public function loadUser()
{
if($this->_model===null)
{
if(Yii::app()->user->id)
$this->_model=Yii::app()->controller->module->user();
if($this->_model===null)
$this->redirect(Yii::app()->controller->module->loginUrl);
}
return $this->_model;
}
}