移除RoleUser实体设计,用户角色关系简化为使用User.roles维护(未完成)

This commit is contained in:
datagear 2021-08-20 00:33:32 +08:00
parent 5ce3102295
commit d895357de3
17 changed files with 223 additions and 557 deletions

View File

@ -8,7 +8,6 @@
package org.datagear.management.service;
import java.util.List;
import java.util.Set;
import org.datagear.management.domain.Role;
@ -26,14 +25,6 @@ public interface RoleService extends EntityService<String, Role>
@Override
boolean[] deleteByIds(String[] ids) throws DeleteBuiltinRoleDeniedException;
/**
* 查找指定用户的所有角色集
*
* @param userId
* @return 没有则返回空集合
*/
Set<Role> findByUserId(String userId);
/**
* 获取
*

View File

@ -1,70 +0,0 @@
/*
* Copyright 2018 datagear.tech
*
* Licensed under the LGPLv3 license:
* http://www.gnu.org/licenses/lgpl-3.0.html
*/
package org.datagear.management.service;
import java.util.List;
import org.datagear.management.domain.Role;
import org.datagear.management.domain.RoleUser;
import org.datagear.management.domain.User;
import org.datagear.persistence.PagingData;
import org.datagear.persistence.PagingQuery;
import org.datagear.persistence.Query;
/**
* {@linkplain RoleUser}业务服务接口
*
* @author datagear@163.com
*
*/
public interface RoleUserService extends EntityService<String, RoleUser>
{
/**
* 根据{@linkplain Role}{@linkplain User}获取记录没有找到返回{@code null}
*
* @param role
* @param user
* @return
*/
RoleUser getByRoleAndUser(Role role, User user);
/**
* 是否已存在重复记录
*
* @param role
* @param user
* @return
*/
boolean exists(Role role, User user);
/**
* 添加不重复的记录
*
* @param roleUsers
* @return
*/
boolean[] addIfInexistence(RoleUser... roleUsers);
/**
* 查询
*
* @param role
* @param query
* @return
*/
List<RoleUser> queryForRole(Role role, Query query);
/**
* 查询
*
* @param role
* @param query
* @return
*/
PagingData<RoleUser> pagingQueryForRole(Role role, PagingQuery query);
}

View File

