...
|
...
|
@@ -25,10 +25,11 @@ class AdminController extends BaseController |
|
|
public function actionList()
|
|
|
{
|
|
|
if (Yii::$app->request->isPost){
|
|
|
$posts = Yii::$app->request->post();
|
|
|
$model = new Admin;
|
|
|
$model->username = Yii::$app->request->post('username');
|
|
|
$model->email = Yii::$app->request->post('email');
|
|
|
$model->setPassword(Yii::$app->request->post('password'));
|
|
|
$model->username = $posts['username'];
|
|
|
$model->email = $posts['email'];
|
|
|
$model->setPassword($posts['password']);
|
|
|
$model->generateAuthKey();
|
|
|
$model->generatePasswordResetToken();
|
|
|
|
...
|
...
|
@@ -98,7 +99,7 @@ class AdminController extends BaseController |
|
|
|
|
|
$list = $this->authManager->getPermissions();
|
|
|
|
|
|
return $this->render('permissions',[
|
|
|
return $this->render('permission',[
|
|
|
'list'=>$list,
|
|
|
]);
|
|
|
}
|
...
|
...
|
@@ -119,10 +120,12 @@ class AdminController extends BaseController |
|
|
$authManager = $this->authManager;
|
|
|
switch (true){
|
|
|
case $target == 'user' && $type == 'disable':
|
|
|
$r = true;
|
|
|
$model = Admin::findOne(Yii::$app->getRequest()->getQueryParam('id'));
|
|
|
$r = $model->load(['status'=>Admin::STATUS_DELETED],'') && $model->save();
|
|
|
break;
|
|
|
case $target == 'user' && $type == 'enable':
|
|
|
$r = true;
|
|
|
$model = Admin::findOne(Yii::$app->getRequest()->getQueryParam('id'));
|
|
|
$r = $model->load(['status'=>Admin::STATUS_ACTIVE],'') && $model->save();
|
|
|
break;
|
|
|
case $target == 'user' && $type == 'del':
|
|
|
$r = Admin::findOne(Yii::$app->getRequest()->getQueryParam('id'))->delete();
|
...
|
...
|
@@ -146,10 +149,48 @@ class AdminController extends BaseController |
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 用户组配置
|
|
|
* @return type
|
|
|
*/
|
|
|
public function actionAssignrole()
|
|
|
{
|
|
|
if (!$user_id = Yii::$app->getRequest()->getQueryParam('id')){
|
|
|
return $this->redirect($this->_refer);
|
|
|
}
|
|
|
if (!$user = Admin::findOne($user_id)){
|
|
|
return $this->redirect($this->_refer);
|
|
|
}
|
|
|
|
|
|
$auth = $this->authManager;
|
|
|
$allRoles = $auth->getRoles();
|
|
|
|
|
|
if (Yii::$app->request->isPost){
|
|
|
$roles = Yii::$app->request->post('roles',[]);
|
|
|
$auth->revokeAll($user_id);
|
|
|
foreach ($roles as $roleName){
|
|
|
if (empty($allRoles[$roleName])){
|
|
|
continue;
|
|
|
}
|
|
|
$role = $allRoles[$roleName];
|
|
|
$auth->assign($role,$user_id);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$userRoles = $auth->getRolesByUser($user->getId());
|
|
|
//var_dump($allRoles,$userRoles);
|
|
|
|
|
|
return $this->render('assignrole',[
|
|
|
'user'=>$user,
|
|
|
'allRoles'=>$allRoles,
|
|
|
'userRoles'=>$userRoles,
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 权限配置
|
|
|
* @return type
|
|
|
*/
|
|
|
public function actionAssignment()
|
|
|
public function actionAssignpermission()
|
|
|
{
|
|
|
if (!$name = Yii::$app->getRequest()->get('name')){
|
|
|
return $this->redirect($this->_refer);
|
...
|
...
|
@@ -158,14 +199,11 @@ class AdminController extends BaseController |
|
|
$auth = $this->authManager;
|
|
|
$role = $auth->getRole($name);
|
|
|
$allPermissions = $auth->getPermissions();
|
|
|
$rolePermissions = $auth->getPermissionsByRole($name);
|
|
|
|
|
|
if (Yii::$app->request->isPost){
|
|
|
$permissions = Yii::$app->request->post('permissions');
|
|
|
$permissions = Yii::$app->request->post('permissions',[]);
|
|
|
$auth->removeChildren($role);
|
|
|
foreach ($permissions as $permissionName){
|
|
|
if (!empty($rolePermissions[$permissionName])){
|
|
|
continue;
|
|
|
}
|
|
|
if (empty($allPermissions[$permissionName])){
|
|
|
continue;
|
|
|
}
|
...
|
...
|
@@ -177,10 +215,120 @@ class AdminController extends BaseController |
|
|
$rolePermissions = $auth->getPermissionsByRole($name);
|
|
|
//var_dump($allPermissions,$rolePermissions);
|
|
|
|
|
|
return $this->render('assignment',[
|
|
|
return $this->render('assignpermission',[
|
|
|
'role'=>$role,
|
|
|
'allPermissions'=>$allPermissions,
|
|
|
'rolePermissions'=>$rolePermissions,
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 编辑用户
|
|
|
* @return type
|
|
|
*/
|
|
|
public function actionAdminedit()
|
|
|
{
|
|
|
if (!$id = Yii::$app->getRequest()->getQueryParam('id')){
|
|
|
return $this->redirect($this->_refer);
|
|
|
}
|
|
|
|
|
|
$model = Admin::findOne($id);
|
|
|
if (!$model){
|
|
|
Yii::$app->session->setFlash('error', '找不到该用户');
|
|
|
return $this->redirect($this->_refer);
|
|
|
}
|
|
|
|
|
|
if(Yii::$app->request->isPost){
|
|
|
$posts = Yii::$app->request->post();
|
|
|
$model->username = $posts['username'];
|
|
|
$model->email = $posts['email'];
|
|
|
if (!empty($posts['password'])){
|
|
|
$model->setPassword($posts['password']);
|
|
|
$model->generateAuthKey();
|
|
|
$model->generatePasswordResetToken();
|
|
|
}
|
|
|
|
|
|
if($model->save()){
|
|
|
if (!empty($posts['password'])){
|
|
|
Yii::$app->session->setFlash('success', '密码修改成功。');
|
|
|
}
|
|
|
Yii::$app->session->setFlash('success', '编辑成功。');
|
|
|
}else{
|
|
|
Yii::$app->session->setFlash('warning', current($model->getFirstErrors()));
|
|
|
}
|
|
|
return $this->refresh();
|
|
|
}
|
|
|
|
|
|
return $this->render('adminedit',[
|
|
|
'model'=>$model,
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 编辑用户组
|
|
|
* @return type
|
|
|
*/
|
|
|
public function actionRoleedit()
|
|
|
{
|
|
|
if (!$name = Yii::$app->getRequest()->get('name')){
|
|
|
return $this->redirect($this->_refer);
|
|
|
}
|
|
|
|
|
|
$model = $this->authManager->getRole($name);
|
|
|
if (!$model){
|
|
|
Yii::$app->session->setFlash('error', '找不到该用户组');
|
|
|
return $this->redirect($this->_refer);
|
|
|
}
|
|
|
|
|
|
if(Yii::$app->request->isPost){
|
|
|
$posts = Yii::$app->request->post();
|
|
|
$model->name = $posts['name'];
|
|
|
$model->description = $posts['description'];
|
|
|
|
|
|
if($this->authManager->update($name,$model)){
|
|
|
Yii::$app->session->setFlash('success', '编辑成功。');
|
|
|
}else{
|
|
|
Yii::$app->session->setFlash('warning', current($model->getFirstErrors()));
|
|
|
}
|
|
|
return $this->refresh();
|
|
|
}
|
|
|
|
|
|
return $this->render('roleedit',[
|
|
|
'model'=>$model,
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 编辑菜单权限
|
|
|
* @return type
|
|
|
*/
|
|
|
public function actionPermissionedit()
|
|
|
{
|
|
|
if (!$name = Yii::$app->getRequest()->get('name')){
|
|
|
return $this->redirect($this->_refer);
|
|
|
}
|
|
|
|
|
|
$model = $this->authManager->getPermission($name);
|
|
|
if (!$model){
|
|
|
Yii::$app->session->setFlash('error', '找不到该用户组');
|
|
|
return $this->redirect($this->_refer);
|
|
|
}
|
|
|
|
|
|
if(Yii::$app->request->isPost){
|
|
|
$posts = Yii::$app->request->post();
|
|
|
$model->name = $posts['name'];
|
|
|
$model->description = $posts['description'];
|
|
|
|
|
|
if($this->authManager->update($name,$model)){
|
|
|
Yii::$app->session->setFlash('success', '编辑成功。');
|
|
|
}else{
|
|
|
Yii::$app->session->setFlash('warning', current($model->getFirstErrors()));
|
|
|
}
|
|
|
return $this->refresh();
|
|
|
}
|
|
|
|
|
|
return $this->render('permissionedit',[
|
|
|
'model'=>$model,
|
|
|
]);
|
|
|
}
|
|
|
} |
...
|
...
|
|