用户维护
用户维护功能用于开发者或运营者在后台创建用户账号,此界面操作的是def_user
表。
提示
用户和员工是2个概念,用户只全局唯一的,员工的在某个企业内唯一的,一个用户可以归属于多个企业,在企业内部称为员工。 用户表存的的跟账号相关的信息,员工表存的是跟员工相关的信息。
涉及的表
def_user
用户
def_user_tenant_rel
员工(用户-租户关系表)
重要字段解释
nick_name:昵称。员工表(base_employee)中有员工姓名(name),用户表(def_user)有昵称(nick_name)。系统右上角显示的是用户的昵称。
username:全局唯一用户名,用于登录系统。正则规则:大写、小写、数字、下划线 任意2种组合。
email:全局唯一邮箱,用于登录系统。
mobile:全局唯一手机号,用于登录系统。
id_card:全局唯一身份证号,用于登录系统。
wx_open_id:微信openId。预留字段。
dd_open_id:钉钉OpenId。预留字段。
password_error_last_time:最后一次输错密码时间。配合{passwordErrorLockUserTime}参数,计算用户锁定的时长。
password_error_num:密码错误次数。输错{maxPasswordErrorNum}次后,账号将被锁定{passwordErrorLockUserTime}。
# common.yml lamp: system: maxPasswordErrorNum: 10 # 密码最大输错次数 小于0不限制 passwordErrorLockUserTime: "0" # 密码错误{maxPasswordErrorNum}次后,锁定用户时间[0: 今天结束;60m: 60分钟后;2h: 2小时后;4d: 4天后; 2w: 2周后;3M: 3个月后;5y: 5年后]
password_expire_time:密码过期时间。满足某些等保要求,用于密码强制过期。
// AbstractTokenGranter // 用户锁定 Integer maxPasswordErrorNum = systemProperties.getMaxPasswordErrorNum(); Integer passwordErrorNum = Convert.toInt(user.getPasswordErrorNum(), 0); if (maxPasswordErrorNum > 0 && passwordErrorNum >= maxPasswordErrorNum) { log.info("[{}][{}], 输错密码次数:{}, 最大限制次数:{}", user.getNickName(), user.getId(), passwordErrorNum, maxPasswordErrorNum); LocalDateTime passwordErrorLockTime = DateUtils.conversionDateTime(systemProperties.getPasswordErrorLockUserTime()); log.info("passwordErrorLockTime={}", passwordErrorLockTime); if (passwordErrorLockTime.isAfter(user.getPasswordErrorLastTime())) { // 登录失败事件 String msg = StrUtil.format("密码连续输错次数已达到{}次,用户已被锁定~", maxPasswordErrorNum); SpringUtils.publishEvent(new LoginEvent(LoginStatusDTO.fail(user.getId(), LoginStatusEnum.USER_ERROR, msg))); return R.fail(msg); } }
salt:密码盐。
password:密码。数据库中存储的密码为明文密码 + 随机盐,然后sha256加密。
// DefUserServiceImpl SecureUtil.sha256(defUser.getPassword() + defUser.getSalt())
state:状态;[0-禁用 1-启用]
用户禁用后,将不能登录系统
提示
用户禁用、员工禁用、企业禁用之间的关系
- 用户禁用后,不能登录系统
- 员工被某个企业禁用后,员工不能切换到该企业
- 企业被禁用后,该企业不再可用,且企业下的所有员工,不能切换到该企业
功能讲解

新增: 输入用户名、手机号、昵称等信息后,保存数据,会像
def_user
表插入一条数据。用户名、手机、邮箱、身份证需要保证全局唯一,4个字段均可以用于登录系统。新增的用户密码采用全局统一配置的默认密码。默认密码通过 common.yml 文件的 lamp.system.defPwd 参数修改。
编辑:修改
def_user
表的数据复制:复制一条数据
重置密码:将用户的密码重置为common.yml 文件中配置的默认密码。
lamp: system: # 默认用户密码 defPwd: '123456'
删除:物理删除用户
查看:查看用户的详细信息
❗️❗️❗️若评论区无法显示,请使用"手机热点"或"科学上网"。