@ -33,6 +33,14 @@ public interface UserService extends EntityService<String, User>
*/
User getByIdNoPassword(String id);
/**
* 更新但是忽略{@linkplain User#getRoles()}
*
* @param user
* @return
*/
boolean updateIgnoreRole(User user);
/**
* 更新用户密码
*

View File

@ -8,10 +8,8 @@
package org.datagear.management.service.impl;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.ibatis.session.SqlSessionFactory;
import org.datagear.management.domain.Role;
@ -45,21 +43,6 @@ public class RoleServiceImpl extends AbstractMybatisEntityService<String, Role>
super(sqlSessionTemplate, dialect);
}
@Override
public Set<Role> findByUserId(String userId)
{
Set<Role> set = new HashSet<>();
Map<String, Object> params = buildParamMap();
params.put("userId", userId);
List<Role> roles = query("findByUserId", params);
set.addAll(roles);
return set;
}
@Override
public List<Role> getByIds(String... ids)
{

View File

@ -1,110 +0,0 @@
/*
* Copyright 2018 datagear.tech
*
* Licensed under the LGPLv3 license:
* http://www.gnu.org/licenses/lgpl-3.0.html
*/
package org.datagear.management.service.impl;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSessionFactory;
import org.datagear.management.domain.Role;
import org.datagear.management.domain.RoleUser;
import org.datagear.management.domain.User;
import org.datagear.management.service.RoleUserService;
import org.datagear.management.util.dialect.MbSqlDialect;
import org.datagear.persistence.PagingData;
import org.datagear.persistence.PagingQuery;
import org.datagear.persistence.Query;
import org.mybatis.spring.SqlSessionTemplate;
/**
* {@linkplain RoleUserService}实现类
*
* @author datagear@163.com
*
*/
public class RoleUserServiceImpl extends AbstractMybatisEntityService<String, RoleUser> implements RoleUserService
{
protected static final String SQL_NAMESPACE = RoleUser.class.getName();
public RoleUserServiceImpl()
{
super();
}
public RoleUserServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect)
{
super(sqlSessionFactory, dialect);
}
public RoleUserServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect)
{
super(sqlSessionTemplate, dialect);
}
@Override
public RoleUser getByRoleAndUser(Role role, User user)
{
Map<String, Object> paramMap = buildParamMap();
paramMap.put("role", role);
paramMap.put("user", user);
return selectOneMybatis("getByRoleAndUser", paramMap);
}
@Override
public boolean exists(Role role, User user)
{
return (getByRoleAndUser(role, user) != null);
}
@Override
public boolean[] addIfInexistence(RoleUser... roleUsers)
{
int length = roleUsers.length;
boolean[] re = new boolean[length];
for (int i = 0; i < roleUsers.length; i++)
{
RoleUser roleUser = roleUsers[i];
if (exists(roleUser.getRole(), roleUser.getUser()))
re[i] = false;
else
{
add(roleUser);
re[i] = true;
}
}
return re;
}
@Override
public List<RoleUser> queryForRole(Role role, Query query)
{
Map<String, Object> param = buildParamMap();
param.put("role", role);
return query("queryForRole", query, param, true);
}
@Override
public PagingData<RoleUser> pagingQueryForRole(Role role, PagingQuery query)
{
Map<String, Object> param = buildParamMap();
param.put("role", role);
return pagingQuery("pagingQueryForRole", query, param, true);
}
@Override
protected String getSqlNamespace()
{
return SQL_NAMESPACE;
}
}

View File

