一二三应用开发平台使用手册——系统管理-用户-使用说明

概述

对于新系统,如果说初始化组织机构是第一步工作,那么初始化用户则是第二步工作。今天来介绍系统管理模块中的用户使用说明。
对于企业应用,人员是重要的基础数据。
在不少平台和系统中,对“人”的概念进一步细分,将人员与用户区分来。人员对应真实世界中的人,用户则特指具备系统操作账号的人。人员和用户的关系通常是一对一的,当然也不排除个别系统允许1个人对应多个账户。
将人员独立出来,有人员没用户,意味着这部分人员,不需要登录和操作系统,如某些业务场景下的专家库。但是,这类场景下,需要根据业务需求建立单独的实体,因为要更多特定的业务属性需要承载,不会复用平台的人员实体。
考虑到大多数业务场景下,其实没必要细分人员和用户的区别,我的平台中,系统的人员,同时拥有系统的操作账号,即人员和用户实际是一回事,统称为用户。

属性

  • 姓名:用户的名字,核心属性。
  • 账号:登录系统的编码,全局唯一。根据企业管理习惯,可能是入职顺序号(工号),也可能是姓名按照一定规则的变种,如李建国编为jgli。
  • 密码:登录系统的密码,新用户创建时会设置一个默认的统一密码。该密码实现了配置化,修改系统配置文件application.yml中的platform-config.system.userInitPassword属性即可。如果对系统安全性要求更高,则可以扩展具体实现方式,生成随机密码。平台会采用单向加密算法处理后存库,系统管理员即使直接查看数据库也无法知晓原始密码是什么,只能通过系统重置密码。
  • 组织机构:用户归属哪个组织机构。大多数平台或系统用户与组织机构是多对一关系,个别情况下是允许多对多,如某集团副总裁同时兼任某公司的总经理,不过这种岗位和权限上的控制,往往不是通过用户挂靠在多个组织机构下这种方式来实现,而是通过角色来实现。
  • 状态:用户比组织机构多了一个锁定状态,用于某些特定场景临时限制用户登录系统,如密码输出错误次数过多。注意,平台会通过调度任务来自动解锁,因此不能通过人为设置用户状态为锁定,来达到长时间禁止用户登录系统的目的,此时应使用停用功能。
  • 强制修改密码:系统安全考虑,新建用户或管理员重置密码后,将该标识位设置为是。用户登录系统时会判断该标识位,如为是,则弹出密码修改对话框强制用户修改密码。
  • 登录失败次数:系统安全考虑,记录用户登录输入错误密码的次数,达到预设次数后,将该用户锁定,避免暴力破解密码。预设次数通过系统管理模块下的系统参数来设定。
  • 锁定时间:记录用户锁定时间,平台通过调度任务每隔一定时间来验证用户锁定时长是否超过设置时长,若超出,则解除锁定。
  • **职位:**这是实际是职位的描述,仅供参考,不用于业务逻辑处理。
  • 性别、出生日期、手机号、邮箱、排序:用户基本属性,没什么好说的。

可扩展
直线领导:可以考虑将该用户的直接上级领导作为属性维护,主要用于流程审批,需要跟工作量集成部分整合,方案未定。

功能项

常规功能

新增:新增单条数据。
修改:修改单条数据。
删除:删除数据,这里的删除跟上文中的设置状态停用不同,是真正的删除(逻辑删除)。对于确认录入错误的数据,尚未被单据使用,应当彻底清理掉而不是将其状态设置为停用。删除时系统会清理为该用户关联的用户组(角色)数据,避免在用户与用户组关联表中残留垃圾对应关系数据。
查询:多条件组合,模糊匹配当前系统中的数据。
查看:查看单条数据。
复制新增:以某条数据为基础,拷贝方式快速创建数据。

扩展功能

启用、停用:快速设置状态。
重置密码:用户忘记密码时,联系系统管理员,由系统管理员重置密码。
手工解锁:管理员手工解除账号锁定状态,恢复正常,平台自动解锁调度任务一般间隔只有5分钟,所以该功能一般情况下用不到。
批量导入:通过预置的excel模板,填充数据,上传并批量导入,导入时附带了数据验证。注意,本功能的目的主要是实现用户初始化功能,功能实现内部是新增,如数据已存在,会提示。批量导入功能在规划设计上不具备批量更新数据的职责,用户的更新需求,通过系统修改功能直接操作,。
批量导出:批量导出到excel表中,该功能与数据查询进行了结合,将查询结果导出,因此既可以导出全量数据(查询条件为空),也可以只导出经过查询条件筛选后的数据。
下载模板:辅助功能,下载批量导入的exce模板。
设置用户组:这里的用户组等同于权限控制体系中的角色概念,用户可以隶属多个用户组,用户组关联权限项,从而实现权限控制。这里只是简单一提,后面会详细介绍平台的权限控制。

注:若需了解该功能excel导入导出相关设计与实现,参见https://blog.csdn.net/seawaving/article/details/131299250。

界面设计

树表查询

用户主要通过组织机构来管理,采用左树右表的方式,左侧为组织机构树,参与数据查询。点击树节点时自动查询该组织机构下的用户。
右侧上方为查询区域,可灵活组合多种查询条件,筛选需要的数据。
此外,为应对全局搜索的需求场景,附加了一个“查询全部”的复选框,勾选后将忽略当前选择的组织机构。
image.png

