當前位置:編程學習大全網 - 腳本源碼 - 說說 Activiti 中的用戶與組的概念

說說 Activiti 中的用戶與組的概念

Activiti 中的用戶與組用於界定任務的候選者與辦理者。組可以理解為角色,屬於某個組的用戶,就可以作為某個任務的候選者或者辦理者。

我們還可以通過 Activiti 的 API 來創建、查詢或刪除某個用戶或者某個組。Activiti 還提供了建立關系的 API 用於綁定用戶與組之間的關系。

(1)創建用戶

首先使用 identityService 的 newUser(String userId) ,創建壹個 User 對象;然後設置其相關屬性,最後調用 saveUser(User user) 持久化該用戶。

(2)查詢用戶

這裏把 userId 作為查詢條件,查詢出剛剛創建的用戶。UserQuery 類中的方法(比如這裏的 userId 方法)大都支持鏈式操作。鏈式操作指的是這些方法都會返回類對象本身,這樣我們就可以像壹根鏈條壹樣調用這些類方法。

(3)刪除用戶

userId 作為入參,調用 deleteUser 方法,就會刪除該用戶。

在 Activiti 中,組的類型分為 assignment 和 security-role ,前者是普通角色,用於分配業務功能權限;後者是管理角色,用於管理組織結構與流程。

IdentityService 類中也有對應的新建、保存、查詢與刪除組的方法。

用戶與組之間的關系是多對多。壹個用戶可以歸屬於多個組;而壹個組也可以包含多個用戶。

利用 reateMembership(String userId, String groupId) 方法,就可以建立用戶與組之間的關系。

如果要查詢指定組下的所有用戶,那麽需要先創建 UserQuery 對象,然後調用 memberOfGroup(String groupId) 方法,就會生成查詢所有隸屬於該組下的用戶 SQL。

而要查詢指定用戶下的組,則需要創建 GroupQuery 對象,然後調用 groupMember(String groupMemberUserId) 方法。

這裏的任務指的是 userTask,即需要人辦理的任務。我們可以把任務先指定給壹個或多個候選人或候選組。這樣,只有這個任務被某個人簽收後,它才能被辦理。

可以在 bpmn 文件中的 userTask 標簽內,通過 activiti:candidateGroups 來指定候選組,形如:

userTask 定義好候選組之後,屬於該候選組的用戶就可以簽收然後辦理該任務。

如果候選組中存在多個用戶,那麽只有其中的某個用戶簽收了任務,那麽其它用戶就看不到該任務咯:

只要任務還未被簽收,候選組內的任意用戶都可以簽收該任務;壹旦任務被簽收,候選組內的其他用戶就無法查看與簽收該任務咯。

也可以跳過候選組,直接把用戶分配給多個候選人。

首先在 bpmn 文件的 userTask 標簽中,定義 activiti:candidateUsers ,多個候選人以逗號分隔,這裏壹般使用 userId。

定義好後,就可以在 API 中,讓指定候選人查看並簽收該任務:

某個候選人簽收後,其他候選人就看不到該任務咯。

  • 上一篇:a50期指是什麽
  • 下一篇:楊德財征婚潘長江唱的是什麽歌
  • copyright 2024編程學習大全網