2013-03-12 1 views
0

Я работал с Grails в течение пары месяцев, и я наткнулся на что-то ...Grails - Продление экземпляра

Так у меня есть небольшое приложение с Spring Security установлен и сделал пользователь и т.д.

Спасибо всем заранее

------- -------- EDIT

Чтобы сделать вопрос более простым и прямым, забыть имена классов.

class ABC extends XYZ{...} 

class XYZ{...} 

Вопрос: Может ли несколько объектов XYZ расширить один и тот же объект ABC? ** Итак, если у меня уже есть объект ABC1, который расширяет XYZ1, могу ли я создать XYZ2 и расширить его ABC1?

+0

некоторые объекты, расширяющие другой объект? Я не понимаю. Или вы говорите, что какой-то класс расширяет другой? – coderLMN

+0

Я тоже этого не понимаю. во-первых, ваш 'ABC' расширяет' XYZ', а затем вы хотите, чтобы несколько 'XYZ' расширяли' ABC'? нет, невозможно. вы не можете иметь круговое наследование ... – herom

+0

Jinzhao: класс домена ABC, объект ABC/экземпляр ABC в grails - это то же самое, не так ли? herom: Нет, я могу сказать, что экземпляры XYZ1, XYZ2, XYZ3 расширяют ABC1, поэтому, конечно, не круговые – bedford

ответ

2

Кажется, что у пользователя должна быть группа. В зависимости от вашей модели они могут иметь одну или несколько групп. Поэтому мое предложение:

class Group { 
    String name 
} 

Ассоциация с User:

class User { 
    Group userGroup 
} 

или

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

В пути, который вы создали классы, кажется, что группа пользователь и я думайте, что это не то, чего вы пытаетесь достичь.

+0

Возможно, группа была плохим примером ... но позволяет говорить, что это был работодатель.Я знаю об этом обходном пути, но я ищу и предпочитаю решение, в котором я могу (если возможно) иметь Работодателя, доступного только для набора пользователей, которые управляют этим профилем Работодателя. Спасибо, хотя Сержио. – bedford

+0

В этом случае применяется мой пример. У вас есть пользователь, и у пользователя есть один или несколько профилей работодателя, которые он может изменить. Вы можете создать фильтр, возвращающий доступ, если кто-то попытается получить доступ к действию диспетчера, который у него нет. –

+0

Спасибо, я посмотрю на это, я обновил вопрос, так что, возможно, теперь это более ясно. – bedford

0

Для этого вам может понадобиться Hierarchical Roles, а не группа пользователей.

+0

Спасибо за вашу попытку ответить на мой вопрос ... Я переформулировал это, потому что это был скорее общий вопрос. Названия классов сделали его вводящим в заблуждение. – bedford

0

Извините, мне может не хватать вашей точки, но похоже, что вы ищете контроль доступа на уровне строк (или на уровне экземпляра). Например, кажется, что вы хотите, чтобы только определенные пользователи (в пределах определенной группы) могли получать доступ (просмотр, редактирование и т. Д.) Объекта (например, тот же объект группы).

Если это ваше намерение, я бы рекомендовал посмотреть на плагин с сиро - он, на мой взгляд, лучше ACL на уровне экземпляра, чем Spring Secuity.

http://grails.org/plugin/shiro

Там также новый плагин, который интегрирует Shiro ACL через Spring Security. Не проверял сам, но похоже, что это может быть путь, если вы уже интегрировали Spring Security в свое приложение.

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

+0

Спасибо за вашу попытку ответить на мой вопрос ... Я переформулировал это, потому что это был скорее общий вопрос. Названия классов сделали его вводящим в заблуждение. – bedford