新建/修改/查看

这三个功能界面差不多,操作上略有差异。
新建会打开空白表单,部分属性以默认值填充。
修改则会查询数据库,填充实体属性值,在此基础上修改。
查看也是查询数据库填充实体属性,但不能保存。
image.png

Excel模板

对于用户归属的组织机构而言,有可能存在重名,如生产一部和生产二部两个部门下各存在一个名称为“1号车间”的部门,这时候通过上级名称就没法确定这条数据到底要导入到哪个部门下,因此引入了组织机构编码。编码是全局唯一的,系统处理时优先找编码,编码为空的时候再通过名称来处理,如还是找到多个同名部门,则放到一个名为“未分配”预置组织机构里,转人工处理。
image.png

数据导出结果

image.png

开源平台资料

平台名称:一二三开发平台
简介: 企业级通用开发平台
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT
欢迎收藏、点赞、评论,你的支持是我前行的动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/619402.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人网站制作 Part 19 添加在线聊天支持 | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加在线聊天支持🔨使用在线聊天工具🔧步骤 1: 选择在线聊天工具🔧步骤 2: 注册Tawk.to账户🔧步骤 3: 获取嵌入代码 &…

LeetCode 53. 最大子序和

解题思路 相关代码 class Solution {public int maxSubArray(int[] nums) {//f[i]是以nums[i]结尾的连续子数组的最大和。int f[] new int[100010];f[0] nums[0];int resnums[0];for(int i1;i<nums.length;i){f[i] Math.max(f[i-1]nums[i],nums[i]);res Math.max(res,f…

SQLite---调试提示(十九)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite Android 绑定&#xff08;十八&#xff09; 下一篇&#xff1a;从 SQLite 3.4.2 迁移到 3.5.0&#xff08;二十&#xff09; ​ 以下是 SQLite 开发人员跟踪、检查和了解 核心 SQLite 库。 这些技术旨在帮助理解 核…

【前端工程化指南】什么是版本控制系统?

什么是版本控制系统 想必大家在多人开发时一定会遇到这样的问题&#xff1a; 每次集中合并大家的代码都要通过U盘、网盘等各类传输工具集中代码&#xff0c;非常麻烦。在多人同时修改同一文件或相同部分代码时&#xff0c;可能会产生冲突&#xff0c;开发人员需要手动比较代码…

内网渗透-Earthworm的简单使用(内网穿透工具)

Earthworm的简单介绍&#xff08;一&#xff09; 文章目录 EarthWorm下载地址1. 普通网络 1.1 跳板机存在公网IP 1.1.1 网络环境1.1.2 使用方法1.1.3 流量走向 1.2 跳板机不存在公网IP&#xff0c;可出网 1.2.1 网络环境1.2.2 使用方法1.2.3 流量走向 2. 二级网络 2.1 一级跳…

「51媒体」中小初创企业如何做好媒体宣传?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 中小初创企业在做媒体宣传时&#xff0c;由于通常资源有限&#xff0c;需要更加精明地使用外部资源来提升品牌知名度和业务成长。利用专业的媒体服务商可以是一个非常有效的方法。 明确目…

C/C++基础----内存相关

malloc分配内存 用法 参数为要开辟内存的大小&#xff08;字节为单位&#xff09;返回值为void*,所以要强转一下语法&#xff1a;malloc()动态开辟20个字节的内存&#xff0c;代码&#xff1a;#include <iostream>using namespace std;int main() {int *a (int *) mal…

集合体系java

Collection:单列集合&#xff1a;每个元素只包含一个值 Collection集合存储的是地址 Collection的三种遍历方法如下 //迭代器是用来遍历集合的专用方式&#xff08;数组没有迭代器&#xff09;&#xff0c;在java中迭代器的代表是Iterator //boolean hasNext():询问当前位置…

排序算法-基数排序

基数排序是一种非比较排序算法&#xff0c;它将待排序的数字按照位数进行排序。基数排序的思想是先按照个位数进行排序&#xff0c;然后按照十位数进行排序&#xff0c;接着按照百位数进行排序&#xff0c;以此类推&#xff0c;直到最高位排序完成。 基数排序的步骤如下&#x…

攻防世界13-simple_php

13-simple_php <?php show_source(*__FILE__*);//高亮文件 include("config.php");//文件包含在内 $a$_GET[a];//获得a $b$_GET[b];//获得b if($a0 and $a){ //判断a是否满足条件echo $flag1; //满足就输出flag1 } if(is_numeric($b)){ //判断b的条件&#x…

分享一些有趣的 Linux 命令

1、sl 会显示一辆火车穿过你的终端屏幕 2、cmatrix 在终端中显示类似于《黑客帝国》电影中的绿色数字雨效果 3、fortune 显示一个随机的名人名言或者笑话 4、cowsay 让一头牛说出你输入的话 5、toilet 在终端中将输入的文本以艺术字体的形式呈现 6、figlet 类似于 toile…

linux进阶篇:使用Apache搭建文件服务器目录

Linux服务搭建篇&#xff1a;使用Apache搭建文件服务器目录 一、关于文件服务器 ​ 在一个项目中&#xff0c;如果想把公共软件或者资料共享给项目组成员&#xff0c;可以搭建一个简易的文件服务器来实现&#xff0c;只要是在局域网内的成员都可以通过浏览器或者wget命令来下…