组织系统
本章我们从零到一设计一个组织系统,提供组织管理、成员权限等一系列功能,该系统为清林云同款。
该系统为基础版本,主要演示如何使用清林云自定义应用能力,能满足大部分基础需求,但是每家组织的组织系统需求都不相同,所以你也可以在这个基础上再自行添加更多高级的个性化功能,或者搭配其他应用同时使用。
需求
由于清林云是一个企业服务和团队服务,所以未来将会涉及到组织成员的协作等问题,需要一个组织系统来管理人员。
该系统需要有组织的概念,同时要有分组的形式去管理不同的成员。用户可以加入一个或多个分组,我们可以让用户查询到自己的组织和分组。同时利用用户系统应用,加上一个简易的权限系统。
业务流程
以下是清林云的业务流程,你可以根据自身情况调整,选择性调用其中的 API。
首先当用户登录后查询是否有设置默认组织,有则选择默认组织为当前使用组织,没有则选择第一个组织为当前组织。如果没有任何加入的组织,则自动创建一个。
自行创建组织时可以同时引导用户进行组织认证(这是清林云自身业务要求,其他产品可忽略该步)和邀请组织成员。
在组织页面可以管理组织分组和分组成员,组织分组只是概念,可以代表团队分组、公司部门等等。也可以创建邀请链接邀请其他用户进入自己的组织。
同时可以设置分组和分组成员的不同权限。
数据库结构
根据上述业务分析,我们需要以下几张表:
Org 组织
OrgCert 组织认证信息
该表用户清林云系统,如无需认证可忽略。
OrgGroup 组织分组
GroupMember 分组成员
其中需要注意它使用了 C3 引擎,这点在云数据库的这一部分专门进行了描述。
InviteLink 邀请链接
用于邀请其他用户加入组织。
DefaultOrg 用户默认组织
用于在用户有多个组织的情况下,能够设置默认组织从而进入界面即默认。
API
组织系统的 API 逻辑都比较简单,大多为 CRUD,不像用户系统那样调用了很多其他应用。
但是组织系统的重点在于它有权限,可以看到很多 API 有权限要求,防范权限不够的用户操作敏感数据。
Tips: 为了更快创建 API,我们还可以在云数据库页面直接点击利用模板创建来快速完成。
createOrg
创建组织的流程比较多,因为我们在创建组织的同时创建一个组织根分组,代表创建者的组织分组成员,以及一个该组织的管理员权限。
getOrg
查询组织信息,比较简单,权限是所有组织成员都可以查询。
updateOrg
修改组织信息,只有管理员权限可以修改。
createOrgCert
创建组织认证信息,只有管理员权限可以提交。
这里比较复杂是因为我们用了电子营业执照接口,这样能通过官方信息确保该组织的真实合法性,免去审核。
createOrgGroup
创建组织分组,admin manager
权限可以操作:
getManyOrgGroup
查询所有组织分组:
updateOrgGroup
更新组织分组:
deleteOrgGroup
删除分组:
createGroupMember
添加分组成员:
updateGroupMember
更新分组成员信息:
getManyUserOrg
查询用户加入的所有组织:
getManyGroupMember
查询该分组的所有成员:
deleteGroupMember
移除分组成员:
getGroupMember
查询分组成员信息:
createInviteLink
创建邀请链接:
getInviteLink
查询邀请链接:
updateUserRight
修改用户权限:
getUserRight
查询用户权限:
joinOrg
用户通过邀请链接加入组织,会先查询邀请链接的数据,判断邀请次数是否还有,然后更新邀请链接剩余次数。之后判断邀请的是分组还是组织,如果是分组的话还要再创建一个分组成员。
getOrgGroup
查询组织分组:
getManyUserGroup
查询用户在该组织的所有分组
deleteUserRight
删除用户权限
deleteOrg
删除组织
getDefaultOrg
查询用户默认组织
updateDefaultOrg
更新用户默认组织
界面
现阶段清林云控制台就是用户系统和组织系统的界面应用,稍后我们将会分离出一份开源版本供大家参考,请关注后续消息。