2013-03-12 100 views
0

我一直在使用Grails了幾個月,現在我已經在一些事情上跌跌撞撞......的Grails - 擴展實例

所以我和春天有安全性的小型應用程序安裝以及用戶等

謝謝大家提前

------- --------編輯

爲了使問題更簡單和直接的,忘了類名。

class ABC extends XYZ{...} 

class XYZ{...} 

問題:XYZ的多個對象是否可以擴展ABC的同一個對象? **所以如果我已經有了擴展XYZ1的對象ABC1,我可以創建XYZ2並將它擴展到ABC1嗎?

+0

一些對象擴展另一個對象?我不明白。或者你在談論某個類擴展另一個類? – coderLMN 2013-03-13 06:27:34

+0

我也不明白。首先,你的'ABC'擴展了'XYZ',然後你想要多個'XYZ'來擴展'ABC'?不,不可能。你不能有循環繼承... – herom 2013-03-13 07:14:50

+0

Jinzhao:ABC領域類,ABC對象/在grails中的ABC實例是同樣的事情不是嗎? herom:不,我要說的是XYZ1,XYZ2,XYZ3實例可以擴展ABC1,所以當然不是圓形的 – bedford 2013-03-13 18:28:37

回答

2

看來,用戶應該有一個組。根據你的模型,他們可以有一個或多個組。所以我的建議:

class Group { 
    String name 
} 

協會User

class User { 
    Group userGroup 
} 

class User { 
    static hasMany = [groups: Group] 
} 

在您創建的類,似乎一個組是用戶和我的方式認爲這不是你想要達到的目標。

+0

也許集團是一個不好的例子..但讓我們說這是一個僱主。我知道這個解決方法,但我在尋找,並且我更喜歡一個解決方案(如果可能的話)有一個僱主只能由管理此僱主配置文件的用戶組訪問。謝謝Sérgio。 – bedford 2013-03-12 22:58:00

+0

在這種情況下我的例子適用。您擁有該用戶,並且該用戶擁有一個或多個可以更改數據的僱主配置文件。如果某些用戶試圖訪問他無權訪問的僱主的控制器操作,則可以創建一個返回訪問被拒絕的過濾器。 – 2013-03-13 16:53:29

+0

謝謝我會看看那個,我已經更新了這個問題,所以現在可能會更清楚。 – bedford 2013-03-13 18:38:43

0

您可能需要Hierarchical Roles而不是一組用戶來執行此操作。

+0

謝謝你試圖回答我的問題......我已經重寫了它,因爲它更像是一個普遍的問題。類名使其具有誤導性。 – bedford 2013-03-13 05:55:29

0

對不起,我可能會錯過你的觀點,但它聽起來像是在尋找行級(或實例級)訪問控制。例如,您似乎希望只有某些用戶(特定組中的用戶)能夠訪問(查看,編輯等)對象(例如,相同的組對象)。

如果這是您的意圖,那麼我建議您查看shiro插件 - 在我看來,它比Spring Secuity更像實例級ACL。

http://grails.org/plugin/shiro

還有通過Spring Security的集成四郎ACL一個新的插件。還沒有對自己進行測試,但看起來如果您已經將Spring Security集成到您的應用程序中,它可能是一條路。

http://grails.org/plugin/spring-security-shiro

+0

謝謝你試圖回答我的問題......我已經重寫了它,因爲它更像是一個普遍的問題。類名使其具有誤導性。 – bedford 2013-03-13 05:54:45