1
|
|
2
|
package eu.etaxonomy.cdm.permission;
|
3
|
|
4
|
import java.util.UUID;
|
5
|
|
6
|
public class AuthorityPermission{
|
7
|
CdmPermissionClass className;
|
8
|
CdmPermission permission;
|
9
|
UUID targetUuid;
|
10
|
|
11
|
public AuthorityPermission(Object targetDomainObject, CdmPermission permission, UUID uuid){
|
12
|
this.className = CdmPermissionClass.getValueOf(targetDomainObject);
|
13
|
this.permission = permission;
|
14
|
targetUuid = uuid;
|
15
|
}
|
16
|
|
17
|
public CdmPermissionClass getClassName(){
|
18
|
return className;
|
19
|
}
|
20
|
|
21
|
public CdmPermission getPermission(){
|
22
|
return permission;
|
23
|
}
|
24
|
|
25
|
public UUID getTargetUUID(){
|
26
|
return targetUuid;
|
27
|
}
|
28
|
public AuthorityPermission (String authority){
|
29
|
String permissionString;
|
30
|
int firstPoint = authority.indexOf(".");
|
31
|
if (firstPoint == -1){
|
32
|
className = CdmPermissionClass.valueOf(authority);
|
33
|
}else{
|
34
|
className = CdmPermissionClass.valueOf((authority.substring(0, firstPoint)));
|
35
|
int bracket = authority.indexOf("{");
|
36
|
permissionString = getPermissionString(authority);
|
37
|
if (bracket != -1){
|
38
|
int secondBracket = authority.indexOf("}");
|
39
|
String uuid = authority.substring(bracket+1, secondBracket);
|
40
|
targetUuid = UUID.fromString(uuid);
|
41
|
}
|
42
|
permission = CdmPermission.valueOf(permissionString.toUpperCase());
|
43
|
}
|
44
|
}
|
45
|
|
46
|
private static String getPermissionString(String authority){
|
47
|
int lastPoint = authority.lastIndexOf(".");
|
48
|
int bracket = authority.indexOf("{");
|
49
|
if (bracket == -1){
|
50
|
return authority.substring(lastPoint+1);
|
51
|
}else{
|
52
|
return authority.substring(lastPoint+1, bracket);
|
53
|
}
|
54
|
}
|
55
|
|
56
|
}
|