123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace 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();
- }
- }
- }
- }
|