@ -7,16 +7,16 @@
package org.datagear.management.service.impl;
import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.ibatis.session.SqlSessionFactory;
import org.datagear.management.domain.Role;
import org.datagear.management.domain.RoleUser;
import org.datagear.management.domain.User;
import org.datagear.management.service.RoleService;
import org.datagear.management.service.RoleUserService;
import org.datagear.management.service.UserService;
import org.datagear.management.util.dialect.MbSqlDialect;
import org.datagear.util.IDUtil;
@ -32,8 +32,6 @@ public class UserServiceImpl extends AbstractMybatisEntityService<String, User>
{
protected static final String SQL_NAMESPACE = User.class.getName();
private RoleUserService roleUserService;
private RoleService roleService;
private UserPasswordEncoder userPasswordEncoder = null;
@ -43,32 +41,20 @@ public class UserServiceImpl extends AbstractMybatisEntityService<String, User>
super();
}
public UserServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect, RoleUserService roleUserService,
public UserServiceImpl(SqlSessionFactory sqlSessionFactory, MbSqlDialect dialect,
RoleService roleService)
{
super(sqlSessionFactory, dialect);
this.roleUserService = roleUserService;
this.roleService = roleService;
}
public UserServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect, RoleUserService roleUserService,
public UserServiceImpl(SqlSessionTemplate sqlSessionTemplate, MbSqlDialect dialect,
RoleService roleService)
{
super(sqlSessionTemplate, dialect);
this.roleUserService = roleUserService;
this.roleService = roleService;
}
public RoleUserService getRoleUserService()
{
return roleUserService;
}
public void setRoleUserService(RoleUserService roleUserService)
{
this.roleUserService = roleUserService;
}
public RoleService getRoleService()
{
return roleService;
@ -89,66 +75,21 @@ public class UserServiceImpl extends AbstractMybatisEntityService<String, User>
this.userPasswordEncoder = userPasswordEncoder;
}
@Override
protected void add(User entity, Map<String, Object> params)
{
String password = entity.getPassword();
if (password != null && !password.isEmpty() && this.userPasswordEncoder != null)
entity.setPassword(this.userPasswordEncoder.encode(password));
super.add(entity, params);
RoleUser roleUser = new RoleUser(IDUtil.randomIdOnTime20(), new Role(Role.ROLE_REGISTRY, ""), entity);
this.roleUserService.add(roleUser);
Set<Role> roles = entity.getRoles();
if (roles != null && !roles.isEmpty())
{
for (Role role : roles)
{
if (Role.ROLE_REGISTRY.equals(role.getId()))
continue;
RoleUser ru = new RoleUser(IDUtil.randomIdOnTime20(), role, entity);
this.roleUserService.add(ru);
}
}
}
@Override
protected boolean update(User entity, Map<String, Object> params)
{
String password = entity.getPassword();
if (password != null && !password.isEmpty())
{
if (this.userPasswordEncoder != null)
entity.setPassword(this.userPasswordEncoder.encode(password));
}
else
entity.setPassword(null);
return super.update(entity, params);
}
@Override
public User getByName(String name)
{
Map<String, Object> params = buildParamMap();
params.put("name", name);
User user = selectOneMybatis("getByName", params);
postProcessGetNullable(user);
String id = selectOneMybatis("getIdByName", params);
return user;
return getById(id);
}
@Override
public User getByIdNoPassword(String id)
{
User user = super.getById(id);
User user = getById(id);
user.clearPassword();
return user;
@ -164,9 +105,117 @@ public class UserServiceImpl extends AbstractMybatisEntityService<String, User>
params.put("id", id);
params.put("password", newPassword);
cacheEvict(id);
return updateMybatis("updatePasswordById", params) > 0;
}
@Override
public boolean updateIgnoreRole(User user)
{
Map<String, Object> params = buildParamMap();
params.put("ignoreRole", true);
return update(user, params);
}
@Override
protected void add(User entity, Map<String, Object> params)
{
String password = entity.getPassword();
if (password != null && !password.isEmpty() && this.userPasswordEncoder != null)
entity.setPassword(this.userPasswordEncoder.encode(password));
super.add(entity, params);
saveUserRoles(entity);
}
@Override
protected boolean update(User entity, Map<String, Object> params)
{
String password = entity.getPassword();
if (password != null && !password.isEmpty())
{
if (this.userPasswordEncoder != null)
entity.setPassword(this.userPasswordEncoder.encode(password));
}
else
entity.setPassword(null);
boolean updated = super.update(entity, params);
Boolean ignoreRole = (Boolean) params.get("ignoreRole");
if (ignoreRole == null || !ignoreRole.booleanValue())
saveUserRoles(entity);
return updated;
}
@Override
protected boolean deleteById(String id, Map<String, Object> params)
{
boolean deleted = super.deleteById(id, params);
deleteUserRoles(id);
return deleted;
}
protected void saveUserRoles(User user)
{
// TODO 完成用户编辑页面的角色编辑功能后再开启
boolean save = false;
if (save)
{
deleteUserRoles(user.getId());
Set<Role> roles = user.getRoles();
if (roles != null && !roles.isEmpty())
{
Map<String, Object> params = buildParamMap();
for (Role role : roles)
{
RoleUser ru = new RoleUser(IDUtil.randomIdOnTime20(), role.getId(), user.getId());
params.put("entity", ru);
insertMybatis("insertUserRole", params);
}
}
}
}
protected void deleteUserRoles(String userId)
{
Map<String, Object> params = buildParamMap();
params.put("userId", userId);
deleteMybatis("deleteUserRoles", params);
}
@Override
protected User getByIdFromDB(String id, Map<String, Object> params)
{
User user = super.getByIdFromDB(id, params);
Map<String, Object> params1 = buildParamMap();
params1.put("userId", user.getId());
List<String> roleIds = selectListMybatis("getUserRoleIds", params1);
if (roleIds != null && !roleIds.isEmpty())
{
Set<Role> roles = new HashSet<Role>(roleIds.size());
for (String roleId : roleIds)
roles.add(new Role(roleId, roleId));
user.setRoles(roles);
}
return user;
}
@Override
protected void postProcessQuery(List<User> list)
{
@ -178,10 +227,22 @@ public class UserServiceImpl extends AbstractMybatisEntityService<String, User>
@Override
protected User postProcessGet(User obj)
{
Set<Role> roles = this.roleService.findByUserId(obj.getId());
obj.setRoles(roles);
Set<Role> roles = obj.getRoles();
return obj;
if (roles != null && !roles.isEmpty())
{
Set<Role> rolesNew = new HashSet<Role>(roles.size());
for (Role role : roles)
{
role = this.roleService.getById(role.getId());
rolesNew.add(role);
}
obj.setRoles(roles);
}
return super.postProcessGet(obj);
}
@Override
@ -204,4 +265,55 @@ public class UserServiceImpl extends AbstractMybatisEntityService<String, User>
return SQL_NAMESPACE;
}
protected static class RoleUser implements Serializable
{
private static final long serialVersionUID = 1L;
private String id;
private String roleId;
private String userId;
public RoleUser()
{
super();
}
public RoleUser(String id, String roleId, String userId)
{
super();
this.id = id;
this.roleId = roleId;
this.userId = userId;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getRoleId()
{
return roleId;
}
public void setRoleId(String roleId)
{
this.roleId = roleId;
}
public String getUserId()
{
return userId;
}
public void setUserId(String userId)
{
this.userId = userId;
}
}
}

