2009-11-06 102 views
0

有沒有辦法阻止基於用戶角色的給定更改?Trac阻止工作流程

例如,我不希望任何開發人員能夠將票狀態從「開發」更改爲「關閉」。我希望它能通過'測試',並且只允許'測試''關閉'測試角色的用戶。

回答

5

這是對Trac工作流的簡單調整。對於adding optional testing文檔引述如下:

通過添加以下到您 [票工作流]的trac.ini 節你可選的測試。當 門票處於新的,已接受的或 needs_work狀態時,您可以選擇 將其提交以供測試。當它處於 測試狀態時,用戶獲得 選項來拒絕它並將其 發送回needs_work,或者通過測試並將其發送到關閉狀態 。如果他們 接受它,然後它會自動標記爲 關閉和分辨率爲 設置爲固定。由於所有舊作業 仍然存在,因此票可以跳過此整個部分的 。

testing = new,accepted,needs_work,assigned,reopened -> testing 
testing.name = Submit to reporter for testing 
testing.permissions = TICKET_MODIFY 

reject = testing -> needs_work 
reject.name = Failed testing, return to developer 

pass = testing -> closed 
pass.name = Passes Testing 
pass.operations = set_resolution 
pass.set_resolution = fixed 

現在,所有的票前必須先「通」的狀態經歷了「測試」狀態。

爲了確保只有特定的測試人員可以將票據從「測試」更改爲「通過」,請創建一個名爲TICKET_PASS的新權限(Trac管理員可以在Web UI中執行此操作),並將以下內容添加到工作流程中您的trac.ini部分:

pass.permissions = TICKET_PASS

恕我直言,這是足夠的,只是需要門票經過測試他們通過之前。任何合理的開發人員都知道,除非通過了您所做的任何質量控制,否則他們不應將票從「測試」狀態移動到「通過」狀態。而且由於他們的行爲已經有了歷史,所以他們可能會因爲不適當地將票標記爲「通行證」而受到指責。限制權限可能會阻礙(分散trac管理員),而不是幫助它。

[注:我不得不刪除所有超鏈接到文檔B/C我的代表太低。嘆氣]

+0

正是我想要的!謝謝 – 2009-11-06 16:32:20

+0

關於您的評論 「...創建一個名爲TICKET_PASS的新權限(該Trac管理員可以在Web UI中執行此操作)...」 我還沒有找到一種方法來創建自定義權限web ui。你確定這可以做到嗎?如果是這樣,你能提供一個參考嗎? trac.edgewall.org/wiki/TracPermissions – RjOllos 2009-11-11 21:06:50