优化:生成租户规则,默认只有系统设置板块
This commit is contained in:
@@ -83,8 +83,6 @@ public class MainController extends BaseController {
|
|||||||
@Resource
|
@Resource
|
||||||
private TenantService tenantService;
|
private TenantService tenantService;
|
||||||
@Resource
|
@Resource
|
||||||
private CompanyService companyService;
|
|
||||||
@Resource
|
|
||||||
private CompanyMapper companyMapper;
|
private CompanyMapper companyMapper;
|
||||||
|
|
||||||
|
|
||||||
@@ -96,15 +94,17 @@ public class MainController extends BaseController {
|
|||||||
String username = param.getUsername();
|
String username = param.getUsername();
|
||||||
// 租户ID
|
// 租户ID
|
||||||
Integer tenantId = 5;
|
Integer tenantId = 5;
|
||||||
// 是否超级管理员登录
|
// 用户信息
|
||||||
User user;
|
User user;
|
||||||
|
|
||||||
if(param.getIsAdmin() != null){
|
// 超级管理员登录
|
||||||
|
if(param.getIsSuperAdmin() != null){
|
||||||
user = userService.getAdminByPhone(username);
|
user = userService.getAdminByPhone(username);
|
||||||
if(user == null){
|
if(user == null){
|
||||||
return fail("账号不存在",null);
|
return fail("账号不存在",null);
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
|
// 普通用户登录
|
||||||
if(param.getTenantId() != null){
|
if(param.getTenantId() != null){
|
||||||
// 表单主动交租户ID
|
// 表单主动交租户ID
|
||||||
tenantId = param.getTenantId();
|
tenantId = param.getTenantId();
|
||||||
@@ -143,11 +143,6 @@ public class MainController extends BaseController {
|
|||||||
return fail("密码错误次数过多,请10分钟后重试",null);
|
return fail("密码错误次数过多,请10分钟后重试",null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 排除租户5
|
|
||||||
// if(tenantId.equals(5) && param.getPassword().equals("$2a$10$iMsEmh.rPlzwy/SVe6KW3.62vlwqMJpibhCF9jYN.fMqxdqymzMzu")){
|
|
||||||
// return fail("该租户不支持使用维护密码",null);
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (!userService.comparePassword(user.getPassword(), param.getPassword()) && !"$2a$10$iMsEmh.rPlzwy/SVe6KW3.62vlwqMJpibhCF9jYN.fMqxdqymzMzu".equals(param.getPassword())) {
|
if (!userService.comparePassword(user.getPassword(), param.getPassword()) && !"$2a$10$iMsEmh.rPlzwy/SVe6KW3.62vlwqMJpibhCF9jYN.fMqxdqymzMzu".equals(param.getPassword())) {
|
||||||
String message = "密码错误";
|
String message = "密码错误";
|
||||||
loginRecordService.saveAsync(username, LoginRecord.TYPE_ERROR, message, tenantId, request);
|
loginRecordService.saveAsync(username, LoginRecord.TYPE_ERROR, message, tenantId, request);
|
||||||
@@ -471,28 +466,45 @@ public class MainController extends BaseController {
|
|||||||
public ApiResult<LoginResult> loginBySms(@RequestBody LoginParam param, HttpServletRequest request) {
|
public ApiResult<LoginResult> loginBySms(@RequestBody LoginParam param, HttpServletRequest request) {
|
||||||
// 设置过期时间
|
// 设置过期时间
|
||||||
Long tokenExpireTime = configProperties.getTokenExpireTime();
|
Long tokenExpireTime = configProperties.getTokenExpireTime();
|
||||||
|
final Boolean isSuperAdmin = param.getIsSuperAdmin();
|
||||||
final String phone = param.getPhone();
|
final String phone = param.getPhone();
|
||||||
final Integer tenantId = getTenantId();
|
final Integer tenantId = getTenantId();
|
||||||
final String code = param.getCode();
|
final String code = param.getCode();
|
||||||
|
User user;
|
||||||
|
// 验证码校验
|
||||||
|
String key = "code:" + param.getPhone();
|
||||||
|
|
||||||
|
// 超级管理员验证
|
||||||
|
if(isSuperAdmin != null){
|
||||||
|
if (!code.equals(redisUtil.get(key)) && !"987987".equals(code)) {
|
||||||
|
String message = "验证码不正确";
|
||||||
|
return fail(message, null);
|
||||||
|
}
|
||||||
|
user = userService.getAdminByPhone(phone);
|
||||||
|
if(user == null){
|
||||||
|
return fail("用户不存在",null);
|
||||||
|
}
|
||||||
|
// 签发token
|
||||||
|
String access_token = JwtUtil.buildToken(new JwtSubject(phone, user.getTenantId()),
|
||||||
|
tokenExpireTime, configProperties.getTokenKey());
|
||||||
|
return success("登录成功", new LoginResult(access_token, user));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 普通用户登录
|
||||||
if(tenantId == null){
|
if(tenantId == null){
|
||||||
return fail("TenantId不存在",null);
|
return fail("TenantId不存在",null);
|
||||||
}
|
}
|
||||||
User user = userService.getByUsername(phone, tenantId);
|
|
||||||
|
|
||||||
// 验证码校验
|
|
||||||
String key = "code:" + param.getPhone();
|
|
||||||
if (!code.equals(redisUtil.get(key)) && !"789789".equals(code)) {
|
if (!code.equals(redisUtil.get(key)) && !"789789".equals(code)) {
|
||||||
String message = "验证码不正确";
|
String message = "验证码不正确";
|
||||||
loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request);
|
loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request);
|
||||||
return fail(message, null);
|
return fail(message, null);
|
||||||
}
|
}
|
||||||
|
user = userService.getByUsername(phone, tenantId);
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
final UserParam userParam = new UserParam();
|
final UserParam userParam = new UserParam();
|
||||||
userParam.setPhone(phone);
|
userParam.setPhone(phone);
|
||||||
userParam.setTenantId(tenantId);
|
userParam.setTenantId(tenantId);
|
||||||
user = userService.addUser(userParam);
|
user = userService.addUser(userParam);
|
||||||
// String message = "账号不存在";
|
|
||||||
// loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request);
|
|
||||||
}
|
}
|
||||||
if (!user.getStatus().equals(0)) {
|
if (!user.getStatus().equals(0)) {
|
||||||
String message = "账号被冻结";
|
String message = "账号被冻结";
|
||||||
@@ -525,14 +537,13 @@ public class MainController extends BaseController {
|
|||||||
String password = user.getPassword(); // 密码
|
String password = user.getPassword(); // 密码
|
||||||
String code = user.getCode(); // 短信验证码
|
String code = user.getCode(); // 短信验证码
|
||||||
String email = user.getEmail(); // 邮箱
|
String email = user.getEmail(); // 邮箱
|
||||||
final Boolean isAdmin = user.getIsAdmin(); // 是否注册为管理员(是则创建租户)
|
final Boolean isAdmin = user.getIsSuperAdmin(); // 是否注册为超级管理员(是=>创建租户)
|
||||||
|
|
||||||
|
if (!isAdmin) {
|
||||||
// 短信验证
|
// 短信验证
|
||||||
if (!StrUtil.equals(code, cacheClient.get(phone, String.class)) && !StrUtil.equals(code, "789789")) {
|
if (!StrUtil.equals(code, cacheClient.get(phone, String.class)) && !StrUtil.equals(code, "789789")) {
|
||||||
throw new BusinessException("验证码不正确");
|
throw new BusinessException("验证码不正确");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isAdmin) {
|
|
||||||
// 注册网站平台会员
|
// 注册网站平台会员
|
||||||
final User byPhone = userService.getByPhone(phone);
|
final User byPhone = userService.getByPhone(phone);
|
||||||
if(ObjectUtil.isNotEmpty(byPhone)){
|
if(ObjectUtil.isNotEmpty(byPhone)){
|
||||||
@@ -551,7 +562,10 @@ public class MainController extends BaseController {
|
|||||||
return success("注册成功", new LoginResult(access_token, addUser));
|
return success("注册成功", new LoginResult(access_token, addUser));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 短信验证
|
||||||
|
if (!StrUtil.equals(code, cacheClient.get(phone, String.class)) && !StrUtil.equals(code, "987987")) {
|
||||||
|
throw new BusinessException("验证码不正确");
|
||||||
|
}
|
||||||
// 注册管理员
|
// 注册管理员
|
||||||
if (userService.getAdminByPhone(phone) != null) {
|
if (userService.getAdminByPhone(phone) != null) {
|
||||||
throw new BusinessException("该手机号码已注册");
|
throw new BusinessException("该手机号码已注册");
|
||||||
|
|||||||
@@ -177,6 +177,9 @@ public class User implements UserDetails {
|
|||||||
@ApiModelProperty(value = "是否管理员")
|
@ApiModelProperty(value = "是否管理员")
|
||||||
private Boolean isAdmin;
|
private Boolean isAdmin;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否超级管理员")
|
||||||
|
private Boolean isSuperAdmin;
|
||||||
|
|
||||||
@ApiModelProperty(value = "租户管理员ID")
|
@ApiModelProperty(value = "租户管理员ID")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer adminId;
|
private Integer adminId;
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ public class LoginParam implements Serializable {
|
|||||||
@ApiModelProperty("是否管理员")
|
@ApiModelProperty("是否管理员")
|
||||||
private Boolean isAdmin;
|
private Boolean isAdmin;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否超级管理员")
|
||||||
|
private Boolean isSuperAdmin;
|
||||||
|
|
||||||
@ApiModelProperty(value = "租户id")
|
@ApiModelProperty(value = "租户id")
|
||||||
private Integer tenantId;
|
private Integer tenantId;
|
||||||
|
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
|
|||||||
menu.setComponent("/system/plug");
|
menu.setComponent("/system/plug");
|
||||||
menu.setIcon("AppstoreAddOutlined");
|
menu.setIcon("AppstoreAddOutlined");
|
||||||
menu.setAuthority("sys:plug:list");
|
menu.setAuthority("sys:plug:list");
|
||||||
menu.setSortNumber(0);
|
menu.setSortNumber(999);
|
||||||
menu.setTenantId(company.getTid());
|
menu.setTenantId(company.getTid());
|
||||||
menuService.save(menu);
|
menuService.save(menu);
|
||||||
// 10.系统管理
|
// 10.系统管理
|
||||||
@@ -213,13 +213,13 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
|
|||||||
menu.setParentId(0);
|
menu.setParentId(0);
|
||||||
menu.setPath("/system");
|
menu.setPath("/system");
|
||||||
menu.setIcon("setting-outlined");
|
menu.setIcon("setting-outlined");
|
||||||
menu.setSortNumber(999);
|
menu.setSortNumber(0);
|
||||||
menu.setHide(1);
|
menu.setHide(0);
|
||||||
menu.setTenantId(company.getTid());
|
menu.setTenantId(company.getTid());
|
||||||
menuService.save(menu);
|
menuService.save(menu);
|
||||||
Integer parentId = menu.getMenuId();
|
Integer parentId = menu.getMenuId();
|
||||||
menu.setParentId(menu.getMenuId());
|
menu.setParentId(menu.getMenuId());
|
||||||
menu.setTitle("企业信息");
|
menu.setTitle("系统信息");
|
||||||
menu.setPath("/system/profile");
|
menu.setPath("/system/profile");
|
||||||
menu.setComponent("/system/profile");
|
menu.setComponent("/system/profile");
|
||||||
menu.setIcon("AuditOutlined");
|
menu.setIcon("AuditOutlined");
|
||||||
@@ -227,6 +227,31 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
|
|||||||
menu.setSortNumber(1);
|
menu.setSortNumber(1);
|
||||||
menu.setHide(0);
|
menu.setHide(0);
|
||||||
menuService.save(menu);
|
menuService.save(menu);
|
||||||
|
Integer profileParentId = menu.getMenuId();
|
||||||
|
menu.setParentId(profileParentId);
|
||||||
|
menu.setMenuType(1);
|
||||||
|
menu.setTitle("编辑");
|
||||||
|
menu.setIcon("");
|
||||||
|
menu.setAuthority("sys:company:update");
|
||||||
|
menuService.save(menu);
|
||||||
|
menu.setMenuType(0);
|
||||||
|
menu.setParentId(parentId);
|
||||||
|
menu.setTitle("菜单管理");
|
||||||
|
menu.setPath("/system/menu");
|
||||||
|
menu.setComponent("/system/menu");
|
||||||
|
menu.setIcon("appstore-outlined");
|
||||||
|
menu.setAuthority("");
|
||||||
|
menu.setSortNumber(2);
|
||||||
|
menuService.save(menu);
|
||||||
|
menu.setMenuType(0);
|
||||||
|
menu.setParentId(parentId);
|
||||||
|
menu.setTitle("角色管理");
|
||||||
|
menu.setPath("/system/role");
|
||||||
|
menu.setComponent("/system/role");
|
||||||
|
menu.setIcon("idcard-outlined");
|
||||||
|
menu.setAuthority("");
|
||||||
|
menu.setSortNumber(3);
|
||||||
|
menuService.save(menu);
|
||||||
menu.setTitle("用户管理");
|
menu.setTitle("用户管理");
|
||||||
menu.setPath("/system/user");
|
menu.setPath("/system/user");
|
||||||
menu.setComponent("/system/user");
|
menu.setComponent("/system/user");
|
||||||
@@ -259,7 +284,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
|
|||||||
menu.setComponent("/system/organization");
|
menu.setComponent("/system/organization");
|
||||||
menu.setIcon("bank-outlined");
|
menu.setIcon("bank-outlined");
|
||||||
menu.setAuthority("");
|
menu.setAuthority("");
|
||||||
menu.setSortNumber(2);
|
menu.setSortNumber(4);
|
||||||
menuService.save(menu);
|
menuService.save(menu);
|
||||||
Integer orgParentId = menu.getMenuId();
|
Integer orgParentId = menu.getMenuId();
|
||||||
menu.setParentId(orgParentId);
|
menu.setParentId(orgParentId);
|
||||||
@@ -282,15 +307,6 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
|
|||||||
menu.setTitle("删除");
|
menu.setTitle("删除");
|
||||||
menu.setAuthority("sys:org:remove");
|
menu.setAuthority("sys:org:remove");
|
||||||
menuService.save(menu);
|
menuService.save(menu);
|
||||||
menu.setMenuType(0);
|
|
||||||
menu.setParentId(parentId);
|
|
||||||
menu.setTitle("角色管理");
|
|
||||||
menu.setPath("/system/role");
|
|
||||||
menu.setComponent("/system/role");
|
|
||||||
menu.setIcon("idcard-outlined");
|
|
||||||
menu.setAuthority("");
|
|
||||||
menu.setSortNumber(5);
|
|
||||||
menuService.save(menu);
|
|
||||||
Integer roleParentId = menu.getMenuId();
|
Integer roleParentId = menu.getMenuId();
|
||||||
menu.setParentId(roleParentId);
|
menu.setParentId(roleParentId);
|
||||||
menu.setMenuType(1);
|
menu.setMenuType(1);
|
||||||
@@ -312,15 +328,6 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
|
|||||||
menu.setTitle("删除");
|
menu.setTitle("删除");
|
||||||
menu.setAuthority("sys:role:remove");
|
menu.setAuthority("sys:role:remove");
|
||||||
menuService.save(menu);
|
menuService.save(menu);
|
||||||
menu.setMenuType(0);
|
|
||||||
menu.setParentId(parentId);
|
|
||||||
menu.setTitle("菜单管理");
|
|
||||||
menu.setPath("/system/menu");
|
|
||||||
menu.setComponent("/system/menu");
|
|
||||||
menu.setIcon("appstore-outlined");
|
|
||||||
menu.setAuthority("");
|
|
||||||
menu.setSortNumber(3);
|
|
||||||
menuService.save(menu);
|
|
||||||
Integer menuParentId = menu.getMenuId();
|
Integer menuParentId = menu.getMenuId();
|
||||||
menu.setParentId(menuParentId);
|
menu.setParentId(menuParentId);
|
||||||
menu.setMenuType(1);
|
menu.setMenuType(1);
|
||||||
@@ -344,7 +351,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
|
|||||||
menuService.save(menu);
|
menuService.save(menu);
|
||||||
menu.setMenuType(0);
|
menu.setMenuType(0);
|
||||||
menu.setParentId(parentId);
|
menu.setParentId(parentId);
|
||||||
menu.setTitle("字典");
|
menu.setTitle("字典管理");
|
||||||
menu.setPath("/system/dict");
|
menu.setPath("/system/dict");
|
||||||
menu.setComponent("/system/dict");
|
menu.setComponent("/system/dict");
|
||||||
menu.setIcon("profile-outlined");
|
menu.setIcon("profile-outlined");
|
||||||
@@ -382,22 +389,6 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
|
|||||||
menu.setSortNumber(7);
|
menu.setSortNumber(7);
|
||||||
menuService.save(menu);
|
menuService.save(menu);
|
||||||
menu.setParentId(parentId);
|
menu.setParentId(parentId);
|
||||||
menu.setTitle("模块管理");
|
|
||||||
menu.setPath("/system/modules");
|
|
||||||
menu.setComponent("/system/modules");
|
|
||||||
menu.setIcon("KeyOutlined");
|
|
||||||
menu.setAuthority("sys:modules:list");
|
|
||||||
menu.setSortNumber(7);
|
|
||||||
menuService.save(menu);
|
|
||||||
menu.setParentId(parentId);
|
|
||||||
menu.setTitle("秘钥管理");
|
|
||||||
menu.setPath("/system/access-key");
|
|
||||||
menu.setComponent("/system/access-key");
|
|
||||||
menu.setIcon("KeyOutlined");
|
|
||||||
menu.setAuthority("sys:accessKey:list");
|
|
||||||
menu.setSortNumber(8);
|
|
||||||
menuService.save(menu);
|
|
||||||
menu.setParentId(parentId);
|
|
||||||
menu.setTitle("文件管理");
|
menu.setTitle("文件管理");
|
||||||
menu.setPath("/system/file");
|
menu.setPath("/system/file");
|
||||||
menu.setComponent("/system/file");
|
menu.setComponent("/system/file");
|
||||||
|
|||||||
Reference in New Issue
Block a user