View File

@ -38,18 +38,6 @@
T.${_iq_}id${_iq_} = #{id}
</select>
<select id="findByUserId" resultType="org.datagear.management.domain.Role">
SELECT
T.*
FROM
(<include refid="queryView" />) T
WHERE
T.${_iq_}id${_iq_} IN
(
SELECT RU_ROLE_ID FROM DATAGEAR_ROLE_USER WHERE RU_USER_ID = #{userId}
)
</select>
<select id="query" resultType="org.datagear.management.domain.Role">
SELECT
T.*

View File

@ -1,151 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.datagear.management.domain.RoleUser">
<insert id="insert">
INSERT INTO DATAGEAR_ROLE_USER
(
RU_ID, RU_ROLE_ID, RU_USER_ID
)
VALUES
(
#{entity.id}, #{entity.role.id}, #{entity.user.id}
)
</insert>
<update id="update">
UPDATE DATAGEAR_ROLE_USER SET
RU_ROLE_ID = #{entity.role.id},
RU_USER_ID = #{entity.user.id}
WHERE
RU_ID = #{entity.id}
</update>
<delete id="deleteById">
DELETE FROM DATAGEAR_ROLE_USER
WHERE
RU_ID = #{id}
</delete>
<select id="getById" resultType="org.datagear.management.domain.RoleUser">
SELECT
T.*
FROM
(<include refid="queryView" />) T
WHERE
T.${_iq_}id${_iq_} = #{id}
</select>
<select id="getByRoleAndUser" resultType="org.datagear.management.domain.RoleUser">
SELECT
T.*
FROM
(<include refid="queryView" />) T
WHERE
T.${_iq_}role.id${_iq_} = #{role.id}
AND T.${_iq_}user.id${_iq_} = #{user.id}
</select>
<select id="query" resultType="org.datagear.management.domain.RoleUser">
SELECT
T.*
FROM
(<include refid="queryView" />) T
WHERE
<include refid="queryCondition" />
<include refid="common.queryOrder" />
</select>
<select id="queryForRole" resultType="org.datagear.management.domain.RoleUser">
SELECT
T.*
FROM
(<include refid="queryView" />) T
WHERE
<include refid="queryCondition" />
AND T.${_iq_}role.id${_iq_} = #{role.id}
<include refid="common.queryOrder" />
</select>
<select id="pagingQueryForRoleCount" resultType="int">
SELECT
COUNT(*)
FROM
(<include refid="queryView" />) T
WHERE
<include refid="queryCondition" />
AND T.${_iq_}role.id${_iq_} = #{role.id}
</select>
<select id="pagingQueryForRole" resultType="org.datagear.management.domain.RoleUser">
<include refid="common.pagingQueryHead" />
SELECT
T.*
FROM
(<include refid="queryView" />) T
WHERE
<include refid="queryCondition" />
AND T.${_iq_}role.id${_iq_} = #{role.id}
<include refid="common.queryOrder" />
<include refid="common.pagingQueryFoot" />
</select>
<select id="pagingQueryCount" resultType="int">
SELECT
COUNT(*)
FROM
(<include refid="queryView" />) T
WHERE
<include refid="queryCondition" />
</select>
<select id="pagingQuery" resultType="org.datagear.management.domain.RoleUser">
<include refid="common.pagingQueryHead" />
SELECT
T.*
FROM
(<include refid="queryView" />) T
WHERE
<include refid="queryCondition" />
<include refid="common.queryOrder" />
<include refid="common.pagingQueryFoot" />
</select>
<sql id="queryView">
SELECT
A.RU_ID AS ${_iq_}id${_iq_},
A.RU_ROLE_ID AS ${_iq_}role.id${_iq_},
B.ROLE_NAME AS ${_iq_}role.name${_iq_},
B.ROLE_DESCRIPTION AS ${_iq_}role.description${_iq_},
B.ROLE_ENABLED AS ${_iq_}role.enabled${_iq_},
A.RU_USER_ID AS ${_iq_}user.id${_iq_},
C.USER_NAME AS ${_iq_}user.name${_iq_},
C.USER_REAL_NAME AS ${_iq_}user.realName${_iq_},
C.USER_IS_ADMIN AS ${_iq_}user.admin${_iq_},
C.USER_CREATE_TIME AS ${_iq_}user.createTime${_iq_}
FROM
DATAGEAR_ROLE_USER A
INNER JOIN
DATAGEAR_ROLE B
ON
A.RU_ROLE_ID = B.ROLE_ID
INNER JOIN
DATAGEAR_USER C
ON
A.RU_USER_ID = C.USER_ID
</sql>
<sql id="queryCondition">
1 = 1
<if test="queryKeyword != null">
AND
(
${_iq_}role.name${_iq_} LIKE #{queryKeyword}
OR ${_iq_}role.description${_iq_} LIKE #{queryKeyword}
OR ${_iq_}user.name${_iq_} LIKE #{queryKeyword}
OR ${_iq_}user.realName${_iq_} LIKE #{queryKeyword}
)
</if>
</sql>
</mapper>

