Commit 06fd481b authored by 赵啸非's avatar 赵啸非

修改用户登录,权限分配等

parent 5ee21138
......@@ -184,15 +184,21 @@ export default {
formatterDictLink(row, column, val) {
const content = formatter(this.tableData, column, val);
let underline = false;
let type = "primary"
if (val === 3) {
type = 'danger'
}
return content ? <el-link type={type} underline={underline} onClick={() => { this.toDrawerMsg(row) }} size='mini'>{content}</el-link> : val
},
formatters(row, column, val) {
if (val) {
return (
val.split(',').map(v => { return formatter(this.tableData, column, v) }).join(",")
)
}
return '--'
},
formatterLink(row, column, val) {
//const content = formatter(this.tableData, column-2, val);
......@@ -258,6 +264,7 @@ export default {
// 自定义索引号
handleIndexMethod(index) {
//prePageResult 每页条数
console.log("index:"+index)
let size = this.tableData.pageInfo.prePageResult;
let page = this.tableData.pageInfo.currPage;
let count = parseInt(size) * (parseInt(page) - 1)
......
......@@ -25,13 +25,13 @@
</div>
<div class="layout-profile">
<span class="el-dropdown-link">
{{userData.currUserName}}
<!-- <i class="el-icon-arrow-down el-icon--right"></i> -->
</span>
<!-- <span class="el-dropdown-link">
{{userData.currUserName}}
<i class="el-icon-arrow-down el-icon--right"></i>
</span> -->
<!-- <el-dropdown @command="handleCommand">
<span class="el-dropdown-link">
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link" style="color:white">
{{userData.currUserName}}
<i class="el-icon-arrow-down el-icon--right"></i>
</span>
......@@ -39,7 +39,7 @@
<el-dropdown-item command="update">修改密码</el-dropdown-item>
<el-dropdown-item command="logout">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown> -->
</el-dropdown>
</div>
</div>
......
<template>
<layout-form>
<Breadcrumb slot='breadcrumb' :list='breadcrumbList'></Breadcrumb>
<!-- <Breadcrumb slot='breadcrumb' :list='breadcrumbList'></Breadcrumb> -->
<el-form :model="extendFormData" :rules="rules" ref="form" label-width="100px" size='small'>
<el-row><Field label="旧密码" prop="oldPwd" v-model="extendFormData.oldPwd" type='password'/></el-row>
<el-row>
......@@ -41,10 +41,10 @@ export default {
urls: {
saveUrl: '/login/updatePwd',
},
breadcrumbList: [
{name: '系统管理',},
{name: '修改密码',},
],
// breadcrumbList: [
// {name: '系统管理',},
// {name: '修改密码',},
// ],
rules: {
oldPwd: [
{ required: true, message: '请输入旧密码', trigger: 'blur' },
......
......@@ -26,12 +26,7 @@ export default {
},
],
columns: [
{
prop: "id",
label: "序号",
align: "center",
},
{ type: "index", label: "序号",align:"center", width: 50 },
{
prop: "userName",
......
......@@ -43,10 +43,8 @@ export default {
},
],
columns: [
{
type: 'selection',
width: 60,
},
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
// {
// prop: 'id',
// label: 'ID',
......
......@@ -381,10 +381,9 @@ export default {
// 保存选中的用户
async saveUser() {
try {
this.user.form.userIdList = this.user.checkList.join(",");
await this.$post("/role/user/distributionUser", {
query: this.user.form,
});
//this.user.form.userIdList = this.user.checkList.join(",");
this.user.form.userIdList = this.user.checkList
await this.$post("/role/user/distributionUser", this.user.form,);
this.user.visible = false;
this.user.form = this.initForm();
this.$message.success("操作成功");
......@@ -476,7 +475,7 @@ export default {
{
label: "操作",
witdh: 180,
witdh: 120,
formatter: (row) => {
return (
<div>
......@@ -495,6 +494,7 @@ export default {
>
分配权限
</el-button>
{/*
<el-button
icon="el-icon-goods"
size="mini"
......@@ -503,6 +503,7 @@ export default {
>
分配用户
</el-button>
*/}
</div>
);
},
......
......@@ -41,11 +41,9 @@ export default {
},
],
columns: [
{
type: "selection",
width: 60,
align: "center",
},
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{
prop: "name",
label: "任务名称",
......
......@@ -152,11 +152,8 @@ export default {
},
config: {
columns: [
{
type: "selection",
width: 60,
align: "center",
},
{ type: "selection",reserveSelection:true, width: 60 },
{ type: "index", label: "序号",align:"center", width: 50 },
{
prop: "loginName",
label: "登录名称",
......
......@@ -8,13 +8,20 @@
package com.mortals.xhx.base.system.role.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.base.system.role.dao.RoleDao;
import com.mortals.xhx.base.system.role.model.RoleEntity;
import com.mortals.xhx.base.system.role.model.*;
import com.mortals.xhx.base.system.role.service.RoleAuthService;
import com.mortals.xhx.base.system.role.service.RoleService;
import com.mortals.xhx.base.system.role.service.RoleUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
/**
* <p>Title: 角色信息</p>
* <p>Description: RoleServiceImpl service接口 </p>
......@@ -25,7 +32,29 @@ import org.springframework.stereotype.Service;
*/
@Service("roleService")
public class RoleServiceImpl extends AbstractCRUDServiceImpl<RoleDao,RoleEntity,Long> implements RoleService {
@Autowired
private RoleAuthService roleAuthService;
@Autowired
private RoleUserService roleUserService;
@Override
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
//删除关联角色
Arrays.asList(ids).stream().peek(roleId->{
RoleAuthQuery roleAuthQuery = new RoleAuthQuery();
roleAuthQuery.setRoleId(roleId);
Long[] roleAuthIds = roleAuthService.find(roleAuthQuery).stream().map(RoleAuthEntity::getId).toArray(Long[]::new);
roleAuthService.remove(roleAuthIds,context);
RoleUserQuery roleUserQuery = new RoleUserQuery();
roleUserQuery.setRoleId(roleId);
Long[] roleUserIds = roleUserService.find(roleUserQuery).stream().map(RoleUserEntity::getId).toArray(Long[]::new);
roleUserService.remove(roleUserIds,context);
}).count();
super.removeAfter(ids, context, result);
}
}
\ No newline at end of file
......@@ -32,6 +32,7 @@ import java.util.Map;
@Service("roleUserService")
public class RoleUserServiceImpl extends AbstractCRUDServiceImpl<RoleUserDao,RoleUserEntity,Long> implements RoleUserService {
@Override
public void doDistributionUser(RoleUserQuery query) {
Long roleId = query.getRoleId();
......@@ -68,5 +69,7 @@ public class RoleUserServiceImpl extends AbstractCRUDServiceImpl<RoleUserDao,Rol
}
this.dao.insertBatch(list);
}
}
\ No newline at end of file
......@@ -15,6 +15,8 @@ public class UserEntityExt extends BaseEntityLong {
* 站点名称
*/
private String siteName;
private String roleIds;
/**
* 唯一标识
*/
......
......@@ -19,6 +19,8 @@ public class UserVo extends BaseEntityLong {
* 站点名称
*/
private String siteName;
private String roleIds;
/**
* 唯一标识
*/
......
......@@ -22,6 +22,10 @@ import com.mortals.xhx.base.system.menu.model.MenuEntity;
import com.mortals.xhx.base.system.menu.service.MenuService;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import com.mortals.xhx.base.system.resource.service.ResourceService;
import com.mortals.xhx.base.system.role.model.RoleUserEntity;
import com.mortals.xhx.base.system.role.model.RoleUserQuery;
import com.mortals.xhx.base.system.role.service.RoleService;
import com.mortals.xhx.base.system.role.service.RoleUserService;
import com.mortals.xhx.base.system.user.dao.UserDao;
import com.mortals.xhx.base.system.user.model.UserEntity;
import com.mortals.xhx.base.system.user.model.UserQuery;
......@@ -52,7 +56,10 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
private MenuService menuService;
@Autowired
private ResourceService resourceService;
@Autowired
private RoleService roleService;
@Autowired
private RoleUserService roleUserService;
private void doHandlerUser(UserEntity entity) throws AppException {
if (StringUtils.isNotEmpty(entity.getLoginPwd())) {
......@@ -64,24 +71,55 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
} else {
entity.setLoginPwd(null);
}
// if (entity.isSystemUser()) {
// entity.setUserType(UserType.SYSTEM.getValue());
// } else {
// entity.setUserType(UserType.CUSTOMER.getValue());
// }
}
@Override
protected void saveBefore(UserEntity entity, Context context) throws AppException {
this.doHandlerUser(entity);
}
@Override
protected void updateBefore(UserEntity entity, Context context) throws AppException {
if (entity.getId().longValue() == SysConstains.ADMIN_ID && !context.getUser().isAdmin()) {
throw new AppException("你没有权限执行该操作");
}
// if (entity.getId().longValue() == SysConstains.ADMIN_ID && !context.getUser().isAdmin()) {
// throw new AppException("你没有权限执行该操作");
// }
//更新不更新密码字段
entity.setLoginPwd(null);
this.doHandlerUser(entity);
//更新角色
if(entity.getId().longValue() != SysConstains.ADMIN_ID &&!ObjectUtils.isEmpty(entity.getRoleIds())){
RoleUserQuery roleUserQuery = new RoleUserQuery();
roleUserQuery.setUserId(entity.getId());
List<Long> idList = Arrays.asList(entity.getRoleIds().split(",")).stream().map(Long::parseLong).collect(Collectors.toList());
roleUserQuery.setRoleIdList(idList);
roleUserService.doDistributionRole(roleUserQuery);
}
}
@Override
protected void saveAfter(UserEntity entity, Context context) throws AppException {
//更新角色
if(!ObjectUtils.isEmpty(entity.getId())&&entity.getId().longValue() != SysConstains.ADMIN_ID &&!ObjectUtils.isEmpty(entity.getRoleIds())){
RoleUserQuery roleUserQuery = new RoleUserQuery();
roleUserQuery.setUserId(entity.getId());
List<Long> idList = Arrays.asList(entity.getRoleIds().split(",")).stream().map(Long::parseLong).collect(Collectors.toList());
roleUserQuery.setRoleIdList(idList);
roleUserService.doDistributionRole(roleUserQuery);
}
super.saveAfter(entity, context);
}
@Override
protected void findAfter(UserEntity params, PageInfo pageInfo, Context context, List<UserEntity> list) throws AppException {
list.stream().peek(item -> {
RoleUserQuery roleUserQuery = new RoleUserQuery();
roleUserQuery.setUserId(item.getId());
String roleIds = roleUserService.find(roleUserQuery).stream().map(RoleUserEntity::getRoleId).map(String::valueOf).collect(Collectors.joining(","));
item.setRoleIds(roleIds);
}).count();
super.findAfter(params, pageInfo, context, list);
}
@Override
......@@ -103,7 +141,11 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
public UserEntity findByLoginName(String loginName) {
UserQuery params = new UserQuery();
params.setLoginName(loginName);
return this.selectOne(params);
List<UserEntity> userList = super.dao.getList(params);
if (userList != null && userList.size() > 0) {
return userList.get(0);
}
return null;
}
@Override
......@@ -119,7 +161,6 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
} catch (Exception e) {
throw new AppException("密码验认出错!", e);
}
return sysUser;
}
......@@ -163,7 +204,7 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
urls.addAll(StringUtils.converStr2Set(url));
}
}
Set<Long> authIds = new HashSet<Long>();
Set<Long> authIds = new HashSet<>();
Map<Long, MenuEntity> menuMap = new HashMap<Long, MenuEntity>();
List<MenuEntity> userModuleList = this.menuService.findAllEnable();
for (MenuEntity sysModule : userModuleList) {
......@@ -171,6 +212,7 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
continue;
}
menuMap.put(sysModule.getId(), sysModule);
if (!user.isAdmin() && urls.contains(StringUtils.trim(sysModule.getUrl()))) {
authIds.add(sysModule.getId());
}
......@@ -264,7 +306,6 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
}
try {
sysUser.setLoginPwd(SecurityUtil.md5DoubleEncoding(newPwd));
} catch (Exception e) {
throw new AppException("密码转换异常!", e);
}
......@@ -272,14 +313,15 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
return true;
}
@Override
protected void findAfter(UserEntity params, PageInfo pageInfo, Context context, List<UserEntity> list) throws AppException {
super.findAfter(params, pageInfo, context, list);
// list.stream().peek(item->{
// if(!ObjectUtils.isEmpty(item.getSiteId())&&item.getSiteId()!=0L){
// item.setSiteName(siteService.get(item.getSiteId()).getSiteName());
// }
// }).count();
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
Arrays.asList(ids).stream().peek(userId->{
RoleUserQuery roleUserQuery = new RoleUserQuery();
roleUserQuery.setUserId(userId);
Long[] userIds = roleUserService.find(roleUserQuery).stream().map(RoleUserEntity::getId).toArray(Long[]::new);
roleUserService.remove(userIds,context);
}).count();
super.removeAfter(ids, context, result);
}
}
\ No newline at end of file
......@@ -9,12 +9,18 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.base.framework.annotation.Operlog;
import com.mortals.xhx.base.system.role.model.RoleQuery;
import com.mortals.xhx.base.system.role.model.RoleUserEntity;
import com.mortals.xhx.base.system.role.model.RoleUserQuery;
import com.mortals.xhx.base.system.role.service.RoleService;
import com.mortals.xhx.base.system.role.service.RoleUserService;
import com.mortals.xhx.base.system.user.model.UserEntity;
import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.common.code.UserStatus;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
......@@ -26,6 +32,7 @@ import javax.servlet.http.HttpServletResponse;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 用户信息
......@@ -38,7 +45,9 @@ import java.util.Map;
public class UserController extends BaseCRUDJsonBodyMappingController<UserService, UserEntity, Long> {
@Autowired
private UserService userService;
private RoleService roleService;
@Autowired
private RoleUserService roleUserService;
public UserController() {
super.setFormClass(UserForm.class);
......@@ -47,10 +56,10 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
@Override
protected void init(Map<String, Object> model, Context context) {
Map<String, Object> statsus = new HashMap<String, Object>();
statsus.put("userType", IBaseEnum.getEnumMap(UserType.class));
statsus.put("status", UserStatus.getEnumMap());
model.put(KEY_RESULT_DICT, statsus);
this.addDict(model,"userType", IBaseEnum.getEnumMap(UserType.class));
this.addDict(model,"status", UserStatus.getEnumMap());
this.addDict(model, "roleIds", roleService.find(new RoleQuery()).stream().collect(Collectors.toMap(x -> x.getId().toString(), y -> y.getName())));
}
@Override
......@@ -64,17 +73,19 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
}
@Override
protected int editAfter(Long id, Map<String, Object> model, UserEntity entity, Context context) throws AppException {
entity.setLoginPwd(null);
RoleUserQuery roleUserQuery = new RoleUserQuery();
roleUserQuery.setUserId(entity.getId());
String roleIds = roleUserService.find(roleUserQuery).stream().map(RoleUserEntity::getRoleId).map(String::valueOf).collect(Collectors.joining(","));
entity.setRoleIds(roleIds);
return super.editAfter(id, model, entity, context);
}
@Override
protected int saveAfter(UserEntity entity, Map<String, Object> model, Context context) throws AppException {
if (entity.getId() == getCurUser().getId()) {
// TODO: 2022/8/15 更新redis session信息
//saveCurrUserForSession(request, response, userService.get(form.getEntity().getId(), false));
}
return super.saveAfter(entity, model, context);
......@@ -86,6 +97,9 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
if (service.existUser(entity.getLoginName(), entity.getId())) {
throw new AppException("登录名已存在!");
}
if (!ObjectUtils.isEmpty(entity.getLoginName()) && service.existUser(entity.getLoginName(), entity.getId())) {
throw new AppException("登录名已存在!");
}
super.saveBefore(entity, model, context);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment