2013-03-12 4 views
0

내가 지금 몇 개월 Grails의 작업 봤는데 뭔가 우연히 한 확장 ...Grails에 - 인스턴스

그래서 나는 봄 보안이 작은 응용 프로그램이 설치 등 사용자

을 만들었습니다

사전에 여러분 모두 감사합니다

------- 편집 --------

가 똑바로 앞으로 문제는 더 간단하고 만드는 클래스 이름을 잊지합니다.

class ABC extends XYZ{...} 

class XYZ{...} 

질문 : XYZ의 여러 개체가 ABC의 동일한 개체를 확장 할 수 있습니까? ** 그래서 이미 XYZ1을 확장하는 객체 ABC1을 가지고 있다면 XYZ2를 생성하고 ABC1을 확장 할 수 있습니까?

+0

일부 개체가 다른 개체를 확장합니까? 나는 그것을 얻지 않는다. 아니면 다른 클래스를 확장하는 것에 대해 이야기하고 있습니까? – coderLMN

+0

나는 그것을 얻지도 않는다. 먼저'ABC'가'XYZ'를 확장하고 있다면,'XYZ'가'ABC'를 확장하기를 원합니까? 아니, 불가능 해. 당신은 원형 상속을 가질 수 없습니다 ... – herom

+0

Jinzhao : ABC 도메인 클래스, ABC 개체/AGA의 인스턴스 grails에서 같은 것은 아닌가요? herom : 아니요, 인스턴스 XYZ1, XYZ2, XYZ3이 ABC1을 확장 할 수 있으므로 물론 원형이 아닙니다. – bedford

답변

2

사용자에게는 그룹이 있어야합니다. 모델에 따라 하나 이상의 그룹을 가질 수 있습니다. 그래서 내 제안 : User

class Group { 
    String name 
} 

협회 :

class User { 
    Group userGroup 
} 

또는 그룹이 사용자 나는 것 같다 클래스를 만든 방법으로

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

그것이 당신이 성취하려는 것이 아니라고 생각하십시오.

+0

어쩌면 그룹은 나쁜 예 였지만 그것이 고용주라고 말할 수 있습니다.이 해결 방법을 알고 있지만 찾고,이 고용주 프로필을 관리하는 사용자 집합에 대해서만 고용주가 액세스 할 수있는 솔루션 (가능한 경우)을 선호합니다. Sérgio 감사합니다. – bedford

+0

이 경우 내 예가 적용됩니다. 사용자가 있으며 사용자는 데이터를 변경할 수있는 하나 이상의 고용주 프로필을 가지고 있습니다. 일부 사용자가 액세스 권한이없는 사용자의 컨트롤러 작업에 액세스하려고 시도하면 액세스가 거부 된 필터를 만들 수 있습니다. –

+0

고맙습니다. 나는 그것을 살펴볼 것입니다, 나는 질문을 업데이트 했으므로 아마 지금은 더 분명 할 것입니다. – bedford

0

사용자 그룹 대신 Hierarchical Roles이 필요할 수 있습니다.

+0

내 질문에 답변 해 주셔서 감사합니다 ... 나는 그것이 일반적인 질문의 이상 이었기 때문에 그것을 reworded했습니다. 수업 이름 때문에 오해의 소지가있었습니다. – bedford

0

죄송합니다. 요점은 누락되었지만 행 수준 (또는 인스턴스 수준) 액세스 제어를 찾는 것처럼 들릴 수 있습니다. 예를 들어 특정 사용자 (특정 그룹 내의 사용자) 만 개체 (예 : 동일한 그룹 개체)에 액세스 (보기, 편집 등) 할 수있게하려는 것 같습니다.

이것이 의도라면 Shiro 플러그인을 살펴 보는 것이 좋습니다. 이는 Spring Secuity보다 인스턴스 레벨 ACL이 더 좋습니다.

http://grails.org/plugin/shiro

봄 보안을 통해 시로 ACL을 통합하는 새로운 플러그인도 있습니다. 자체 테스트를 해보지는 않았지만 이미 Spring Security를 ​​앱에 통합했다면 갈 길이 될 것 같습니다.

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

+0

내 질문에 대한 답변을 시도해 주셔서 감사합니다 ... 나는 일반적인 질문보다 더 많이 언급 했으므로 다시 언급했습니다. 수업 이름 때문에 오해의 소지가있었습니다. – bedford