View File

@ -16,6 +16,17 @@
)
</insert>
<insert id="insertUserRole">
INSERT INTO DATAGEAR_ROLE_USER
(
RU_ID, RU_ROLE_ID, RU_USER_ID
)
VALUES
(
#{entity.id}, #{entity.roleId}, #{entity.userId}
)
</insert>
<update id="update">
UPDATE DATAGEAR_USER SET
USER_NAME = #{entity.name},
@ -42,6 +53,12 @@
USER_ID = #{id}
</delete>
<delete id="deleteUserRoles">
DELETE FROM DATAGEAR_ROLE_USER
WHERE
RU_USER_ID = #{userId}
</delete>
<select id="getById" resultType="org.datagear.management.domain.User">
SELECT
T.*
@ -51,13 +68,22 @@
T.${_iq_}id${_iq_} = #{id}
</select>
<select id="getByName" resultType="org.datagear.management.domain.User">
<select id="getIdByName" resultType="string">
SELECT
T.*
USER_ID
FROM
(<include refid="queryView" />) T
DATAGEAR_USER T
WHERE
T.${_iq_}name${_iq_} = #{name}
T.USER_NAME = #{name}
</select>
<select id="getUserRoleIds" resultType="string">
SELECT
RU_ROLE_ID
FROM
DATAGEAR_ROLE_USER
WHERE
RU_USER_ID = #{userId}
</select>
<select id="query" resultType="org.datagear.management.domain.User">

View File

