用户管理是能够登录平台的账号集合,即登录用户。其最基本的属性为用户名和密码。登录用户类型分为内部员工、往来单位用户、会员用户,往来单位又分为供应商、客户、网点、院校、科研院所等。
主要功能包括:用户信息的维护、查询、授权角色、授权数据权限。
用户管理的数据权限:
数据权限包括:拥有的权限和管理的权限:用户管理的数据权限被定义为管理的权限,用户管理和机构管理的数据权限被定义为管理的权限(所以需要从 “二级管理员 -> 新增 -> 可管理的数据权限” 里授权设置)
你也可以改变这个规则,改为用户的权限:即采用无限级授权(如:只能创建本部门的用户,只能分配自己拥有的角色,只能分配自己拥有的菜单),这时你需要将用户管理的权限改为拥有的权限即可,找到 application.yml 设置 user.adminCtrlPermi=1
。
支持集团形式的数据权限控制,地区、公司、部门、多级子部门。
更多关于数据权限配置,详见专题文章:数据权限
管理的权限应用场景:
某用户,例如人事经理,拥有该部门下的新增和修改用户的权限,但不一定有该部门业务数据的查看权限。
用户多部门:
支持员工用户管理的附属部门功能,一个员工可归属多个部门,并支持多部门数据权限过滤。
防越级授权:
用户授权角色,角色授权菜单,进行多重验证,防止非法修改提交参数,分配更高级别的角色和菜单,从根本避免越级授权的问题。
为什么配置好的角色在用户管理里无法分配?主要考虑这几方面原因:1)二级管理员,可管理的角色范围;2)角色管理中的用户类型是否是员工类型。
用户密码:
新增用户时,是不需要设置密码的,初始密码将在,参数设置菜单里找到 sys.user.initPassword 中设置,默认密码:123456
机构管理是指组织机构也是部门,采用多级组织管理维护,无限层级,支持全国应用。
公司管理是可选功能,您可以选择使用,公司可设置归属区域和包含的组织机构,主要包含以下几种场景:在财务总账中具有 “帐套”的概念;在费用预算系统中具有 “出账公司”的概念;在HR系统中具有 “合同公司” 的概念;在供应链中具有“交易公司”的概念,采用多级公司管理维护。
岗位管理是可选功能,您可以选择使用,它是组织架构下的精细岗位划分,是业务流程控制、业绩考核、预警体系的基础,不同的机构、部门下的同一职务,则是不同的岗位。内部员工的属性。
岗位的主要适用场景:是面向业务管理,而角色主要是针对权限功能。
角色维护,是系统功能权限设置的基础,相当于权限分组,所有用户对应到相应权限角色,便具有该权限角色所赋予的所有菜单权限和操作权限。
角色中的用户类型:每种用户类型,可能所属的角色不用,如员工可能会有:经理、财务、会计、职员;会员可能会有:VIP、SVIP、SSVIP等。
主要功能包括:角色维护、授权功能菜单、授权数据权限、快速分配用户。
授权功能菜单:
给当前角色设置菜单和权限,依树状形式展示,当前用户管理权限范围内的菜单和权限:
此举是为了更好的提高授权安全,不能越级授权,权限互相牵制等。
是否系统(系统角色):
如果是系统角色,则在不同租户下是共享的,只能有超级管理员维护它。
与用户管理的数据权限关系:
这里角色的数据权限授权和用户管理里的数据权限授权是或者关系。
二级管理员,是由系统管理员指定的,可以分担系统管理员的工作,可以管理用户、分配菜单权限和操作权限一种特殊角色,但它仅具备系统管理员指定范围的管理数据。
二级管理员,主要是给普通用户增加了一个二级管理员的身份,具体功能权限还是有用户管理里分配的角色生效。从二级管理员菜单指定的角色、部门、公司等全部为是否有管理的权限。
主要功能包括:二级管理员维护、设置可管理的部门、可管理的公司、可管理的角色
超级管理员:为开发者使用的最高级别管理员,主要用于开发和调试,有些修改会直接影响系统的正常运行。
系统管理员:为客户方使用的管理员,主要用于一些基础数据配置,如机构、用户、权限、用户字典等。
多租户:可通过 application.yml 的 user: useCorpModel: true
开启多租户,如果系统开启了多租户模式(SAAS模式),则用超级管理员(system)登录后,这里就可进行新增租户管理员,也就是多租户或SAAS用户,新增的租户管理员只可以管理自己领域内的数据(如:部门、公司、用户、自定义的字典数据等)。
多租户的实现方式支持:表结构数据共享方式、模式分离方式、库分离方式,详情见专题文章:SaaS架构、多租户架构
主要功能包括:新增租户管理员账号、新增系统管理员账号、系统管理员账号维护
1、账号密码审计:未修改初始密码、使用简单密码、定期未修改密码、长期未登录、未设置密保、结果导出
2、菜单权限审计:根据菜单及权限查询,都有哪些用户
3、用户权限审计:根据用户查询,都有哪些菜单及权限
在参数配置里找到 “sys.user.passwordModifySecurityLevel” 可设置账号密码修改最低安全等级(默认是 0)
密码等级规则包括:密码长度大于等于8、包含大写、包含小写、包含数值、包含符号
0:不限制等级(用户在修改密码的时候不进行等级验证)
1:限制最低等级为很弱(密码验证规则符合1种的,为简单密码)
2:限制最低等级为弱(密码验证规则符合2种的,为简单密码)
3:限制最低等级为安全(密码验证规则符合3到4种的,为安全)
4:限制最低等级为很安全(密码验证规则符合5种的,为很安全)
菜单管理主要用于配置系统菜单和操作权限。菜单即系统的功能菜单项,操作权限是属于菜单权限的子项,也就是具体的一个操作或按钮,例如:某一个菜单是“商品管理”,其对应的权限可能包括“增加”、“修改”、“删除”、“审核”、“发布”等一系列的权限。
菜单权重是指,什么样的用户或管理员可以操作或访问什么级别的菜单,对菜单的权重级别进行划分,比如:比较重要敏感的菜单,只有管理员才可以拥有。如:超级管理员可以访问二级管理员、系统管理员、超级管理员权重的菜单,但不允许访问默认权限(业务菜单);系统管理员可以访问超级管理员指定给他的系统管理员及以下权限的部分菜单;二级管理员可以访问超级或系统管理员指定给他的二级管理员及以下的部分菜单;普通用户只能访问管理员指定给他的默认权重的菜单。
若想隐藏菜单图标,设置为 hide
即可。
菜单的 URL 规则:
1、如果以 /// 开头,则代表是站点根路径(结果:http://localhost/{href})
2、如果以 // 开头,则代表是工程根路径(结果:http://localhost/{ctxPath}/{href})
3、如果以 / 开头,则代表是管理根路径(结果:http://localhost/{ctxPath}/{adminPath}/{href})
菜单的 URL 支持变量,变量格式 {变量名} 规则如下:
1、{ssoToken} : 单点登录的token编码,url参数中的参数分隔符请使用“%26”进行转义,
例如:{projectUrl}/sso/{ssoToken}?url=/sys/user/list?p1=v1%26p2=v2&relogin=true
2、{userCode} : 当前用户编码
3、{userName} : 当前用户名称
4、{userType} : 当前用户类型
5、{corpCode} : 当前用户编码
6、{corpName} : 当前用户名称
7、{menuCode} : 当前用户类型
8、{menuParentCode} : 当前用户类型
9、{menuParentCodes} : 当前用户类型
10、userCache 中的 Key 可作为变量名
11、yml 或 sys_config 中的 Key 可作为变量名
模块管理是针对系统功能进行模块划分,可对某个模块进行停用和启用。你可以通过API获取到模块的状态。菜单是和模块挂钩的,停用和启用后,对应菜单也同步和停用和启用。
系统启动时会自动检测模块是否安装,自动检测模块版本是否需要升级数据库,如果有数据库升级脚本,则系统自动执行。
注意:若您新增了一个自定义的模块,且指定的“主类全名”必须是一个ClassLoader中存在的类全名称,否则系统会提示“未安装”,启动后会自动更新关联的菜单为“停用”状态。
模块管理提供了代码生成功能,可快速创建模块,并生成对应 Maven工程代码。
新建模块生成的代码,可自定义配置生成模板,添加业务功能等。
参数设置是提供开发人员、实施人员的动态系统配置参数,修改参数不需要去后台修改yml文件,也无需重启服务器即可生效,这里的配置参数开发人员可以通过通用的API进行调用,和获取yml里的参数API是一致的,参数值的读取顺序是:Environment --> JVM中启动的参数 --> application.yml --> 本参数设置中的参数。
字典管理是用来维护数据类型的数据,如下拉框、单选按钮、复选框、树选择的数据,方便系统管理员维护,如果客户要求增加或变更一个配置项,只需要修改对应的字典类型数据即可,不需要修改代码。
主要功能包括:字典分类管理、字典数据管理
行政区划也是区域管理,采用多级维护,主要包括:国家、省、市、县。
主要用来维护动态数据的多语言译文管理,动态数据如:字典名称数据、菜单名称数据等。
国际化资源译文读取顺序:i18n_xx.properties中的译文 -> 本国际化设置的译文。
系统访问留痕的一个日志记录,可记录:接入日志、修改日志、查询日志、登录登出。
日志标题智能拦截,无需你单独写注解去明确日志。日志标题智能读取,规则如下:
1、去掉请求地址结尾的 / 斜杠,根据 请求地址 去找菜单表关联的地址
2、如果还没找到,就尝试通过 Controller 里指定的 权限字符串 去找菜单
3、如果还没找到,就尝试 请求地址 的上一个路径(如去掉 list、save、select)去找菜单
4、找到菜单后,返回 菜单的全路径名,如:系统设置-机构用户-用户管理-编辑
5、如果没找到,返回 未知操作,作为日志标题名
v4.2.3 新增表单提交前后的差异数据分析,新值和旧值比较,较大文本展示差异数据结果。
监控数据源信息、SQL执行效能统计、高并发下分析最慢的SQl有助于优化系统、URI访问统计。
对系统的缓存查询,查看、清理等操作,读取 Caffeine、Redis 数据。
统一的 CacheUtils 工具类操作,实现 J2Cache 二级缓存,解决网络堵塞瓶颈。
监控服务器硬件资源使用情况。
基于 Quartz 框架实现,界面化在线配置,任务调度信息,界面化配置Cron表达式。
MsgPushUtils
工具类发送。