model = model('User'); $this->assignconfig("admin", ['id' => $this->auth->id]); } public function del($ids = null) { if ($ids) { $ids = explode(',', $ids); ProjectCompanyUser::where('user_id', 'in', $ids)->delete(); } $this->success(); } public function index() { //设置过滤方法 $this->request->filter(['strip_tags', 'trim']); if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('keyField')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $list = $this->model->with('authGroup'); //非超级管理员获取企业账号的所有企业用户 if (!$this->auth->isSuperAdmin()) { //获取当前企企业账号所有关联账号 $user_ids = ProjectCompanyUser::getUserIds($this->auth->company_id); $list = $list->where('user.id', 'in', $user_ids); } $list = $list ->where($where) ->order($sort, $order) ->paginate($limit); foreach ($list as $k => $v) { $v->avatar = $v->avatar ? cdnurl($v->avatar, true) : letter_avatar($v->nickname); $v->hidden(['password', 'salt']); //查询用户角色ID // $group_id = AuthGroupAccess::where('uid', $v['id'])->value('group_id'); $list[$k]['role_name'] = AuthGroup::get($v['group_id'])->name ?? ''; } //不展示超级管理员 $result = array("total" => $list->total(), "rows" => $list->items()); return json($result); } return $this->view->fetch(); } /** * 编辑 */ public function edit($ids = null) { $row = $this->model->get($ids); $is_admin = $this->auth->isSuperAdmin(); // $auth_group_access = new AuthGroupAccess(); if ($this->request->isPost()) { $company_id = $this->request->post('company_id'); $group_id = $this->request->post("group_id"); $company_id = $this->auth->company_id; if ($is_admin) { $company_id = $this->request->post('company_id'); } // var_dump($company_id);exit(); $auth_group = AuthGroup::get($group_id); if ($group_id) { if ($row) { //更新权限组 // AuthGroupAccess::where(['uid' => $row['id'], 'group_id' => $row['group_id']])->update(['group_id' => $group_id]); $result = $row->allowField(true)->save(['group_id' => $group_id]); //更新企业用户角色 $company_user = ProjectCompanyUser::where(['user_id' => $row['id'], 'company_id' => $company_id])->find(); if ($company_user) { $company_user->role_id = $group_id; $company_user->role_type = $auth_group['type']; $company_user->save(); } else { $company_users = [ 'user_id' => $row['id'], 'company_id' => $company_id, 'role_id' => $group_id, 'role_type' => $auth_group['type'], ]; ProjectCompanyUser::create($company_users); } } if ($result !== false) { $this->success(); } else { $this->error($row->getError()); } } $this->error(); } if (!$row) { $this->error(__('No Results were found')); } //获取当前用户角色所绑定的企业 $company_id = ProjectCompanyUser::where(['user_id' => $row['id'], 'role_id' => $row['group_id']])->value('company_id'); //获取当前企业的所有角色 $this->view->assign('groupList', build_select('group_id', \app\admin\model\AuthGroup::where(['pid'=>['<>',0],'user_type'=>0,'type'=>['<>', 7],'company_id' => $company_id])->column('id,name'), $row['group_id'], ['class' => 'form-control selectpicker'])); $this->view->assign('row', $row); $this->view->assign('is_admin', $is_admin); $this->view->assign('company_id',$company_id); return $this->view->fetch(); } /** * 创建多个企业用户关系 */ public function add(){ $company_id = $this->auth->company_id; $is_admin = $this->auth->isSuperAdmin(); if (!$this->request->isPost()) { //获取所有角色 $groupList = \app\admin\model\AuthGroup::where(['pid'=>['<>',0], 'user_type' => 0,'type'=>['<>', 7], 'company_id' => $company_id])->column('id,name'); $this->view->assign('groupList', build_select('group_id', $groupList, null, ['class' => 'form-control selectpicker'])); //是否企业管理员 $this->view->assign('is_admin', $is_admin); //获取所有用户 // $userList = $this->model->column('id,nickname'); // $this->view->assign('userList', build_select('user_ids[]', [], 1, ['class' => 'form-control selectpage', 'data-multiple'=>"true",'data-source' => 'user/user/index','data-field'=>'nickname'])); return $this->view->fetch(); } $post = $this->request->post('row/a'); $group_id = $this->request->post('group_id'); $user_ids = $post['user_ids']; //超级管理员选择企业ID if ($is_admin) { $company_id = $post['company_id']; } //不是企业管理员不能添加企业用户 // if (!$this->auth->isCompanyAdmin()) { // $this->error('非企业管理员不能添加企业用户'); // } $user_ids = explode(',',$user_ids); //企业管理员不能添加超级管理员 if (in_array(1, $user_ids)) { $this->error('企业管理员不能添加超级管理员'); } $user_ids = array_filter($user_ids); if (!$user_ids) { $this->error('请选择用户'); } $company_users = ProjectCompanyUser::whereIn('user_id', $user_ids)->select()->toArray(); foreach ($company_users as $value) { if ($value['company_id']) { $company_name = \app\admin\model\project\Company::get($value['company_id'])->company_name??''; $username = User::get($value['user_id'])->nickname??''; $this->error($username.'已经是'.$company_name.'企业用户'); } } $company_users = []; $auth_group = AuthGroup::get($group_id); // $auth_group_access = new AuthGroupAccess(); foreach ($user_ids as $user_id) { //添加企业用户包括角色 $company_users[] = [ 'user_id' => $user_id, 'company_id' => $company_id, 'role_id' => $group_id, 'role_type' => $auth_group['type'], ]; $user = $this->model->get($user_id); //更新角色组 // $auth_group_access->where(['uid' => $user['id'], 'group_id' => $user['group_id']])->update(['group_id' => $group_id]); //更新用户角色 $user->group_id = $group_id; $user->save(); } $company_user = new ProjectCompanyUser(); $company_user->saveAll($company_users); $this->success('添加成功'); } }