Flowable實戰(七)使用者和組

2022-09-14 23:51:19 字數 2067 閱讀 6915

在流程中,最重要的參與者是使用者。流程定義了任務何時需要使用者參與,什麼使用者可以參與。

組可以理解為我們常說的角色。

flowable中內建了一套簡單的對使用者和組的支援,身份管理(idm identity management),但從flowable v6起,該元件從flowable引擎模組中抽出。這是因為它不是flowable引擎的核心內容,而且在很多企業應用中,常常需要結合現有應用系統的使用者和組,並不使用或需要flowable提供的使用者和組。

使用者和組主要在使用者任務(user task)中使用。當流程執行到達使用者任務時,會為指派至該任務的使用者或組的任務列表新增乙個新任務。

使用者任務可以直接指派(assign)給使用者。

jinyangjie

只能指定乙個使用者作為任務的humanperformer。在flowable術語中,這個使用者被稱作辦理人(assignee)。擁有辦理人的任務,在其他人的任務列表中不可見,而只能在該辦理人的個人任務列表中看到。

上面的標準用法比較笨重,使用flowable自定義擴充套件以減少複雜度。

通過taskservice獲取指定使用者待辦理的任務

listtasks = taskservice.createtaskquery().taskassignee("jinyangjie").list();
有時候,我們並不知道任務的具體辦理人是誰,但知道哪些人是潛在的辦理者。比如請假申請時,我們可以向部門經理或者專案經理申請,只要他們中的乙個辦理審批即可。

在流程中,使用potentialowner(潛在使用者)結構指派使用者的候選任務列表。

user(jinyangjie)

flowable自定義擴充套件:

獲取潛在任務,或者說候選任務列表的方法:

listtasks = taskservice.createtaskquery().taskcandidateuser("jinyangjie");
在候選列表中,當其中乙個潛在使用者申領(claim)任務後,即代表該任務已經指定由申領人辦理。

group(leader)

flowable自定義擴充套件:

獲取潛在組任務列表方法:

listtasks = taskservice.createtaskquery().taskcandidategroup("leader");
user(jinyangjie), group(leader)

如果並未指定給定字串是使用者還是組,引擎預設其為組。

idm(身份管理 identity management)是flowable提供的使用者和組的管理元件。

預設情況下,idm引擎在flowable引擎啟動時初始化並啟動。idm引擎管理自己的資料庫表結構及下列實體:

歷史與當前進行中的流程例項都在資料庫中儲存歷史實體,因此可以選擇直接查詢歷史表,以減少對執行時流程例項資料的訪問,並提高執行時執行的效能。

實際應用中,我們需要自定義指派使用者和組,下面我們通過任務***實現自定義指派。

在使用者任務上新增建立事件(create event)型別的***,呼叫自定義指派邏輯:

傳遞至tasklistener的delegatetask,可用於設定辦理人與候選使用者/組:

public class myassignmenthandler implements tasklistener 

}

事實上,flowable在執行時並不做任何使用者檢查。例如任務可以分派給任何使用者,而引擎並不會驗證系統中是否存在該使用者。這給我們留下了很大自定義使用者和組的空間,這樣當我們將flowable嵌入應用時,可以與應用已有的使用者和組結合使用,也可以結合ldap、active directory等服務使用。後續篇章中,我們將會介紹flowable與ldap的整合。

使用者和使用者組

許可權 建立user1和user1組,並且user1和user1組擁有ssh登陸許可權。假如 擁有ssh登陸許可權的組為test,不想新建user1使用者對應的組。在新建user1使用者後,指定user1的組為test即可。擴充套件 乙個使用者可以屬於多個組,不過有個主屬組而已。受定式思維影響 以為...

使用者和使用者組

使用者資訊檔案 etc passwd 影子檔案 etc shadow 組資訊檔案 etc group 組密碼檔案 etc gshadow root localhost vim etc passwd root x 0 0 root root bin bash bin x 1 1 bin bin sbi...

管理本地Linux使用者和組之使用者和組

系統中每個程序都作為乙個特定使用者執行,每個檔案歸乙個特定使用者所有。對檔案和目錄的訪問受到使用者的限制。與執行程序相關聯的使用者可確定該程序可訪問的檔案和目錄。student desktopx id uid 1000 student gid 1000 student groups 1000 stu...