1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.ecm.webui.form.validator;
18
19 import org.exoplatform.services.organization.OrganizationService;
20 import org.exoplatform.services.wcm.utils.WCMCoreUtils;
21 import org.exoplatform.web.application.ApplicationMessage;
22 import org.exoplatform.webui.exception.MessageException;
23 import org.exoplatform.webui.form.UIFormInput;
24 import org.exoplatform.webui.form.validator.Validator;
25
26
27
28
29
30
31
32
33 public class PermissionValidator implements Validator {
34 public void validate(UIFormInput uiInput) throws Exception {
35 if (uiInput.getValue() == null || ((String) uiInput.getValue()).trim().length() == 0
36 || ((String) uiInput.getValue()).trim().equals("*"))
37 return;
38 String permissions = ((String) uiInput.getValue()).trim();
39
40 OrganizationService oservice = WCMCoreUtils.getService(OrganizationService.class);
41 String[] arrPermissions = permissions.split(",");
42 for (String itemPermission : arrPermissions) {
43 if (itemPermission.length() == 0) {
44 Object[] args = { itemPermission };
45 throw new MessageException(new ApplicationMessage("PermissionValidator.msg.permission-path-invalid",
46 args));
47 }
48 if (itemPermission.equals("*"))
49 continue;
50 else if (itemPermission.contains(":")) {
51 String[] permission = itemPermission.split(":");
52 if ((permission[0] == null) || (permission[0].length() == 0)) {
53 Object[] args = { itemPermission };
54 throw new MessageException(new ApplicationMessage("PermissionValidator.msg.permission-path-invalid",
55 args));
56 } else if (!permission[0].equals("*") && (oservice.getMembershipTypeHandler().findMembershipType(permission[0]) == null)) {
57 Object[] args = { itemPermission };
58 throw new MessageException(new ApplicationMessage("PermissionValidator.msg.permission-path-invalid",
59 args));
60 }
61 if ((permission[1] == null) || (permission[1].length() == 0)) {
62 Object[] args = { itemPermission };
63 throw new MessageException(new ApplicationMessage("PermissionValidator.msg.permission-path-invalid",
64 args));
65 } else if (oservice.getGroupHandler().findGroupById(permission[1]) == null) {
66 Object[] args = { itemPermission };
67 throw new MessageException(new ApplicationMessage("PermissionValidator.msg.permission-path-invalid",
68 args));
69 }
70 } else {
71 Object[] args = { itemPermission };
72 throw new MessageException(new ApplicationMessage("PermissionValidator.msg.permission-path-invalid",
73 args));
74 }
75 }
76 }
77 }