快生活 - 生活常识大全

系统的权限管理与流程设计


  本文介绍CRM系统的项目权限管理和用户报名流程的设计。
  CRM(Customer Relationship Management)–客户关系管理系统,是指利用软件、硬件和网络技术,为企业建立一个客户信息收集、管理、分析和利用的信息系统。以客户数据的管理为核心,记录企业在市场营销和销售过程中和客户发生的各种交互行为,以及各类有关活动的状态,提供各类数据模型,为后期的分析和决策提供支持。
  简而言之,CRM系统是主流高效的客户管理系统,在维护客户,挖掘新客户,规避客户流失及企业内部恶意竞争,降低营销成本上有非常重要的作用。
  项目背景
  笔者本次服务的甲方,在培训行业深耕多年,由于成立时间较早,所以在信息化管理较为薄弱。目前管理用户的方式还是通过excel录入管理,并且通过邮件进行传输。这样的管理方式,不仅效率低下,而且一定程度上,容易出现数据泄露。
  于是甲方希望能够有一套CRM,能够覆盖培训的招生,报名,学生管理等流程。由于较高的保密需求,所以需要进行研发团队开发完成后,在公司内网部署。
  在征得甲方同意后,本文仅介绍项目权限管理和用户报名流程的设计。
  基于RBAC(Role-Based Access Control)的权限管理
  RBAC模型
  一个完善的管理系统底层逻辑,权限管理,往往是系统架构的第一步。权限管理中,通常4个元素是无法回避的,分别为:
  用户(User);角色(Role);权限(Permission);资源(Resources)
  在数据库表结构设计中,我们通常使用一对多(OneToMany)或多对多(ManyToMany)管理用户(User);角色(Role);权限(Permission)。
  用户;角色;权限关系示意图
  在完成了以上基础逻辑确定以后,我们能够很轻易搭建起一套基本的权限体系:即创建用户(Create User);分配角色(Assign Role);赋予权限(Grant)。
  流程分析
  管理员(Admin)流程:
  创建菜单及功能,开发人员路由配置菜单对应URL
  创建角色,分配角色可访问菜单(可访问URL)
  创建用户,为用户配置对应的角色(Role)
  用户操作流程
  CRM系统左侧为菜单栏,用户登陆后,系统根据分配给用户的角色,以及角色对应的权限对菜单进行展示。
  在用户进入菜单后,我们还需要二次判断当前用户的读写权限,对部分页面的内容或者操作进行屏蔽。
  原型设计如下:
  以上是简化版的RBAC权限管理设计方案,在现实生活中,还需要根据实际的情况,权限管理中,是否需要包含字段权限,以及字段权限的规则(只读,读写,不可见)。
  报名流程设计
  需求分析
  培训机构在进行招生时,通常的流程是:
  用户咨询–销售记录用户咨询内容–销售跟进用户–用户填写报名信息–销售审核–用户付款–创建学员信息。
  报名流程图
  以下是对应流程中,关于方案设计的主要信息:
  主要对象:销售,用户;
  操作设备:PC端为主,可能出现移动设备;
  支付需求:是;(需要用户申请对应的账号及API)
  网络需求:是;
  其他:部分字段脱敏处理
  操作人员:销售
  原型设计
  新建用户/用户详情
  在此,我们简化了部分字段,给读者展示了一个简单的新建用户/查看详情页。由于B端系统的非标性,在某些情况下,需要我们调整其中的功能权限和展示字段。这就需要我们联系前期设计的权限管理,实现功能与需求的高度适配。
  方案总结
  由于本次定制程度较高,且开发周期时间不长,所以在底层架构设计中,我们多采用比较成熟的方案,如RBAC权限方案,高复用度的前端页面,基于角色权限的二层级菜单。减少了开发量和部分未知风险,在规定的时间内完成了开发任务。
  发布本文,只为抛转引玉,希望能够与各位B端优秀的产品经理有更多的交流机会。如文中出现纰漏,也欢迎大家指正。
网站目录投稿:如旋