@ -58,7 +58,6 @@ import org.datagear.management.service.DataSetResDirectoryService;
import org.datagear.management.service.HtmlChartWidgetEntityService;
import org.datagear.management.service.HtmlTplDashboardWidgetEntityService;
import org.datagear.management.service.RoleService;
import org.datagear.management.service.RoleUserService;
import org.datagear.management.service.SchemaService;
import org.datagear.management.service.SqlHistoryService;
import org.datagear.management.service.UserService;
@ -71,7 +70,6 @@ import org.datagear.management.service.impl.DataSetResDirectoryServiceImpl;
import org.datagear.management.service.impl.HtmlChartWidgetEntityServiceImpl;
import org.datagear.management.service.impl.HtmlTplDashboardWidgetEntityServiceImpl;
import org.datagear.management.service.impl.RoleServiceImpl;
import org.datagear.management.service.impl.RoleUserServiceImpl;
import org.datagear.management.service.impl.SchemaServiceImpl;
import org.datagear.management.service.impl.SqlHistoryServiceImpl;
import org.datagear.management.service.impl.UserPasswordEncoder;
@ -488,8 +486,7 @@ public class CoreConfig implements ApplicationListener<ContextRefreshedEvent>
@Bean
public UserService userService()
{
UserServiceImpl bean = new UserServiceImpl(this.sqlSessionFactory(), this.mbSqlDialect(),
this.roleUserService(), this.roleService());
UserServiceImpl bean = new UserServiceImpl(this.sqlSessionFactory(), this.mbSqlDialect(), this.roleService());
bean.setUserPasswordEncoder(this.userPasswordEncoder());
return bean;
@ -502,13 +499,6 @@ public class CoreConfig implements ApplicationListener<ContextRefreshedEvent>
return bean;
}
@Bean
public RoleUserService roleUserService()
{
RoleUserServiceImpl bean = new RoleUserServiceImpl(this.sqlSessionFactory(), this.mbSqlDialect());
return bean;
}
@Bean
public DataSetEntityService dataSetEntityService()
{

View File

@ -164,6 +164,8 @@ public class RegisterController extends AbstractController
roles.add(new Role(roleId, roleId));
}
roles.add(new Role(Role.ROLE_REGISTRY, Role.ROLE_REGISTRY));
return roles;
}
}

View File

