当前位置:   article > 正文

golang flow工作流引擎-自己挖坑自己填

golang flow

Flow质量流程挖坑自己填

——待完善

一、问题和坑

1.为何手机上添加后自己却看不到呢

因为手机登录后记录微信的openid,每个微信对应唯一的openid,不管这个微信切换哪个用户名来登录“鲁班宝”小程序,它都是一个openid。在engineercms这个服务端,它只记录这一个openid对应第一次登录的用户名。所以,不管用户切换哪个用户,小程序都只认第一次登录用的用户名。

因此,当用户添加文章后,小程序里要找出用户id,然后在addquality里将接收groupid设置为这个用户id,他才能看到。——服务端来获取这个single group ID。

比如qin.xc,他的用户id是8,add里就要设置gid为8。

Cms这边根据openid查出用户名为qin.xc,到mysql流程数据这边查qin.xc用户名(firstname),其id为8。

2.为何发布的质量文章没有提交流程等权限呀?

要将用户赋予权限。实际上用户是无法直接赋权(permission)的,见下文。

上图user的firstname为qin.xc,到下图group name为qin.xc@163.com

到下图的group_role表中这个qin.xc用户组的角色role。

注意,它只认group,不认user,所以,user一旦建立,自动建立一个对应的group(同名),叫single group。

加上这个用户组的角色,这个角色提前已经定义好了权限permission(见下文)。小程序上这个用户就有了提交按钮了。

实际使用过程中,不必为single group设置角色role和权限,新建一个group(比如下文中的all这个用户组),里面加入多个用户,再将这个group赋予角色role,将角色role赋予权限permission。

二、下面讲怎么配置流程吧——很绕

先在草稿上画好流程。画好流程后,再到系统上一步步设置。

①先画节点(node)。

如下图:

发起

审核

 

上图中nodetype是什么?它代表节点连接的逻辑,比如开始节点,结束节点,中间的节点有单线(linear)的,有多分支(branch)的对吧(这个没测试过)。Doctype(文档类型)是下文提前定义好的,见后面。Docstate(状态)也是下文提前建立好的,见下文。

②再画连线(transition)

节点之间是怎么连接的呢,节点先后顺序逻辑需要流(transition)来定义,但是流不是直接针对节点node的,它是针对状态state的,哈哈。

③当文档处于这个节点时,给文章起一个状态(state)名字。

④当状态(state)改变时,需要动作(action)来让它改变。

或者说,从一个节点(node)到另外一个节点,需要一个动作(action)

⑤那么谁有权限(permission)来执行这个动作(action)

先要知道这个概念:

用户user——用户组group——角色role——权限permission;

每次新建一个user会自动建立一个对应的single group;group则自己建立;

所以group有single group和group,大写字母S和G,前者用于给个人用,比如添加文章。后者用于角色用,比如赋权;

角色role只能对应group或single group,无法对应user;

Permission只能对应角色role,无法对应group或user;

一个用户组可以加入多个用户。这个用户组必须设置为G,而不是S。

比如all这个用户组:

用户组建好后加入了几个用户后的效果:

 

Mysql数据库表中的样子:

先定义角色(role),这个略过,仅仅命名个role角色名字而已。

然后添加角色拥有动作action的权限(permission)

 

添加完效果如下图所示。Action未直接显示,是vue界面bug,待修复。

 

上述流程只是从理解角度来叙述。而实际定义角度,需要按照界面左侧菜单,一路next下来,比如先要定义doctype(某一类流程,比如质量类,安全类)——docstate……

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/746790
推荐阅读
相关标签
  

闽ICP备14008679号