1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.security;
35
36 import info.magnolia.cms.util.UrlPattern;
37
38 import java.io.Serializable;
39 import java.util.Hashtable;
40 import java.util.Map;
41
42
43
44
45
46
47 public class PermissionImpl implements Permission, Serializable {
48
49
50
51
52 private static final long serialVersionUID = 222L;
53
54 private static Map<Long, String> nameStrings = new Hashtable<Long, String>();
55
56 static {
57 nameStrings.put(new Long(0), "none");
58 nameStrings.put(new Long(Permission.ADD), Permission.PERMISSION_NAME_ADD);
59 nameStrings.put(new Long(Permission.SET), Permission.PERMISSION_NAME_SET);
60 nameStrings.put(new Long(Permission.REMOVE), Permission.PERMISSION_NAME_REMOVE);
61 nameStrings.put(new Long(Permission.READ), Permission.PERMISSION_NAME_READ);
62 nameStrings.put(new Long(Permission.EXECUTE), Permission.PERMISSION_NAME_EXECUTE);
63 nameStrings.put(new Long(Permission.SYNDICATE), Permission.PERMISSION_NAME_SYNDICATE);
64 nameStrings.put(new Long(Permission.ALL), Permission.PERMISSION_NAME_ALL);
65 nameStrings.put(new Long(Permission.WRITE), Permission.PERMISSION_NAME_WRITE);
66 }
67
68 private UrlPattern pattern;
69
70 private long permissions;
71
72 public void setPattern(UrlPattern value) {
73 this.pattern = value;
74 }
75
76 public UrlPattern getPattern() {
77 return this.pattern;
78 }
79
80 public void setPermissions(long value) {
81 this.permissions = value;
82 }
83
84 public long getPermissions() {
85 return this.permissions;
86 }
87
88 public boolean match(String path) {
89 return this.pattern.match(path);
90 }
91
92 public String toString() {
93 return getPermissionAsName(permissions) + " " + pattern;
94 }
95
96 public static String getPermissionAsName(long permission) {
97 final String name = nameStrings.get(new Long(permission));
98 if (name == null) {
99 return "[unknown permission]";
100 }
101 return name;
102 }
103 }