Files
xk-api-yii/admin/controllers/system/RoleController.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 [];
}
}