63 lines
1.9 KiB
PHP
63 lines
1.9 KiB
PHP
<?php
|
|
namespace admin\controllers\system;
|
|
use admin\models\Menu;
|
|
use common\core\BaseAdminController;
|
|
use common\helpers\ArrayHelper;
|
|
use common\models\oldDb\Role;
|
|
use common\modelsgii\oldDb\RoleMenu;
|
|
|
|
class RoleController extends BaseAdminController {
|
|
|
|
public $modelClass = Role::class;
|
|
|
|
public function actionList()
|
|
{
|
|
$roles = Role::find()->asArray()->all();
|
|
return $roles;
|
|
}
|
|
public function actionSaveUserMenu(){
|
|
$params = $this->requestValidate($this->post(),[
|
|
['role_id','required'],
|
|
['role_id','integer'],
|
|
['ids','required']
|
|
]);
|
|
if(is_array($params->ids)){
|
|
$insert = [];
|
|
foreach ($params->ids as $id){
|
|
$insert[] = [
|
|
'role_id'=>$params->role_id,
|
|
'menuUrl'=>$id,
|
|
'created_at'=>time(),
|
|
'updated_at'=>time()
|
|
];
|
|
}
|
|
RoleMenu::deleteAll(['role_id'=>$params->role_id]);
|
|
RoleMenu::getDb()->createCommand()->batchInsert(RoleMenu::tableName(),array_keys($insert[0]),$insert)->execute();
|
|
|
|
}
|
|
return [];
|
|
}
|
|
|
|
public function actionMenuByRoleId(){
|
|
$params = $this->requestValidate($this->post(),[
|
|
['roleId','required'],
|
|
]);
|
|
$roleMenus = RoleMenu::findAll(['role_id' => $params->roleId]);
|
|
$keys = ArrayHelper::getColumn($roleMenus,'menuUrl');
|
|
$menus = Menu::find()->asArray()->all();
|
|
return[
|
|
'menus'=>ArrayHelper::itemsMerge($menus,0,'menuUrl','parentPath','children'),
|
|
'checked'=>$keys
|
|
];
|
|
|
|
|
|
}
|
|
public function actionDel(){
|
|
$menuUrl = $this->post('menuUrl');
|
|
$model = Menu::findOne($menuUrl);
|
|
if($model->delete()){
|
|
Menu::updateAll(['parentPath'=>''],['parentPath'=>$menuUrl]);
|
|
}
|
|
return [];
|
|
}
|
|
} |