Revision daf9013d
Added by Katja Luther over 12 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/permission/CdmPermissionEvaluator.java | ||
---|---|---|
54 | 54 |
}else { |
55 | 55 |
cdmPermission = (CdmPermission)permission; |
56 | 56 |
} |
57 |
|
|
57 | 58 |
Collection<GrantedAuthority> authorities = ((User)authentication.getPrincipal()).getAuthorities(); |
58 | 59 |
AuthorityPermission evalPermission; |
59 | 60 |
try{ |
... | ... | |
63 | 64 |
//evalPermission = new AuthorityPermission(targetDomainObject.getClass().getSimpleName().toUpperCase(), cdmPermission, null); |
64 | 65 |
evalPermission = new AuthorityPermission(targetDomainObject, cdmPermission, null); |
65 | 66 |
} |
67 |
|
|
66 | 68 |
//FIXME this is a workaround until the concept of CdmPermissionClass is finally discussed |
67 | 69 |
if (evalPermission.className != null) { |
68 | 70 |
return evalPermission(authorities, evalPermission, |
... | ... | |
102 | 104 |
for (GrantedAuthority authority: authorities){ |
103 | 105 |
AuthorityPermission authorityPermission= new AuthorityPermission(authority.getAuthority()); |
104 | 106 |
//evaluate authorities |
105 |
if (authorityPermission.className.equals(evalPermission.className) && (authorityPermission.permission.equals(evalPermission.permission)|| authorityPermission.permission.equals(CdmPermission.ADMIN))){
|
|
107 |
if ((authorityPermission.className.equals(evalPermission.className) || authorityPermission.className.equals(CdmPermissionClass.ALL))&& (authorityPermission.permission.equals(evalPermission.permission)|| authorityPermission.permission.equals(CdmPermission.ADMIN))){
|
|
106 | 108 |
if (authorityPermission.targetUuid != null){ |
107 | 109 |
//TODO |
108 | 110 |
|
109 | 111 |
}else{ |
110 |
return true;
|
|
112 |
return true;
|
|
111 | 113 |
} |
112 | 114 |
|
113 | 115 |
} |
... | ... | |
115 | 117 |
if (authorityPermission.targetUuid != null){ |
116 | 118 |
if (authorityPermission.targetUuid.equals(((CdmBase)targetDomainObject).getUuid())){ |
117 | 119 |
if (authorityPermission.permission.equals(evalPermission.permission)){ |
118 |
return true;
|
|
120 |
return true;
|
|
119 | 121 |
} |
120 | 122 |
} |
121 | 123 |
} |
... | ... | |
125 | 127 |
TaxonNode targetNode = findTargetUuidInTree(authorityPermission.targetUuid, node); |
126 | 128 |
if (targetNode != null){ |
127 | 129 |
if (evalPermission.permission.equals(authorityPermission.permission) ){ |
128 |
return true;
|
|
130 |
return true;
|
|
129 | 131 |
} |
130 | 132 |
} |
131 | 133 |
} |
Also available in: Unified diff