forked from p85126437/datagear
移除RoleUser实体设计,用户角色关系简化为使用User.roles维护(未完成)
This commit is contained in:
parent
5ce3102295
commit
d895357de3
|
@ -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);
|
||||
|
||||
/**
|
||||
* 获取。
|
||||
*
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
|
||||
/**
|
||||
* 更新用户密码。
|
||||
*
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.*
|
||||
|
|
|
@ -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>
|
|
@ -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">
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -588,8 +588,6 @@ role.editRole=编辑角色
|
|||
role.viewRole=查看角色
|
||||
role.manageRole=管理角色
|
||||
role.selectRole=选择角色
|
||||
role.editUser=管理用户
|
||||
role.roleEditUser=角色 - 管理用户
|
||||
role.roleEditAuthorization=角色 - 设置权限
|
||||
role.id=ID
|
||||
role.name=名称
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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" />
|
||||
|
||||
<input type="reset" value="<@spring.message code='reset' />" />
|
||||
</#if>
|
||||
</div>
|
||||
</form>
|
||||
|
|
Loading…
Reference in New Issue