统一身份认证权限管理
系统
SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
统一身份认证 权限管理系统
使用说明
目录
第1章 统一身份认证权限管理系统
本软件模块的严谨设计定位、精心编码实现、不断维护推广、持续优化改进,主要是 为了实现一个可以高度重复利用劳动成果的工具软件,并有偿提供给所需的人们,另想成 为国人值得骄傲的知名软件功能模块, 可供国内管理类开发人员在日常工作中进行灵活二 次开发利用的模块,开发管理类软件的必备工具之一,同时本软件的系统架构可供广大业 余兴趣爱好者模仿。
本系统模块能提高管理类软件系统的整体质量、提高模块与模块之间的兼容性、提高代码的重复利用率,能够使软件系统架构更加合理、质量更加过硬。从而使得劳动成果最 大程度上重复利用。 有错就修改,每天努力一点点,提高一点点,坚持不懈,不断努力每一天!
软件开发现状分析
新员工没人带,老员工忙着救项目、就算是有空老员工也有疲倦的时候,也有不愿意带 人的,也有不愿意把 简单的东西反反复复教人的,一年又一年,一批又一批人换来换去, 很有可能也懒的带。
有些人喜欢与别人交流,但是大部分 IT 软件开发人员习惯了与计算机沟通,很可能有些不适应与人沟通交流,或者忙着解决他在技术上遇到的难题等。
功能定位、建设目标
一) 实现简易的单点登录功能,用户只要记住一对用户名密码就可以:
随着信息化项目、数字化项目越来越多的被研发实施,需要记住的用户名密码变 得越来越多,随着公司业务规模的扩展、公司的发展壮大或者本身是一个大型的集团公 司,内部前后实施的信息化系统会越来越多,这时也需要记忆越来越多的用户名密码, 浙江杭州市通用权限系统而且后台的管理越来越变得复杂、甚至是变成累赘。 二) 多个管理系统可以用统一的一套后台管理工具进行管理:
管理人员、开发人员、测试人员、实施人员,反复要开发 N 多个大同小异的后台管理工具、开发、测试、修改错误、改进功能,没完没了,全国各地 N 多的公司,N多的开发人员,在这个没多大价值的事情上浪费了 N 多的精力,实施维护人员还要安装、实施、学习、维护 N 多个大同小异的后台管理工具,需要很高的学习与维护成本 三) 建立信息化数字化项目的数据中心,提高基础数据的重复利用率:
随着同一个公司内部实施的信息化系统数量的增加、遇到了将同样的基础数据录 入到 N 多个管理系统中的问题、设想一下,将一个用户信息录入到 10-20 个系统里,有 一个基础数据有变化,需要同时在 N 多个相应的系统里进行修正,这是一个很复杂且毫无意义的、毫无创新的重复工作。
四) 提高同一个公司内开发的多个软件项目的兼容性、可维护性:
有规模的软件公司内部大多是采用项目组的形式管理和开展日常开发工作;但是 由于沟通能力、沟通技巧、沟通效率、项目时间紧等各种复杂的原因,最终会导致各个 项目组之间的分工、沟通、交流不充分,各个项目组之间开发出来的管理系统都不能互 相兼容,功能模块都存在重复建设、分工不明确、职责不明确等问题。
系统优点
一)经过多年的实践不断优化、精心维护、运行稳定、功能完善:
能经得起不同实施策略下客户的折腾,能满足各种情况下客户的复杂需求。 二)编码实现简单易懂、符合设计模式等理念:
上手快,见效快、方便维护,能控制软件项目后期维护风险。 三)有严谨的分层理念、完全符合主流的 SOA 理念架构:
程序可以采用不同的实施策略、架构需求,方便维护、方便扩展。
四)符合 RBAC 的权限理念、同时也能满足国内小型软件项目的灵活性需求:
不仅符合国际通用标准,又能满足国内的小型软件项目的灵活设置需求。 五)不仅支持多数据库也支持多种开发语言、多语言界面:
支持 B/S、C/S 系统,可以支持 Java 语言开发项目的接口功能,SQLServer、Oracle 数据库
系统架构大局观
物理结构图
逻辑结构图:
系统运行环境配置
一)管理端:
本系统以微软的 C#.NET 编程语言开发设计,所以需要在微软的网站下下载最新的.NET Framework 运行环境,管理程序需要运行在 Windows 操作系统上。下载微软的.NET Framework 运行环境请连接下面的网址 二)后台数据库:
本系统支持多种数据库系统,例如 SQLServer、Oracle、MySql,可以按用户的使用 习惯,任意选择其中一种数据库系统。目前提供 SQLServer 版本的数据库,其他版本的数据库需要用户自己通过导入导 出脚本语言的方式进行处理。 软件安装、配置、运行方法 一)软件安装:
由于本系统都是针对软件技术开发者,所以没有做成安装包的方式发行,提供源 码 + 二次开发调用的 API,动态连接库等方式,只要把数据库附加上去,修改好配置文件即可。
二)配置:
源码文件的文档目录结构如下图,主项目为 , 请在解决方案中将 项目设置为启动项目。
配置文件的为 ,设置配置项为 UserCenterConnection,单机版参考配置如下。 双击可执行主程序 ;若数据库连接配置正确,会出现如下登 录界面,如下图。 双击可执行主程序;若数据库连接配置正确,会出现如下登录界面,如下图。 默认情况下,超级管理员的密码为空,点击登录进入后台管理软件。正确登录后 会在操作系统的任务栏右下角区域会出现小太阳的图标 为后台管理程序。 鼠标右键单击黄色小图标, 出现软件主菜单, 根据需求选择自己需要的功能, 如用户 (账户)管理功能等等。如图下图。 第2章 登录后台管理系统 很早的时候曾听别人说,印度软件公司中有些软件开发人员可能一直负责开发系统登录功能,当时觉得不就是一个登录系统的功能嘛把用户名、密码输入好后按一下 登录按钮不就可以了哪里有什么那么多好做的功能后来随着对管理软件的深入理 解、接触过很多客户后才真正体会到,真正做好一个登录窗体也的确不是那么容易的事情, 一个软件的质量是否好设计开发者是否想得足够周到行家从登录窗体上也能知道个一二。例如有多个系统,这些系统是否支持单点登录只用一套用户名密码可以登录多个系统系统登录是否可以进行灵活配置离职人员的处理、 临时授权用户的登录系统问题、一个职员的多个系统账户功能、系统账户的密码策略等等、输入错误密码时的登录等等都能体现出设计、开发人员的水平。 请用\"登录\"不要\"登陆\" 登录系统大家经常犯的一个错误是写成 \"登陆系统\"曾经向资深人士咨询过此事,都觉得写成\"登录系统\"才是正确的,所以建议大家用正确的写法\"登录系统\" 。而不是打仗时登陆岛屿,很多人会忽视这个用词、有些细节的确是应该注意的,有错就改、马上就改。 系统登录 用户登录系统后,不管是什么账户什么时候登录系统,都应该记录登录日志,就像平时管理严格的单位一样,有前台记录外来人员、出入门需要刷门禁系统一样,系统 登录成功后应该更改账户的在线状态,若登录失败的,都应该记录失败日志。输入的密码长度、允许输入错误密码的次数都应该进行, 防止破坏分子用暴力方式猜测密码,需要对暴力猜测密码等行为设置障碍,防止入侵系统行为发生。 第3章 用户(账户)管理 用户(账户)管理模块主要由申请用户(账户) 用户(账户)审核、用户(账户) 、编辑、创建用户(账户) 、设置用户(账户)密码、设置用户(账户)有效状态、删除 用户(账户)等等功能部分组成。 创建新用户(账户)可以由普通用户申请创建后由系统管理审核生效,也可以由系统管理员直接创建用户(账户) ,多种创建用户(账户)的方法可以减少系统管理员的工作量、可以更及时、准确的创建账户,将工作量分摊到多个操作人员、管理员上,可明显提高工作效率。 通常情况下,新同事的用户(账户) 都由系统管理员进行录入创建生效,但是在,一个大集团公司中有多个分公司的情况下或有异地办公机构时都由一个系统管理员录入账号不只是效率高低的问题,由于没在现场工作出错的概率很高,若可以在任何分公司在任何一台电脑上进行申请用户(账户)功能、甚至是直接在网上进行申请用户(账户)步骤, 相对来讲比单一系统管理直接创建用户(账户)的做法工作效率会高一些,自己录入自己的账户信息或者由身边的同事帮助录入信息会更准确一些、及时一些。 自己录入自己的账户信息优点在于想用什么登录名就用什么登录名、这样在日常办公中使用信息系统也会更符合习惯一些、更贴切一些、也不用记过多的用户密码、至少可以使用自己多年习惯的用户名密码来登录业务系统。 当然系统中的用户名是不可以重复的,注册时系统会自动检测是否数据已重复,若是由系统管理员创建的用户名不符合操作者的习惯又不允许用户自己可以自由修改登录用户名是一个很糟糕的事情、 很恼 火的事情。 在比较庞大的组织机构里有分公司有异地办公机构,使用本功能模块,还有分级审核、分级管理功能比较好,就是由某个分公司申请的账号可以由这个分公司的系统管理员进行审核管理,这个账户的权限也可以由相应的管理员进行管理等,把整个系统管理员的工作可以分摊给各个分公司的系统管理员或者授权的操作员, 可以更准确掌握实际工作情况、可以更加贴近实际权限配置、管理等,同时又能支持集中式的管理模式。 申请用户(账户) 申请用户(账户)模块主要是为了灵活、快速申请新账户功能,还没分配到系统账号的用户可这个功能模块里提交申请用户(账户)的信心,由系统管理员审核后,才可以登录业务系统。 准确填写好需要申请的用户名、密码、选择好所在的部门等,点击\"申请账户\"按钮即可进行申请步骤,非管理员申请的用户(账户)需要审核过程,在申请账户的同时,会给相应 的系统管理员发送即时信息,当然在管理员离线状态下时也可以通过邮件提醒方式或者手机短信提醒模式提醒管理者及时进行审核工作。 若需要有审核步骤,只有系统管理员进行审核通过后,所申请的账号会生效后才可以登录到相应的管理系统中 若系统中有未审核的账户,系统会给系统管理员发送在线即时消息进行提醒,管理员可以在第一时间进行审核确认工作,主动提醒可提高工作效率,若无待审核账户,也没必多余的操作,这样会提高系统的友善性,使系统变得更加人性化、智能化。 用户(账户)审核 进入用户(账户)审核功能页面,默认情况下、待审核的用户(账户)数据会列出来,系统管理员直接可以进行审核步骤,若整个系统是按分级管理方案部署的,那只会列出来当前管理员需要的数据列表出来,不是他所负责的待审核数据不会列出来。可以通过账户审核的查询功进行模糊查询数据、可以按审核状态、默认角色等条件进行过滤查询数据,可以更准确、快速查询数据。 编辑功能可以对申请创建用户账号时填写信息进行修改,包括用户名、姓名、默认角色等。 用户(账户)被审核通过、驳回操作时,按注册时填写的邮件地址给用户发送提醒通知邮件,及时通知用户审核结果,审核通过的用户可以及时登录系统进行相应的业务操作,有邮件提醒功能可以提高工作效率、也不用打电话通知。导出功能是将当前窗体中的数据导出为 Excel 格式的数据保存到本地计算机上,方便用户进行二次数据处理。删除功能,选择好需要删除的数据,点删除按钮即可,系统中被操作员误删的数据可以由数据库管理员进行恢复操作,应用系统里未进行物理删除数据、只对相应的数据打了删除标记处理,所以有误操作数据后恢复数据的可行性。 修改用户(账户)时不允许重复用户名,若输入了编号,编号不允许重复,系统会自动会检测数据是否已经重复,已被设置为删除标志的用户(账户)不再重复验证的范围内,系统中的登录用户名也可以由管理员进行修改。用户(账户)生效后,用户也可以自由修改用户(账户) ,这样更符合用户的习惯,用户的排斥心里也会少很多。给每个新用户及时分配个合适的编号,在真实的工作实际情况下,比较难做得到,所以建议可以先不输入用户编号, 等用户的编号被确定下来后可以事后进行设置比较符合实际工作习惯。 用户(账户)管理 用户(账户)管理模块应该是系统管理员最常用的功能模块之一,在这个模块里可以直接创建用户(账户) 、修改用户(账户)信息、可以设置用户的密码。 用户(账户)管理功能也能实现分级管理功能,例如每个分公司管理每个分公司的账户、由超级管理员管理所有的用户(账户)功能。 员工离职时不建议直接删除用户(账户) ,而是停用用户(账户) ,例如员工离职了,很多系统中的历史真实数据记录不应该被删除,员工离职时可能最后一个月的工资还没发放,相关的离职手续也没办理好,应该将用户设置为停用状态(取消有效状态),用户(账户)被随便删除后有可能会引起系统中其他相关数据出现关联错误的隐患。 员工离职后,就把账户删除了,可能会引发一些数据关联性、引用上的错误,例如人走了,以前的工资数据、工作日志数据、项目数据等等都已是发生过的真实数据,不应该把这个用户给删除了,相关数据都应该作为历史数据保留下来、留下历史痕迹才是正确的做法。 按道理,一切数据都不应该进行物理删除,而是进行逻辑删除才对,例如进行了删除操作,只是给数据打上一个删除标志(例如数据表里的 DeleteMark 字段标志设置为 1、表示已经被删除了) 若真需要删除数据,应该由数据库管理员进行真正的物理删除,操作,物理删除一条数据是非常容易,但是由于误删了一条数据,想把这条数据再恢复过来的代价往往是非常昂贵的,可能要花费 10 倍、100 倍的代价才能把这个数据恢复过来,就是提醒了用户是否确认删除用户也按了确认也不应该进行物理删除操作。 添加新用户(账户)的效果图如下,当然这个窗体也可以进行二次开发,按自己的需要增加字段等等,例如把手机号码、电子邮件地址也录入进来或进行一些其他的相关连的事务处理。 系统管理员账户不应该轻易的被删除、用户名、编号等不应该重复的检查,当然不设置编号也是可以的,新来的员工一般都没有明确的编号,可以事后再补充也是很常见的,新建账户时必须要输入编号,而且必须输入个不重复的编号相对友善度不高、属于系统缺乏人性化、考虑不周全。 用户(账户)的导出功能,主要是为了以下几个工作需要,你可能做的是一个会员管理系统,定期需要给会员发送手机短信、宣传邮件提醒等功能,你已经购买了相应的软件或者服务,经常需要把数据导出后,快速导入到相应的另外软件系统里,达到你数据共享的目的。同时定期导出数据到其他文件中也起了一个备份数据的用途,用户的数据是宝贵的资源,是收入来源都是通过用户来的,所以这部分数据的备份工作意识需要强一些,客户的数据都丢了,怎么联系客户、怎么保障稳定的收入呢。 当然数据到导出功能也可以按客户的个性化需要,进行二次开发,按自己的实际需要修改源码或者做一些接口处理等等,甚至直接可以到数据库中进行处理,因为相应的表结构等都有明确的定义。 有些用户的账户又不能失效、又不想让这个用户登录,那可以由管理员来设置这个账户的密码,这样这个用户就不能登录到信息系统里来了,也不用修改无效状态就可以了。 系统中的用户名是允许修改的,这一点很多系统做得都有些不友善,例如系统管理员分配了一个不喜欢的账户名,想修改也改不了,就想改,也麻烦一些,设置是需要一个过程等等,所以自己愿意用什么用户就用什么用户名还是很有必要的,当然系统管 理员也应该能干涉,能管理是非常必要的。 分布式管理 每个公司管理每个公司自己的数据, 日常生活中经常会遇到每个公司需要管理每个公司自己的数据,然后由总公司集中管理所有数据的需求。 我们经常会开发这个系统,那个系统,每个系统经过不断完善优化后我们才会发现,刚开始都是需要很简单的系统,但是往往到最后都会变得很复杂,最终我们还是逃脱不了重复建设。 那我们还不如刚开始的时候, 就用一个考虑的比较充分的配置管理工具来管理我们的 A 系统、B 系统,用这个系统可以配置管理非常复杂的权限配置,不管将来客户的需求怎么变来变去,都能适应,而且不用费什么力气,配置来配置去就可以了,当然一些简单的权限,当然是更容易能达到目的了。 很多时候,我们开发人员开发出来的某个管理系统,往往经不客户的折腾,最后改来改去会变得异常脆弱,要么这里出错那里出错,要么这里不稳定要么那里不稳定,很多时 间都耗费在基础性的建设工作上,这时候我们也需要一个铜墙铁壁额的基础组件,用这个组件来配置管理整个系统的权限,用户,角色等就可以了。 本着把简单的软件做个彻底,彻底的铜墙铁壁,没有错误,没有漏洞,可以重复利用劳动成果的指导思想继续完善几年打造完美的精品。 铜墙铁壁的基础数据是一切管理系统及多个管理系统之间进行整合的核心基础, 没有稳定的基础数据就没稳定的业务管理管理系统, 所以我们开发任何一个管理系统之前就应该准备好铜墙铁壁的基础组件,可以灵活配置管理扩展的\"软件数据中心\",而且是源码全部公开的、数据库结构设计全部公开的核心组件。 1:首先我们应该定义一个操作权限。 我们先登录到系统里 再选操作权限项定义管理菜单进入模块 在此模块里,定义了一个操作权限,叫\"走火入魔权限配置后台管理\",然后把这个权限项定义为数据集权限,意思是设置这个权限时需要设置管理范围。 2:操作的用户需要有相应的权限并且需要设置权限范围, 我们选择用户(账户)权限管理菜单 接着选择目标用户账户,对此账户进行详细的权限设置。 给目标用户, 权限后台管理配置的权限, 并对此权限进行范围设置 (数据集权限设置) 。 当前用户的操作权限范围,可以进行按明细设置,选择详细的权限范围,到此已正确设置账户的权限范围。 3:输入演示数据。 我们先模拟输入一个北京的用户账户申请情况。 我们再输入一个上海的用户账户申请情况。 我们用系统管理员进入审核模块看看,是否有 2 个账户是待审核状态 4:是否达到了每个分公司管理每个分公司数据的目的。 我们用目标账户\"吉日嘎拉\"登录此权限配置管理后台, 进入用户账户审核模块,看看会是什么情况 的确按我们的数据集权限设置范围,只出现了北京的用户审核数据,上海的账户申请数据没出现在当前操作窗体里。 从数据设计的思想来讲,非常简单的。 第4章 组织机构(部门)管理 通俗的讲,就是一个集团公司,划分几个区域,每个区域都有什么分公司,每个分公司都有哪些部门一样,哪些部门又有那些子部门等。 当然也可以是外贸公司的全球性客户、合作伙伴的分布情况管理、或者是一个行政管理单位的按地区划分的行政机构的树型管理。 一般使用信息化系统的公司,大多是人数众多、地域分布相对广有异地分支机构的更迫切使用信息化管理系统,关键商业数据都需要依靠信息化技术及时进行沟通协调,提高办事效率。 软件系统需要充分考虑有多个分公司的情况下,应该如何满足管理上的需要,如何才能做得有条有理这时就需要有组织机构管理的理念来引导系统架构, 可以充分考虑哪个负责人可以管辖哪个区域的数据等, 这样也防止没有经过授权的人越级查看不应该看的客户资料、合同信息等重要商业信息。 大型业务系统 属于大型集团公司,全国各地可能有多个分公司,可以划分区域、分公司等等,或者客户遍布于世界各地,需要严格的按区域划分、组织机构划分等进行严格的控制管理,每个管理员只在相应的管理范围内进行业务管理等。 在大型的信息化管理系统中,往往需要分公司的系统管理员来进行管理各自权限范围内的数据,例如各分公司的用户(账户) 、各分公司的日常管理、权限配置维护等等,各分公司的系统管理员往往对所在公司的情况了解更及时更准确。 当然也可以按集中管理策略也可以,并不是非需要分公司系统管理,这要由公司的管理能力及办事效率而决定。 组织机构管理模块也有适当的整个公司的规划功能,到底设立那些部门、各个部门都有哪些工作职能,人员配置情况,岗位角色规划等等。 中小型业务系统 一般一个上百人左右的中小型公司里所有内部员工都是用的软件系统,主要以公司内部管理系统为主,例如需要规划管理好公司内部的部门设置情况,人员归属情况, 可以由系统管理员进行统一的管理,例如下图。 可以通过组织机构(部门)管理工具快速配置好公司的内部部门设置情况等,这样就可以在相应的业务功能模块采用上图中的数据, 各个模块都可以有效利用部门的划分及相应的部门中的员工数据等。 组织机构的默认排序顺序是非常重要的,若每次显示出来的排序顺序都是乱的,那每天应用系统的人会很不爽,其实大家都有一个习惯,哪个部门排在哪个位置,他们的先后顺序都可以灵活设置比较好,这样可以更贴近客户的习惯,软件的友善性会更高一些。 微型的业务系统 有些很简单的业务系统,也不涉及到组织机构等,只要有几个用户,甚至就是一个用户,连角色什么也不需要,只要这个用户能登录系统,然后所有的事情都可以做就可以了,这时可以不用考虑那么多组织机构管理、角色权限管理等,就把这 2 个功能模块在模块管理中屏蔽掉就可以了。 那一个用户什么都可以操作, 怎么处理比较好呢, 首先可以建议使用 Administrator这个登录名,这个是超级管理员的意思,只要用了这个账户,就是所有的权限都不用配置,就应该有所有的操作权限,或者还可以将用户归于到 Administrators 角色中,这个角色是超级管理员的意思,任何一个账户被归到这个角色中,也有所有系统的操作权限等,是系统中权限最大的用户、角色。 小公司也有发展壮大的可能性、系统里多几个空表,也无所谓的事情,将来扩展起来更好扩展,也不用非要删除了,那么几个表,也不会咬,若多余的功能菜单觉得很碍眼,那可以设置为无效状态,也不会在管理工具里显示出来了,购买笔记本电脑,也不会因为不需要无线网络,然后要求厂商把无线网络模块去掉的吧,说不定哪天就派上用处了。 内外部组织机构 组织机构可以分为内部组织机构与外部组织机构,例如,客户的分布区域属于外部组织机构,一个公司的内部的部门的划分等,属于内部组织机构部分,例如下图所示。 这样做的好处是,组织机构的管理做一套就可以了,不用内部组织机构的管理做一个,外部组织机构的管理又做一套程序,这样就可以集中管理所有的组织机构了,将来由于业务的拓展等,需要数据集权限时,对整个系统的影响会很小,也留下了将来深入二次开发的余地,这个系统数据的条理性也会更强一些。 虽然现在没有严格的数据过滤需要,将来随着业务的深入、公司规模的发展,也有可能在不久的将来, 客户就需要按组织机构进行数据库过滤的实际工作及管理上的迫切需要了。 第5章 角色(用户组)管理 此功能模块可以灵活设置整个系统内的角色/用户组信息,可以进行对角色的添加、修改、删除、分配权限的操作,可以灵活设置某个角色中包含的用户(账户)等。 角色:类似岗位定义、主要是为了系统分配权限、定义工作流程中设置审批节点,提高多用户(账户)的权限分配效率、减少用于账户的变动引起的重复设置权限的工作量等。 用户组:临时性的用户组或由系统用户创建的用户组,可以自由定义,可以定位为自己管理自己所创建的用户组。 此功能模块主要是为了解决如下几个问题: 1: 系统都有哪些角色/用户组 2: 哪些角色/用户组,有哪些成员 3: 哪些角色/用户组,有什么权限 4: 谁可以对角色/用户组进行管理 设置权限、管理其中的用户 5: 谁能管理哪些角色/用户组 在查询内容中输入需要查询的信息,系统会根据输入的查询信息显示相关的角色信息,添加的角色编号、名称不能重复,超级管理员角色不能被删除、不能被更改,是系统默认的角色,角色可以进行排序工作、停用设置、删除、导出等等。 可以在管理页面上,对权限所拥有者的权限进行灵活配置,同时也可以那个角色里有那些用户(账户)等,都可以进行灵活的配置。 只能给角色设置权限,不能给用户组设置权限,本系统认为用户组只是一个临时的群组来处理,需要设置权限的群组按角色来处理。 角色添加、编辑效果如下图,可以设置角色是否有效(停用)标志,不建议删除角色,添加、编辑时角色编号、名称都不允许重复,角色名称是必输项,按表头某个列近些排序后,需要点保存按钮后最新的排序顺序才会生效。 第6章 职员(员工)管理 职员管理功能模块主要是对公司内部员工数据进行管理,有新建员工数据、更改员工信息、员工部门变更等等。 职员(员工)管理功能主要是为了用在企业内部信息化管理系统开发的,在人力资源管理系统中的可二次开发。 职员(员工)管理 创建职员信息时可以同时创建用户账户信息,可以将照片存在数据库中、当然此职员管理页面,可以按客户的个性化需要进行二次开发,可以将需要输入的内容都补充到这个功能界面上,这个界面只是一个快速的参考原型。 默认情况认为一个职员是属于某个组织机构,当然现实上有很多一个人兼职多个岗位、同时兼职多个组织机构的不同岗位的情况,本系统在数据库设计上,提供了一个职员可属于多个组织机构的扩展性,暂不提供支持此功能的相应的设置管理界面。 职员(员工)的排序顺序 技术人员往往不太注意细节,特别是程序员沉迷于程序代码之中,在日常工作中,特别是在中国,很在乎排名问题、例如公司的通讯录中的排名先后、往往有一些含义在里面,例如职位最高的排在最前面、地位最高的排在最前面,这些人的排序顺序随着职位的变化也需要及时的进行调整,日常工作中也常常也需要随时能灵活的导出这些数据,进行重复利用,快速生成一些报表数据等等用。 需要在应用软件里,不仅能灵活的设置员工的部门归属关系,而且还能快捷有效的设置部门中的排序顺序才能符合日常工作习惯、管理上的要求及客户的实际需求。 有些软件项目,就是因为人员的先后顺序不能灵活设定,导致整个软件用起来不顺手,或者找一个人变成很困难的情况,人员的排序顺序乱了,寻找一个人也会变得很麻烦,不能适应日常习惯,友善度会大大降低。 排序码需要人工输入操作上也有些不友好,相对智能的比较好些,不用每个人一个个都调整排序码,只是点点选选就可以了,客户会越来越喜欢用的这样智能的软件。 职员(员工)与用户(账户)的关系 不是所有的职员(员工)都有用户(账户) 例如公司的保洁员,可能是这个公司,的正式职员,但是未必有登录公司业务系统的用户(账户) ,有用户账户的未必全是公司职员,例如公司的客户、供应商也有登录公司业务系统的用户账户,但是这些用户账户不是公司的职员。 有的系统需要有内部职员管理模块例如大多数内部业务信息管理系统,有的系统是外部网站类新闻类系统性质的、这类的系统并不关注内部职员的管理模块。作为一个工具类、可进行二次开发的软件组件,在设计上遵守了最简洁数据结构、所以将内部职员的信息、与用户账户的信息进行了隔离设计,这样系统可以一最简洁的用户账户结构与其他系统可以进行集成工作, 同时又能支持丰富的职员信息管理的内部信息化项目的需要。 职员(员工)导出数据 往往系统只能提供的是有限的数据查询统计功能,甚至报表都是固定的,无法按客户的个性化要求统计查询数据,并打印出相应的统计数据,这时建议有数据的导出功能,可以将数据都导出到 Microsoft Office Excel 文件中,然后客户按自己的要求,进行随意的统计过滤、按个性化的要求进行打印输出相应的统计报表。 职员(员工)离职处理 一个公司,特别是软件开发类公司里,由于到处充满了机会,经常会有新员工入职、老员工离职、岗位变动等等事情发生得也会频繁,员工离职时,不应该把员工的相关数据删除掉,而是把员工账号的有效标识设置为无效状态才对。 将界面上的,有效标注选中状态去掉,就表示此员工的账号被设置为无效状态了,这个用户就不可以登录公司的相关信息系统了,将有效标志选中状态恢复过来后,此用户就允许登录到相应的信息系统中。 当然一个职员的离职相关手续应该是在人事系统里进行配置管理的,可以在客户的人事系统里,通过调用二次开发接口、直接用程序设置为无效状态,这样没必要系统管理员进行重复性的设置工作了。 第7章 内部通讯录 经常会遇到找不到某个同事的联系方式或是某个新来同事的联系方式怎么也找不到,公司发放的通讯录里还有一些很早已离职人员的联系方式等。公司需要及时整理最新的内部通讯录,高效沟通协调,每次都人工更新通讯录一方面是工作效率低,另一方面这个工作也很繁琐、没有技术含量,重复性也多,经常有变动。 当进入一个公司后,往往不知道哪个是哪个,谁叫什么名字,谁是负责哪个方面的若有一个内部通讯录, 可以比较轻易的看到哪个人的照片是什么样的这个人又叫什么名字,这个人又是负责哪个方面的,那可以用更短的时间了解公司的人员结构,更快融入到公司工作当中。 我的联系方式 当前的用户若是公司的内部职员(员工) 登录系统后会出现\"我的联系方式\"菜单,点击此菜单可以设置自己的最新联系方式。 可以在本窗体中还可以设置自己的照片,支持拖动照片功能,直接把照片文件拖入照片控件上就可以了。 内部通讯录 在内部通讯录窗体里,可以设置新员工的通讯方式、也可以快速设置自己的联系方式,可以将当前的通讯录导出到 Excel 文件中。 内部通讯录可以按公司/部门快速过滤数据,方便差找、导出某个分公司的通讯录或者某个部门的通讯录。 可以通过邮件方式将最新的内部通讯录发送给所有的内部员工。 有操作权限的人员能编辑任何一个用户的联系方式,当然也可以批量快速编辑公司的通讯方式。 当然,只有相应的管理操作权限的操作者才可以更改内部员工的联系方式,没有操作权限的用户只能查看内部通讯录、只能修改自己的联系方式。 第8章 即时通讯 即时通讯功能主要是为了实现管理系统的通知信息能即时发送给相应的用户(账 户) ,为了实现即时高效的通知功能。虽然与商业化的即时通讯软件无法匹敌,但是往往内部个性化的管理系统,还是需要即时通知、即时沟通。 发送消息 可以通过发送消息功能菜单,给系统的中的用户(账户)发送即时消息,若对应的用户在线状态或者登录了管理系统的页面,都应该能及时显示出来站内的即时消息。 进入发送信息窗口后,可以选择发送的对象,按选择按钮弹出选择用户(账户)的窗口,选择好目标用户(账户) 输入内容后点发送(S)按键后,即时信息就可以发送给相应的用户(账户) 。 即时通讯 可以通过双击系统图标,出现当前的系统中的内部组织架构图,可以直接选择组织机构中的用户(账户) 、直接发送消息,设置用户的账户的权限等。 若有在线消息出来,可以直接弹出消息,也可以直接回复消息,用户的在线状态会时时更新,与 QQ、MSN 的在线状态很类似。 上图为回复及时信息的功能效果图。 第9章 数据字典(选项)管理 数据字段(选项)管理模块主要是为了灵活控制整个系统中的可选项数据,可以按用户的习惯或者用户的个性化要求进行灵活管理。 同时这部分数据也可以在开发多种业务系统时有一定的重复利用价值,将数据导入到新的业务系统里重复利用,一些选项数据就不用重新反复录入了,可以提高新项目的开发实施速度。 数据字典(选项)管理 这些各种可选项数据经过多年的维护后,也可以当是一种知识库、随着公司的业务积累,越来越完善、越来越齐全,合理性也会更强一些。 某些业务管理系统,就是由于满足不了最终用户的一点点个性化的需求,在日常办公中不能适应客户的实际需求,导致客户使用不便、达不到客户对业务管理系统的人性化方面的要求,最终由于一些小小的需求满足不了客户的要求,导致整个项目实施不顺。 若在开发阶段进行了充分的考虑、 多站在不同客户的个性化需求角度进行了设计, 那开发出来的系统会更符合客户的实际工作需要, 客户也更容易接纳设计出的软件管理 系统。 上图中的每一条数据项对应了后台的一个数据表,把每个选项详细情况放在原始数据结构统一目标表里,这样设计的好处在于:一方面可以任意扩展目标表,增加字段,对其他的目标表没有影响,可以按开发的需要,增加任意字段进行扩展;另一方面,导入导出数据更加灵活, 可以将部分积累好的选项数据快速导入到另外一个信息管理系统中,可以明显提高工作效率,提高数据的重复利用程度,这些数据也是公司的重要业务知识积累部分。 数据字典(选项)明细管理 例如一个人力资源管理系统,可能在同一个软件,在南方实施与北方实施,客户的要求都会有些不同,在大西南实施与东北实施的客户的要求差别也会很大,大西南实施时需要有很多民族选项,很多民族可以从列表里能选择比较适应客户的需要,若在浙江杭州临安实施一个人力资源软件几乎只需要列出 2-3 个民族就可以了,很少有少数民族, 所以使用时也不需要把其他民族都列出来, 能设置其他民族选项为无效状态比较好,也不是说删除才对,应该是有需要时,再把这些设置为有效就可以了。 当然不只是设置为有效无效状态就可以了,还能设置排序顺序比较好,例如在内蒙古实施这个人力资源软件,应该蒙古族排序在第 2 个位置比较好,因为在内蒙古也是汉族人数最多蒙古族人数是其次,当然若在一个民族中学实施这个人力资源管理系统,那应该把对应的少数民族放在第一个位置,更适合用户的使用习惯。 所以一些选项的管理的排序顺序、是否有效状态、是否可以灵活增加选项是非常有必要的,这样软件的多种类型用户的适应性会更强一些。 第10章 系统日志管理 系统里的任何操作、任何的模块的访问、任何服务的调用,用户的登录情况等等都会被记录起来,方便日后追查之用。 若记录日志影响了系统的整体性能,不需要进行日志记录功能,可以在配置文件中设置开关选项,可以取消日志记录功能。 日常应用中,不建议去掉日志记录功能,日志管理模块主要由用户(账户)访问情况、按用户(账户)查询,按模块(菜单)查询,按日期查询等四个功能部分组成。 系统日志管理模块也有彻底清理正式上线前的日志的功能,方便实施人员使用、方便优化系统性能、减少数据库容量、减轻数据库负担,同时定期维护、定期整理系统也是很有必要的后期维护工作内容之一。 用户(账户)访问情况 访问情况管理主要对系统的访问情况进行管理,该模块记录了所有用户登录系统情况、最早访问时间、最后访问时间、访问次数、访问 IP 地址等等,并可以显示当前在线的用户情况,同时可以将访问情况导出到 Excel 文件中,在系统正式上线前,还可以进行重置访问情况的功能,当然还可以按各种字段进行排序等。 有些用户系统都没登录过,就会说这个系统不好用,有些功能模块都没用过几次就说这个系统不好等等都养成了习惯了, 这些问题以通过检查用户的访问情况来体现出来真实情况,这个用户是否真的用了系统是否在经常用到底用了几次一目了然了。 按用户(账户)查询 按用户(账户)查询功能主要是可以按某个用户(账户)的访问情况、使用情况,按指定的用户(账户)的问日志记录进行过滤,同时可以导出查询后的结果进行二次处理。 默认显示当天的访问情况记录,开始日期、结束日期可以自由设置任意查询,在本窗口中可以清除全部的日志记录,只有超级管理员有此权限,其他用户不可以清除日志记录。 按模块(菜单)查询 按模块(菜单)查询功能主要是可以按某个功能模块的访问情况、使用情况,按指定的菜单的访问日志记录进行过滤,同时可以导出查询后的结果。 默认显示当天的访问情况记录,开始日期、结束日期可以自由设置,任意查询,在本窗口中可以清除全部的日志记录,只有超级管理员有此权限,其他用户不可以清除日志记录。 按日期查询 按日期查询功能主要是可以按某个日期范围差找系统的访问情况、使用情况,按日期范围排查系统的日志记录,可以导出查询后的结果进行二次处理。 默认显示当天的访问情况记录,开始日期、结束日期可以自由设置,任意查询,在本窗口中可以清除全部的日志记录,只有超级管理员有此权限,其他用户不可以清除日志记录。 第11章 模块(菜单)管理 模块(菜单)管理模块是针对开发人员、后台管理员对系统进行管理为目的,此模块并不是针对普通的用户日常使用, 在日常管理维护过程中不建议对此功能模块有任何修改,已确保系统的正常运行,尽量避免没必要的麻烦产生比为好。 模块(菜单)的配置通常是在数据库表中保存,功能模块繁多时直接操作数据库难免会产生眼花缭乱的感觉,有一个快捷的管理界面对开发人员来讲还是很有必要的。 模块(菜单)管理是对系统的功能模块(菜单)进行整理维护、设置功能模块的有效性(停用标志) 、菜单名称、排序位置、操作权限关联等等。 在开发某一个软件项目、或者软件产品的过程中,往往菜单的名称、菜单的摆放位置、菜单的分组等等会经常发生变化或者进行调整,这时若菜单管理模块没有灵活的拖拽功能使用起来会很笨拙、 设置是变成一种痛苦, 所以此模块提供了灵活的拖拽功能,而且修改菜单名称、调整摆放顺序等操作时都提供了便捷的操作方法。 在此模块中,可以添加、删除、修改、拖动菜单位置,还可以导出菜单数据。可以将操作权限与模块(菜单)关联起来,有什么操作权限可以访问此功能模块的关联关系。 上图中的含义为:若用户有\"组织架构管理\"权限,那就可以访问\"组织架构管理\"这个菜单。当然也有可能是由于用户有\"P_A\"权限,所以允许访问\"M_A、M_B\"模块(菜单) ,操作权限与允许访问的模块(菜单)之间是多对多的关系。 哪些模块是停用关闭状态,可以设置模块的\"有效\"状态,停用的模块会在整个系统中被屏蔽掉,不会显示在管理系统里。例如不需要职员(员工)管理模块、不需要日志功能、不需要组织机构(部门)管理功能模块等时都可以进行停用设置,将这些模块无效状态去掉就可以达到目的了。 第12章 操作权限项管理 操作权限项管理模块是本系统的核心模块,在此模块里进行操作权限的定义、配置、分类、管理等维护工作,可以在本模块进行操作权限添加、修改、删除、拖动、停用操作权限等功能,进入本模块的菜单如下图。 可以在本窗体中集中管理操作权限、只有系统管理员能有相应的操作权限、操作权限的编号不能重复,在整个系统里需要有唯一性,名称可以重复,操作权限可以任意分类,支持自由拖动整理。 在前期设计、开发设计阶段,往往权限设计反复推敲、推倒、重新设计、昨天刚设置了某一权限、今天又觉得不合理,应该推倒,后天又觉得应该与哪个权限合并才对,没过几天又觉得这个权限又有必要分开来才对,经过反复的不断推倒从来,经过反复重新设计整理推敲过程,才能最终形成比较合理的权限管理方案,这个反复折腾的过程要求权限规划管理模块要有非常灵活的操作性,能经得起客户的反反复复,快速有效的适应客户的整体调整才可以,此权限管理也是经历了多个实际项目的多次实践、不断完善总结出来的结晶部分。 数据列的访问权限,其实也是属于一种特殊的操作权限,也是属于操作权限的一种范畴,例如一个权限就叫\"访问 A 表的 C1 列权限、访问 A 表的 C2 列权限\"就可以了,没必要设计得过于复杂,例如建立一个\"拒绝访问 A 表\"的权限,谁拥有这个权限,就不允许访问 A 表就可以了。 数据集权限是表示拥有某个权限,但是这个权限需要区分数据的作用范围,虽然这个账户有管理权限但是只能管理 A、B 部门的数据,不能管理 C、D 部门的数据等,本系统 的数据集权限,主要是用组织机构数据进行过滤,提供多种可二次开发的接口功能,达到按客户的实际情况进行个性化的数据过滤的要求,并不是所有的权限都能设置数据集权限,只有这个权限被设定为是数据集权限,才可以设置相应的过滤条件,数据集权限设置参考下图。 操作权限关联模块(菜单)的主要用意是:当前的用户(账户)已经拥有了某个权限,那有这个权限的用户(账户)又允许访问那些菜单模块呢是否可以自动进行关联关系设置,不需要重复进行模块访问权限主要是为了解决以上的智能关联问题,将权限与模块进行了关联设置。 操作权限于模块(菜单)之间设置了关联关系,就表示有了某个操作权限后,自然可以访问某些菜单模块了,不需要进行单独的模块访菜单的访问权限了,这样可以题高整个系统的智能逻辑关联关系,使得分配权限更加合理、简洁高效。 第13章 用户权限管理 每天都在发生变化、随着公司内部人员的变动,系统中的用户的角色、权限经常也会发生变化,这时候需要有一个灵活的权限设置功能,可以快速便捷的进行权限的重新划分,权限的重新设置分配等等。 往往开发系统,在上线前就应该做好账户数据的整理、权限的规划、角色的定位,每个账户到底应该有什么权限、到底能访问那些系统资源、到底能做哪些操作,都应该进行详细的规划,在系统实施、测试过程中就应该完成这些正式上线前的准备工作,若一个单位有几百个人,一个系统有几十个模块,这个工作也应该明确指派给一个人来负责比较好,由这个人统一负责规划、设置权限,这样不会乱成一团。 有个稳定的权限配置工具,在项目开始阶段,就可以安排一个人来负责把客户的组织机构数据、用户数据、权限划分,菜单的规划等等,都同步做好,这样可以明显提高并发工作能力,可以精力集中解决业务系统问题上,有效利用有限的人力资源,同时系统的功能模块,又需要依赖一些基础性的测试数据,这样整个开发、实施工作可以同时进行,又在开发前已经把基础数据都准备好,对接下来的开发工作还是很有帮助的。 同时有个稳定的管理工具,不会在这么基础性的东西上反复浪费时间,能提高工作效率,而且客户从项目的一开始就看到了有一些实质性的进展,也会放心一些,也可以明显减少在项目刚开始开发,就进入了高强度的劳动状态,需要处理的事情很繁琐,开发人员更容易提前进入疲劳期,项目失败的概率也高了很多。 第14章 序号(流水号)管理 序号(流水号)管理菜单如下图,主要起多种数据库的兼容性主键生成、数据表的排序字段的生成、单据流水号生成功能等。 本系统的多数据库支持功能,主要是依靠了底层的序号生成器的兼容性主键思想来实现的,例如不同数据库的有不同的主键生成思想,例如 Oracle 数据库用序号功能产生主键的较多、SQLServer 数据库用自增量做为主键的产生方法较多,但是这些方法都有一定的局限性、若遇到数据库移植问题,需要修改很多代码才能达到目的。 用了序号(流水号)管理组件,就可以很轻松的做出多种数据库兼容的主键产生方法、这样有数据库移植问题时,代码的修改量会很少,甚至有可能是是没有代码修改量。 其中单据流水号生成功能,支持灵活的二次开发接口,可以按某天、某月、某年,自动生成某个单据号的生成方法,也能支持并发请求下产生唯一单据号的功能,例如年月日_001、年月_001、年_001 等等形式的单据号形成。 可以在序号(流水号)管理窗体中,人工干预当前的某个单据序号,可以删除某个序号、修改某个序号,并支持导出数据处理。 重置功能是为了在将开发测试阶段产生的订单号清除掉,方便重新开始生成订单号为目的设计的。 增序号、减序号,还是为产生排序码设计的,分别对应最大的排序码、最小的排序码,为了快速实现把数据排序到最前面,或者把数据排序到最后面时用了这个 2 个数据值。 其实本功能模块的用法,很接近 Oralce 数据库中的序号功能,只是提供了更加便捷的用 C#可以直接调用的功能接口。 第15章 系统异常情况记录 系统日常维护、管理、二次开发过程中发生的所有异常信息都会被进行记录,方便开发人员排查错误,可以成为修正错误时成为有力依据。系统中发生的异常记录可以逐条打印清单、发送邮件给相关的开发人员、系统配置上线后,还可以进行统一的整理、清理工作,方便监控在日常使用过程中发生的异常情况。 客户端发生的异常被记录在应用程序相应的文本文件中;服务器端发生的异常情况会被记录在相应的数据库系统里。 进入系统异常情况记录的进入的菜单如下图所示。 系统中的异常信息可以导出到 Excel,方便反馈给开发商,也可以阶段性的清除异常信息,这样最新发生的异常信息可以很方便的觉察得到。 可以将异常信息逐个打印出来,传真给开发商或者直接通过邮件方式发送给内置的错误反馈邮件中。 第16章 修改密码 修改密码模块主要是对用户(账户)密码进行修改操作,在修改密码界面必须输入原密码、新设置的密码后按确定即可完成对密码的修改,若原密码输入错误将无法进行新密码的设置工作, 这也是为了防止盗取不在操作岗位上的员账户的密码的一种保护措施。 新密码需要确认主要是为了防止用户输入错误导致不能正确确认自己的密码,重复输入两次新密码就是为了让用户确认,绝对是没错的。 若系统允许设置空密码、那新密码、确认密码可以不输入,只输入原密码将新密码设置为空,直接按确认就可以了。 系统配置为不允许空密码、那原密码、新密码、确认密码都是必输入项目,会有红色 *标识,如下图。 系统配置为不允许空密码、登录系统时密码也是必须输入的,会有红色 * 标识,如下图。 第17章 重新登录 特别是在软件系统开发、测试过程中经常需要在几个账户之间快速切换,若每次都退出系统重新登录效率低、操作的步骤也多、不连贯。 重新登录系统时,技术层面需要处理的事情主要有:用户的在线状态变化、用户的权限发生变化、用户的菜单显示方式会变化、用户的即时信息收发情况会发生变化,取消登录不应退出当前的信息管理系统应该返回原来操作员的操作界面。 对比一下登录系统界面与重新登录系统的界面,一个是\"退出\"一个是\"取消\"按钮,他们还是有比较大的区别的。 点击菜单中的重新登录菜单项目,返回系统的登录界面,通过登录页面可以重新选择用户名、输入密码进行登录动作而不用退出当前的管理系统。 若用户的权限设置发生过变化或操作员用户(账户)信息等发生变化后建议重新登录系统,重新登录时会默认显示当前的用户名,直接输入密码就可以重新登录操作。 第18章 退出系统 退出系统后,应该更新用户的在线状态,已退出系统的用户设置为离线状态。每次退出系统时都进行提示确认,若客户觉得操作麻烦、还可以进行个性化的配置,直接退出系统不进行确认操作。 点退出系统菜单,会弹出确认对话框。 默认情况下光标停留在选项\"否(N)\"上,点\"是(Y)\"选项就可以退出当前登录的管理系统,按\"否(N)\"选项退回当前的管理系统。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务