@ -13,10 +13,8 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.datagear.management.domain.Role;
import org.datagear.management.domain.RoleUser;
import org.datagear.management.domain.User;
import org.datagear.management.service.RoleService;
import org.datagear.management.service.RoleUserService;
import org.datagear.persistence.PagingData;
import org.datagear.persistence.PagingQuery;
import org.datagear.util.IDUtil;
@ -42,9 +40,6 @@ public class RoleController extends AbstractController
@Autowired
private RoleService roleService;
@Autowired
private RoleUserService roleUserService;
public RoleController()
{
super();
@ -60,16 +55,6 @@ public class RoleController extends AbstractController
this.roleService = roleService;
}
public RoleUserService getRoleUserService()
{
return roleUserService;
}
public void setRoleUserService(RoleUserService roleUserService)
{
this.roleUserService = roleUserService;
}
@RequestMapping("/add")
public String add(HttpServletRequest request, org.springframework.ui.Model model)
{
@ -177,72 +162,6 @@ public class RoleController extends AbstractController
return roles;
}
@RequestMapping(value = "/user/pagingQuery")
public String pagingQuery(HttpServletRequest request, HttpServletResponse response,
org.springframework.ui.Model model, @RequestParam("id") String id)
{
Role role = this.roleService.getById(id);
if (role == null)
throw new RecordNotFoundException();
model.addAttribute("role", role);
return "/role/role_user_grid";
}
@RequestMapping(value = "/user/pagingQueryData", produces = CONTENT_TYPE_JSON)
@ResponseBody
public PagingData<RoleUser> userPagingQueryData(HttpServletRequest request, HttpServletResponse response,
@RequestParam("roleId") String roleId, @RequestBody(required = false) PagingQuery pagingQueryParam)
throws Exception
{
final PagingQuery pagingQuery = inflatePagingQuery(request, pagingQueryParam);
Role role = this.roleService.getById(roleId);
if (role == null)
throw new RecordNotFoundException();
PagingData<RoleUser> roleUsers = this.roleUserService.pagingQueryForRole(role, pagingQuery);
return roleUsers;
}
@RequestMapping(value = "user/saveAdd", produces = CONTENT_TYPE_JSON)
@ResponseBody
public ResponseEntity<OperationMessage> userSaveAdd(HttpServletRequest request, HttpServletResponse response,
RoleUsersForm roleUsersForm)
{
Role role = roleUsersForm.getRole();
List<User> users = roleUsersForm.getUsers();
if (isEmpty(role) || isEmpty(users))
throw new IllegalInputException();
RoleUser[] roleUsers = new RoleUser[users.size()];
for (int i = 0; i < users.size(); i++)
{
RoleUser roleUser = new RoleUser(IDUtil.randomIdOnTime20(), role, users.get(i));
roleUsers[i] = roleUser;
}
this.roleUserService.addIfInexistence(roleUsers);
return buildOperationMessageSaveSuccessResponseEntity(request);
}
@RequestMapping(value = "user/delete", produces = CONTENT_TYPE_JSON)
@ResponseBody
public ResponseEntity<OperationMessage> userDelete(HttpServletRequest request, HttpServletResponse response,
@RequestBody String[] roleUserIds)
{
this.roleUserService.deleteByIds(roleUserIds);
return buildOperationMessageDeleteSuccessResponseEntity(request);
}
@Override
protected String buildMessageCode(String code)
{

View File

@ -257,7 +257,7 @@ public class UserController extends AbstractController
// 禁用新建管理员账号功能
user.setAdmin(User.isAdminUser(user));
this.userService.update(user);
this.userService.updateIgnoreRole(user);
return buildOperationMessageSaveSuccessResponseEntity(request);
}

View File

@ -588,8 +588,6 @@ role.editRole=编辑角色
role.viewRole=查看角色
role.manageRole=管理角色
role.selectRole=选择角色
role.editUser=管理用户
role.roleEditUser=角色 - 管理用户
role.roleEditAuthorization=角色 - 设置权限
role.id=ID
role.name=名称

View File

@ -588,8 +588,6 @@ role.editRole=Edit role
role.viewRole=View role
role.manageRole=Manage role
role.selectRole=Select role
role.editUser=Manage user
role.roleEditUser=Role - Manage user
role.roleEditAuthorization=Role - Authorization
role.id=ID
role.name=Name

View File

@ -37,7 +37,6 @@ selectOperation 是否选择操作允许为null
<#else>
<input name="addButton" type="button" value="<@spring.message code='add' />" />
<input name="editButton" type="button" value="<@spring.message code='edit' />" />
<input name="editUserButton" type="button" value="<@spring.message code='role.editUser' />" />
<input name="viewButton" type="button" value="<@spring.message code='view' />" />
<input name="deleteButton" type="button" value="<@spring.message code='delete' />" />
</#if>
@ -94,21 +93,6 @@ selectOperation 是否选择操作允许为null
});
});
po.element("input[name=editUserButton]").click(function()
{
po.executeOnSelect(function(row)
{
var options =
{
data : {"id" : row.id}
};
$.setGridPageHeightOption(options);
po.open(po.url("user/pagingQuery"), options);
});
});
po.element("input[name=viewButton]").click(function()
{
po.executeOnSelect(function(row)

View File

@ -82,8 +82,6 @@ readonly 是否只读操作允许为null
<div class="form-foot" style="text-align:center;">
<#if !readonly>
<input type="submit" value="<@spring.message code='save' />" class="recommended" />
&nbsp;&nbsp;
<input type="reset" value="<@spring.message code='reset' />" />
</#if>
</div>
</form>