]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
da0a05f5e000b1f3f4b26a0fba6cd4c1ec1eedf8
[tmp/jakarta-migration.git] /
1 /**
2  *  This document is a part of the source code and related artifacts
3  *  for CollectionSpace, an open source collections management system
4  *  for museums and related institutions:
5
6  *  http://www.collectionspace.org
7  *  http://wiki.collectionspace.org
8
9  *  Copyright 2009 University of California at Berkeley
10
11  *  Licensed under the Educational Community License (ECL), Version 2.0.
12  *  You may not use this file except in compliance with this License.
13
14  *  You may obtain a copy of the ECL 2.0 License at
15
16  *  https://source.collectionspace.org/collection-space/LICENSE.txt
17
18  *  Unless required by applicable law or agreed to in writing, software
19  *  distributed under the License is distributed on an "AS IS" BASIS,
20  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  *  See the License for the specific language governing permissions and
22  *  limitations under the License.
23  */
24 package org.collectionspace.services.authorization.generator;
25
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28 import java.util.ArrayList;
29 import java.util.List;
30 import org.collectionspace.services.authorization.ActionType;
31 import org.collectionspace.services.authorization.Permission;
32 import org.collectionspace.services.authorization.EffectType;
33 import org.collectionspace.services.authorization.PermissionAction;
34 import org.collectionspace.services.authorization.PermissionRole;
35 import org.collectionspace.services.authorization.PermissionValue;
36 import org.collectionspace.services.authorization.PermissionsList;
37 import org.collectionspace.services.authorization.PermissionsRolesList;
38 import org.collectionspace.services.authorization.RoleValue;
39 import org.collectionspace.services.authorization.SubjectType;
40
41 /**
42  *
43  * @author 
44  */
45 public class AuthorizationGen {
46
47     final Logger logger = LoggerFactory.getLogger(AuthorizationGen.class);
48     private PermissionsList pcList = new PermissionsList();
49     PermissionsRolesList psrsl = new PermissionsRolesList();
50
51     public PermissionsList genPermissions() {
52         ArrayList<Permission> apcList = new ArrayList<Permission>();
53         pcList.setPermissions(apcList);
54
55         Permission accPerm = buildCommonPermission("1", "1", "accounts");
56         apcList.add(accPerm);
57         Permission dimPerm = buildCommonPermission("1", "2", "dimensions");
58         apcList.add(dimPerm);
59         return pcList;
60
61     }
62
63
64     private Permission buildCommonPermission(String tenantId, String permId, String resourceName) {
65         //String id = UUID.randomUUID().toString();
66         Permission perm = new Permission();
67         perm.setCsid(permId);
68         perm.setResourceName(resourceName);
69         perm.setEffect(EffectType.PERMIT);
70         perm.setTenantId(tenantId);
71         ArrayList<PermissionAction> pas = new ArrayList<PermissionAction>();
72         perm.setActions(pas);
73
74         PermissionAction pa = new PermissionAction();
75         pa.setName(ActionType.CREATE);
76         pas.add(pa);
77         PermissionAction pa1 = new PermissionAction();
78         pa1.setName(ActionType.READ);
79         pas.add(pa1);
80         PermissionAction pa2 = new PermissionAction();
81         pa2.setName(ActionType.UPDATE);
82         pas.add(pa2);
83         PermissionAction pa3 = new PermissionAction();
84         pa3.setName(ActionType.DELETE);
85         pas.add(pa3);
86         return perm;
87     }
88
89     public PermissionsRolesList genPermissionsRoles(PermissionsList pcList) {
90         ArrayList<PermissionRole> prl = new ArrayList<PermissionRole>();
91         prl.add(buildCommonPermissionRoles("1", "1", "accounts"));
92         prl.add(buildCommonPermissionRoles("1", "2", "dimensions"));
93         psrsl.setPermissionRoles(prl);
94         return psrsl;
95     }
96
97     private PermissionRole buildCommonPermissionRoles(String tenantId, String permissionId,
98             String resName) {
99
100         PermissionRole pr = new PermissionRole();
101         pr.setSubject(SubjectType.ROLE);
102         List<PermissionValue> permValues = new ArrayList<PermissionValue>();
103         pr.setPermissions(permValues);
104         PermissionValue permValue = new PermissionValue();
105         permValue.setPermissionId(permissionId);
106         permValue.setResourceName(resName);
107         permValues.add(permValue);
108
109         List<RoleValue> roleValues = new ArrayList<RoleValue>();
110         RoleValue radmin = new RoleValue();
111         radmin.setRoleName("ROLE_ADMINISTRATOR");
112         radmin.setRoleId(tenantId);
113         roleValues.add(radmin);
114         pr.setRoles(roleValues);
115
116         return pr;
117
118     }
119 }