| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | <?phpnamespace app\controller\sys;use think\facade\View;use app\model\SysMenu;use app\model\SysUser;use app\model\SysRole as SysRoleModel;use app\utils\ReUtils;use think\facade\Session;class SysRole extends Base{    public function index()    {        $list = SysRoleModel::field('roleid,name,permissions,remark,create_time')->select();        View::assign('list', $list);        return View::fetch();    }    public function save($id = 0)    {        if ($this->app->request->isPost()) {            $params = $this->app->request->param();            if ($params['name'] == '') {                $this->error("目录名不能为空");            }            $permissions = '';            if (!empty($params['perm_check'])) {                $perm_checks = $params['perm_check'];                $permissions = implode(',', $perm_checks);            }            unset($params['perm_check']);            $params['permissions'] = $permissions;            try {                $id = $params['roleid'];                 unset($params['roleid']);                    if ($id != 0) {                    SysRoleModel::update($params, ['roleid' => $id]);                } else {                    SysRoleModel::create($params);                }            } catch (\Exception $e) {                $msg = $e->getMessage();                $this->error("错误提示:".$msg);            }            $this->success('操作成功', 'sys_role/index');        } else {            if ($id != 0) {                $data = SysRoleModel::find($id);                // 已有权限数组                $rolePowers = explode(',', $data->permissions);            } else {                $data = [                    'roleid' => 0,                    'name' => '',                    'permissions' => '',                    'remark' =>''                ];                $rolePowers = [];            }            // var_dump($data);            // exit;            $sysMenu = new sysMenu();            $dataPermission = list_tree($sysMenu->select());            return View::fetch('save', [                'data' => $data,                'rolePowers' => $rolePowers,                'dataPermission' => $dataPermission            ]);        }    }    public function delete($id = null)    {        if ($this->app->request->isAjax()) {            $U_role_id = SysUser::where('userid', Session::get('adminuser.roleid'))->value('roleid');            if (is_array($id)) {                if (in_array('1', $id)) {                    return ReUtils::error("超级管理员无法删除");                }                if (in_array($U_role_id, $id)) {                    return ReUtils::error("当前登录用户角色无法删除");                }            } else {                if ($id == 1) {                    return ReUtils::error("超级管理员无法删除");                }                if ($id == $U_role_id) {                    return ReUtils::error("当前登录用户角色无法删除");                }            }            if (SysRoleModel::destroy($id)) {                return ReUtils::success();            } else {                return ReUtils::error();            }        }    }}
 |