mirror of
https://github.com/chatopera/cosin.git
synced 2025-07-16 00:22:22 +08:00
#532 select role when create user
This commit is contained in:
parent
507346a313
commit
1c68add527
@ -16,17 +16,32 @@
|
||||
*/
|
||||
package com.chatopera.cc.controller.admin;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import com.chatopera.cc.basic.Constants;
|
||||
import com.chatopera.cc.basic.MainContext;
|
||||
import com.chatopera.cc.controller.Handler;
|
||||
import com.chatopera.cc.model.Organ;
|
||||
import com.chatopera.cc.model.OrganUser;
|
||||
import com.chatopera.cc.model.Role;
|
||||
import com.chatopera.cc.model.User;
|
||||
import com.chatopera.cc.model.UserRole;
|
||||
import com.chatopera.cc.persistence.repository.*;
|
||||
import com.chatopera.cc.persistence.repository.ExtensionRepository;
|
||||
import com.chatopera.cc.persistence.repository.OrganUserRepository;
|
||||
import com.chatopera.cc.persistence.repository.PbxHostRepository;
|
||||
import com.chatopera.cc.persistence.repository.RoleRepository;
|
||||
import com.chatopera.cc.persistence.repository.UserRepository;
|
||||
import com.chatopera.cc.persistence.repository.UserRoleRepository;
|
||||
import com.chatopera.cc.proxy.OrganProxy;
|
||||
import com.chatopera.cc.proxy.UserProxy;
|
||||
import com.chatopera.cc.util.Menu;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -37,13 +52,6 @@ import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author 程序猿DD
|
||||
* @version 1.0.0
|
||||
@ -60,6 +68,9 @@ public class UsersController extends Handler {
|
||||
@Autowired
|
||||
private UserRoleRepository userRoleRes;
|
||||
|
||||
@Autowired
|
||||
private RoleRepository roleRes;
|
||||
|
||||
@Autowired
|
||||
OrganProxy organProxy;
|
||||
|
||||
@ -77,6 +88,7 @@ public class UsersController extends Handler {
|
||||
|
||||
/**
|
||||
* 只返回根用户:只属于该部门的非下级部门的用户
|
||||
*
|
||||
* @param map
|
||||
* @param request
|
||||
* @return
|
||||
@ -94,9 +106,7 @@ public class UsersController extends Handler {
|
||||
super.getP(request),
|
||||
super.getPs(request),
|
||||
Sort.Direction.ASC,
|
||||
"createtime"
|
||||
)));
|
||||
|
||||
"createtime")));
|
||||
|
||||
return request(super.createView("/admin/user/index"));
|
||||
}
|
||||
@ -107,8 +117,10 @@ public class UsersController extends Handler {
|
||||
ModelAndView view = request(super.createView("/admin/user/add"));
|
||||
Organ currentOrgan = super.getOrgan(request);
|
||||
Map<String, Organ> organs = organProxy.findAllOrganByParentAndOrgi(currentOrgan, super.getOrgi(request));
|
||||
List<Role> sysRoles = roleRes.findByOrgi(super.getOrgi(request));
|
||||
map.addAttribute("currentOrgan", currentOrgan);
|
||||
map.addAttribute("organList", organs.values());
|
||||
map.addAttribute("sysRoles", sysRoles);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
@ -16,15 +16,28 @@
|
||||
*/
|
||||
package com.chatopera.cc.controller.api;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import com.chatopera.cc.basic.Constants;
|
||||
import com.chatopera.cc.basic.MainContext;
|
||||
import com.chatopera.cc.basic.MainUtils;
|
||||
import com.chatopera.cc.cache.Cache;
|
||||
import com.chatopera.cc.controller.Handler;
|
||||
import com.chatopera.cc.controller.api.request.RestUtils;
|
||||
import com.chatopera.cc.model.*;
|
||||
import com.chatopera.cc.model.AgentStatus;
|
||||
import com.chatopera.cc.model.Organ;
|
||||
import com.chatopera.cc.model.OrganUser;
|
||||
import com.chatopera.cc.model.Role;
|
||||
import com.chatopera.cc.model.User;
|
||||
import com.chatopera.cc.model.UserRole;
|
||||
import com.chatopera.cc.persistence.repository.OrganRepository;
|
||||
import com.chatopera.cc.persistence.repository.OrganUserRepository;
|
||||
import com.chatopera.cc.persistence.repository.RoleRepository;
|
||||
import com.chatopera.cc.persistence.repository.UserRepository;
|
||||
import com.chatopera.cc.persistence.repository.UserRoleRepository;
|
||||
import com.chatopera.cc.proxy.UserProxy;
|
||||
@ -34,6 +47,7 @@ import com.chatopera.cc.util.RestResultType;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -48,13 +62,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/user")
|
||||
public class ApiUserController extends Handler {
|
||||
@ -75,6 +82,9 @@ public class ApiUserController extends Handler {
|
||||
@Autowired
|
||||
private OrganRepository organRes;
|
||||
|
||||
@Autowired
|
||||
private RoleRepository roleRes;
|
||||
|
||||
@Autowired
|
||||
private UserRoleRepository userRoleRes;
|
||||
|
||||
@ -116,9 +126,11 @@ public class ApiUserController extends Handler {
|
||||
*/
|
||||
@RequestMapping(method = RequestMethod.POST)
|
||||
@Menu(type = "apps", subtype = "user", access = true)
|
||||
public ResponseEntity<String> operations(HttpServletRequest request, @RequestBody final String body, @Valid String q) {
|
||||
public ResponseEntity<String> operations(HttpServletRequest request, @RequestBody final String body,
|
||||
@Valid String q) {
|
||||
logger.info("[operations] body {}, q {}", body, q);
|
||||
final JsonObject j = StringUtils.isBlank(body) ? (new JsonObject()) : (new JsonParser()).parse(
|
||||
final JsonObject j = StringUtils.isBlank(body) ? (new JsonObject())
|
||||
: (new JsonParser()).parse(
|
||||
body).getAsJsonObject();
|
||||
JsonObject json = new JsonObject();
|
||||
HttpHeaders headers = RestUtils.header();
|
||||
@ -149,7 +161,6 @@ public class ApiUserController extends Handler {
|
||||
return new ResponseEntity<String>(json.toString(), headers, HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 创建新用户
|
||||
*
|
||||
@ -165,11 +176,25 @@ public class ApiUserController extends Handler {
|
||||
parentOrgan = organRes.getOne(parent);
|
||||
}
|
||||
|
||||
String roleId = payload.get("role").getAsString();
|
||||
|
||||
// 创建新用户时,阻止传入ID
|
||||
payload.remove("id");
|
||||
// 从payload中创建User
|
||||
User user = userProxy.parseUserFromJson(payload);
|
||||
JsonObject resp = userProxy.createNewUser(user, parentOrgan);
|
||||
|
||||
if (StringUtils.isNotEmpty(roleId)) {
|
||||
Role role = roleRes.getOne(roleId);
|
||||
UserRole userRole = new UserRole();
|
||||
userRole.setUser(user);
|
||||
userRole.setRole(role);
|
||||
userRole.setOrgi(Constants.SYSTEM_ORGI);
|
||||
userRole.setCreater(super.getUser(request).getId());
|
||||
userRole.setOrgan(parentOrgan.getId());
|
||||
userRoleRes.save(userRole);
|
||||
}
|
||||
|
||||
logger.info("[create] response {}", resp.toString());
|
||||
return resp;
|
||||
}
|
||||
|
@ -32,6 +32,14 @@
|
||||
i.layui-icon(style='position: absolute;right: 3px;top: 6px;font-size: 25px;${systemConfig.color!\'color:#0096C4;\'}', onclick='showMenu()')
|
||||
#menuContent.ukefu-ztree(style='display:none; position: absolute;z-index:10000;width: 218px;')
|
||||
ul#organTree.ztree(style='width:208px;')
|
||||
.layui-form-item
|
||||
label.layui-form-label 角色:
|
||||
.layui-input-inline
|
||||
.layui-input-inline(style='width:218px;margin:0px;')
|
||||
select(name='role', required, lay-verify='required')
|
||||
option
|
||||
for r in sysRoles
|
||||
option(value=r.id)= r.name
|
||||
.layui-form-item
|
||||
label.layui-form-label 管理员:
|
||||
.layui-input-inline
|
||||
|
@ -6,7 +6,7 @@ block content
|
||||
h1.site-h1(style='background-color:#FFFFFF;')
|
||||
| #{currentOrgan.name}根用户列表 (#{userList.totalElements?userList.totalElements:0})
|
||||
span(style='float:right')
|
||||
button.layui-btn.layui-btn-small.green(href='/admin/user/add.html', data-toggle='ajax', data-width='750', data-height='540', data-title='创建新用户')
|
||||
button.layui-btn.layui-btn-small.green(href='/admin/user/add.html', data-toggle='ajax', data-width='750', data-height='600', data-title='创建新用户')
|
||||
| 创建新用户
|
||||
.row(style='padding:5px;')
|
||||
blockquote.layui-elem-quote.layui-quote-nm
|
||||
|
Loading…
x
Reference in New Issue
Block a user