Yii::$app->params["time"])
$this->redirect(["/dashboard"]);
if (Yii::$app->user->isGuest)
return $this->redirect(['/site/login']);
}
/**
* {@inheritdoc}
*/
public function behaviors() {
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
];
}
public function actionIndex() {
if (!Yii::$app->user->can('administrator'))
throw new \yii\web\HttpException(403, 'Bạn không có quyền truy cập nội dung này');
$this->view->title = 'Người dùng';
$searchModel = new UserSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider
]);
}
public function actionCreate() {
Yii::$app->response->format = 'json';
if (!Yii::$app->user->can('administrator'))
return ['title' => '403', 'form' => Yii::t('app', 'Bạn không có quyền truy cập!')];
$model = new User();
if (Yii::$app->request->post()) {
$post = Yii::$app->request->post();
$check = User::findOne(['username' => $post['Username']]);
if ($check)
return ['stt' => false, 'reason' => 'username'];
$user_id = $model->create($post);
$auth = Yii::$app->authManager;
foreach ($post['Role'] as $key => $value) {
$role = $auth->getRole($value);
if ($role != null) {
$auth->assign($role, $user_id);
}
}
return ['stt' => true];
} else {
return [
'title' => " " . Yii::t('app', 'Tạo người dùng mới'),
'form' => $this->renderPartial('form', [
'model' => $model,
'roles' => AuthItem::roleArray(),
'url' => Url::to(['create'])
])
];
}
}
public function actionUpdate($id) {
Yii::$app->response->format = 'json';
if (!Yii::$app->user->can('administrator'))
return ['title' => '403', 'form' => Yii::t('app', 'Bạn không có quyền truy cập!')];
$model = $this->findModel($id);
if (Yii::$app->request->post()) {
$post = Yii::$app->request->post();
if ($post['Username'] !== $model->username) {
$check = User::findOne(['username' => $post['Username']]);
if ($check)
return ['stt' => false, 'reason' => 'username'];
}
if ($post['Password'] !== '')
$model->password = md5($post['Password']);
$model->first_name = $post['Name'];
$model->username = $post['Username'];
$model->phone_number = $post['PhoneNumber'];
$model->email = $post['Email'];
$model->save();
AuthAssignment::deleteAll(['user_id' => $id]);
$auth = Yii::$app->authManager;
foreach ($post['Role'] as $key => $value) {
$role = $auth->getRole($value);
if ($role != null) {
$auth->assign($role, $id);
}
}
return ['stt' => true];
} else {
return [
'title' => " " . Yii::t('app', 'Sửa thông tin người dùng'),
'form' => $this->renderPartial('form', [
'model' => $model,
'roles' => AuthItem::roleArray(),
'url' => Url::to(['update', 'id' => $id])
])
];
}
}
public function actionDelete($id) {
if (!Yii::$app->user->can('administrator'))
throw new \yii\web\HttpException(403, 'Bạn không có quyền truy cập nội dung này');
$this->findModel($id)->delete();
AuthAssignment::deleteAll(['user_id' => $id]);
return $this->redirect(['index']);
}
protected function findModel($id) {
if (($model = User::findOne($id)) !== null) {
return $model;
}
throw new NotFoundHttpException('The requested page does not exist.');
}
public function actionProfiles() {
$model = $this->findModel(Yii::$app->user->id);
if (Yii::$app->request->post()) {
$post = Yii::$app->request->post();
$model->first_name = $post['Name'];
$model->phone_number = $post['PhoneNumber'];
$model->email = $post['Email'];
return $model->save();
} else {
$this->view->title = Yii::t('app', 'Thông tin cá nhân');
$this->view->params['breadcrumbs'][] = $this->view->title;
return $this->render('profiles', [
"model" => $model
]);
}
}
public function actionChangePassword() {
$model = $this->findModel(Yii::$app->user->id);
if (Yii::$app->request->post()) {
$post = Yii::$app->request->post();
$model->password = md5($post['NewPassword']);
$model->save();
return true;
} else {
$this->view->title = Yii::t('app', 'Đổi mật khẩu');
$this->view->params['breadcrumbs'][] = $this->view->title;
return $this->render('password', [
'model' => $model
]);
}
}
}