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;
|
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.Constants;
|
||||||
import com.chatopera.cc.basic.MainContext;
|
import com.chatopera.cc.basic.MainContext;
|
||||||
import com.chatopera.cc.controller.Handler;
|
import com.chatopera.cc.controller.Handler;
|
||||||
import com.chatopera.cc.model.Organ;
|
import com.chatopera.cc.model.Organ;
|
||||||
import com.chatopera.cc.model.OrganUser;
|
import com.chatopera.cc.model.OrganUser;
|
||||||
|
import com.chatopera.cc.model.Role;
|
||||||
import com.chatopera.cc.model.User;
|
import com.chatopera.cc.model.User;
|
||||||
import com.chatopera.cc.model.UserRole;
|
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.OrganProxy;
|
||||||
import com.chatopera.cc.proxy.UserProxy;
|
import com.chatopera.cc.proxy.UserProxy;
|
||||||
import com.chatopera.cc.util.Menu;
|
import com.chatopera.cc.util.Menu;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
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
|
* @author 程序猿DD
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
@ -60,6 +68,9 @@ public class UsersController extends Handler {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserRoleRepository userRoleRes;
|
private UserRoleRepository userRoleRes;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RoleRepository roleRes;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
OrganProxy organProxy;
|
OrganProxy organProxy;
|
||||||
|
|
||||||
@ -77,6 +88,7 @@ public class UsersController extends Handler {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 只返回根用户:只属于该部门的非下级部门的用户
|
* 只返回根用户:只属于该部门的非下级部门的用户
|
||||||
|
*
|
||||||
* @param map
|
* @param map
|
||||||
* @param request
|
* @param request
|
||||||
* @return
|
* @return
|
||||||
@ -94,9 +106,7 @@ public class UsersController extends Handler {
|
|||||||
super.getP(request),
|
super.getP(request),
|
||||||
super.getPs(request),
|
super.getPs(request),
|
||||||
Sort.Direction.ASC,
|
Sort.Direction.ASC,
|
||||||
"createtime"
|
"createtime")));
|
||||||
)));
|
|
||||||
|
|
||||||
|
|
||||||
return request(super.createView("/admin/user/index"));
|
return request(super.createView("/admin/user/index"));
|
||||||
}
|
}
|
||||||
@ -107,8 +117,10 @@ public class UsersController extends Handler {
|
|||||||
ModelAndView view = request(super.createView("/admin/user/add"));
|
ModelAndView view = request(super.createView("/admin/user/add"));
|
||||||
Organ currentOrgan = super.getOrgan(request);
|
Organ currentOrgan = super.getOrgan(request);
|
||||||
Map<String, Organ> organs = organProxy.findAllOrganByParentAndOrgi(currentOrgan, super.getOrgi(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("currentOrgan", currentOrgan);
|
||||||
map.addAttribute("organList", organs.values());
|
map.addAttribute("organList", organs.values());
|
||||||
|
map.addAttribute("sysRoles", sysRoles);
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -16,15 +16,28 @@
|
|||||||
*/
|
*/
|
||||||
package com.chatopera.cc.controller.api;
|
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.Constants;
|
||||||
import com.chatopera.cc.basic.MainContext;
|
import com.chatopera.cc.basic.MainContext;
|
||||||
import com.chatopera.cc.basic.MainUtils;
|
import com.chatopera.cc.basic.MainUtils;
|
||||||
import com.chatopera.cc.cache.Cache;
|
import com.chatopera.cc.cache.Cache;
|
||||||
import com.chatopera.cc.controller.Handler;
|
import com.chatopera.cc.controller.Handler;
|
||||||
import com.chatopera.cc.controller.api.request.RestUtils;
|
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.OrganRepository;
|
||||||
import com.chatopera.cc.persistence.repository.OrganUserRepository;
|
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.UserRepository;
|
||||||
import com.chatopera.cc.persistence.repository.UserRoleRepository;
|
import com.chatopera.cc.persistence.repository.UserRoleRepository;
|
||||||
import com.chatopera.cc.proxy.UserProxy;
|
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.JsonArray;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
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.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
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
|
@RestController
|
||||||
@RequestMapping("/api/user")
|
@RequestMapping("/api/user")
|
||||||
public class ApiUserController extends Handler {
|
public class ApiUserController extends Handler {
|
||||||
@ -75,6 +82,9 @@ public class ApiUserController extends Handler {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private OrganRepository organRes;
|
private OrganRepository organRes;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RoleRepository roleRes;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserRoleRepository userRoleRes;
|
private UserRoleRepository userRoleRes;
|
||||||
|
|
||||||
@ -116,10 +126,12 @@ public class ApiUserController extends Handler {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping(method = RequestMethod.POST)
|
@RequestMapping(method = RequestMethod.POST)
|
||||||
@Menu(type = "apps", subtype = "user", access = true)
|
@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);
|
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())
|
||||||
body).getAsJsonObject();
|
: (new JsonParser()).parse(
|
||||||
|
body).getAsJsonObject();
|
||||||
JsonObject json = new JsonObject();
|
JsonObject json = new JsonObject();
|
||||||
HttpHeaders headers = RestUtils.header();
|
HttpHeaders headers = RestUtils.header();
|
||||||
|
|
||||||
@ -149,7 +161,6 @@ public class ApiUserController extends Handler {
|
|||||||
return new ResponseEntity<String>(json.toString(), headers, HttpStatus.OK);
|
return new ResponseEntity<String>(json.toString(), headers, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建新用户
|
* 创建新用户
|
||||||
*
|
*
|
||||||
@ -165,11 +176,25 @@ public class ApiUserController extends Handler {
|
|||||||
parentOrgan = organRes.getOne(parent);
|
parentOrgan = organRes.getOne(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String roleId = payload.get("role").getAsString();
|
||||||
|
|
||||||
// 创建新用户时,阻止传入ID
|
// 创建新用户时,阻止传入ID
|
||||||
payload.remove("id");
|
payload.remove("id");
|
||||||
// 从payload中创建User
|
// 从payload中创建User
|
||||||
User user = userProxy.parseUserFromJson(payload);
|
User user = userProxy.parseUserFromJson(payload);
|
||||||
JsonObject resp = userProxy.createNewUser(user, parentOrgan);
|
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());
|
logger.info("[create] response {}", resp.toString());
|
||||||
return resp;
|
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()')
|
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;')
|
#menuContent.ukefu-ztree(style='display:none; position: absolute;z-index:10000;width: 218px;')
|
||||||
ul#organTree.ztree(style='width:208px;')
|
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
|
.layui-form-item
|
||||||
label.layui-form-label 管理员:
|
label.layui-form-label 管理员:
|
||||||
.layui-input-inline
|
.layui-input-inline
|
||||||
|
@ -6,7 +6,7 @@ block content
|
|||||||
h1.site-h1(style='background-color:#FFFFFF;')
|
h1.site-h1(style='background-color:#FFFFFF;')
|
||||||
| #{currentOrgan.name}根用户列表 (#{userList.totalElements?userList.totalElements:0})
|
| #{currentOrgan.name}根用户列表 (#{userList.totalElements?userList.totalElements:0})
|
||||||
span(style='float:right')
|
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;')
|
.row(style='padding:5px;')
|
||||||
blockquote.layui-elem-quote.layui-quote-nm
|
blockquote.layui-elem-quote.layui-quote-nm
|
||||||
|
Loading…
x
Reference in New Issue
Block a user