2013-05-13 99 views
0

所以,我已經做了RBAC和ACL的一些研究,但所有的例子都非常「一維」,不很適合我的需要(我認爲至少)。先進的基於角色的訪問控制

所以,我有什麼是國家有一個總裁vicepresiCoach1

目前我有14個國家,每個角色不能有一個不同勢國權。

此外,我有俱樂部經理教練球員

將最好的解決辦法是的是什麼?

編輯:用戶既可以是一個國家的總統,並coach1的另一個雖然是一個俱樂部的球員,等等。

回答

1

你的問題並不完全清楚,但據我可以理解,一個人可以是副總統在一個國家,但在其他國家是沒有人,這是什麼困擾你 - 你怎麼建模呢? 如果我得到了問題的權利,然後在RBAC實現tnat我使用(寫在PHP Yii框架)有這個東西叫做「業務規則」。業務規則,這是一個PHP代碼片段返回true或false,可貼,或定義爲特定角色(一個簡單的例子),這意味着每一個被檢查的人的時間,如果他有這個角色「業務規則,它不足以讓這個人擔任這個角色。如果一個biz規則附加到這個角色,它就會運行,並且來自該代碼片段(布爾)的答案決定了這個人是否真的具有這個角色。 換句話說,你在這裏獲得了額外的靈活性,所以不是:

一個人有'副總統'的角色嗎? - >如果他有這個角色,他是每個國家的副總裁(!...)。

你可以有一個更微調檢查這樣的:

的一個人對一個國家的副總裁的角色? (A國被作爲參數傳遞給RBAC層,已經有在其手中的「人」的數據結構傳遞 - > RBAC層運行BIZ規則段的代碼,其中寫入,檢查該特定用戶的親和對某些國家和返回布爾值,它確定用戶是否是A國的副總裁

所有有剩下的就是將邏輯成實施唯一性,每個國家1副總裁在你的DB(選擇)的應用你就完成了!

希望有幫助。

+0

(看看我的編輯。)這是否意味着我必須做出單個行的ro那麼我有多少個國家,加上俱樂部也一樣? – GlomB 2013-05-13 14:09:36

+0

閱讀您的評論。不知道我完全理解它。你的意思是一個用戶可以在一個國家有一個角色,在另一個國家有另一個角色?如果我理解你沒問題,那麼我不確定RBAC是你的出路。也許一個自定義組件可以「回答」客戶關於角色分配的效果最好。我不確定。 – 2013-05-14 08:32:02

+0

無論如何感謝您的回答,它讓我更深入瞭解哪些RBAC可以導出:)我將最終在用戶表中擁有所有權限的字符串。 – GlomB 2013-05-14 11:14:44

相關問題