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 public class PermissionImpl implements Permission, Serializable {
47
48
49
50
51 private static final long serialVersionUID = 222L;
52
53 private static Map<Long, String> nameStrings = new Hashtable<Long, String>();
54
55 static {
56 nameStrings.put(new Long(0), "none");
57 nameStrings.put(new Long(Permission.ADD), Permission.PERMISSION_NAME_ADD);
58 nameStrings.put(new Long(Permission.SET), Permission.PERMISSION_NAME_SET);
59 nameStrings.put(new Long(Permission.REMOVE), Permission.PERMISSION_NAME_REMOVE);
60 nameStrings.put(new Long(Permission.READ), Permission.PERMISSION_NAME_READ);
61 nameStrings.put(new Long(Permission.EXECUTE), Permission.PERMISSION_NAME_EXECUTE);
62 nameStrings.put(new Long(Permission.SYNDICATE), Permission.PERMISSION_NAME_SYNDICATE);
63 nameStrings.put(new Long(Permission.ALL), Permission.PERMISSION_NAME_ALL);
64 nameStrings.put(new Long(Permission.WRITE), Permission.PERMISSION_NAME_WRITE);
65 }
66
67 private UrlPattern pattern;
68
69 private long permissions;
70
71 public void setPattern(UrlPattern value) {
72 this.pattern = value;
73 }
74
75 public UrlPattern getPattern() {
76 return this.pattern;
77 }
78
79 public void setPermissions(long value) {
80 this.permissions = value;
81 }
82
83 public long getPermissions() {
84 return this.permissions;
85 }
86
87 public boolean match(String path) {
88 return this.pattern.match(path);
89 }
90
91 public String toString() {
92 return getPermissionAsName(permissions) + " " + pattern;
93 }
94
95 public static String getPermissionAsName(long permission) {
96 final String name = nameStrings.get(new Long(permission));
97 if (name == null) {
98 return "[unknown permission]";
99 }
100 return name;
101 }
102 }