]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
d1b2acfed056d6f045a2a32bec174e6f4242103c
[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.test;
25
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28 import java.util.ArrayList;
29 import java.util.List;
30 import java.util.UUID;
31 import org.collectionspace.services.authorization.ActionType;
32 import org.collectionspace.services.authorization.Permission;
33 import org.collectionspace.services.authorization.EffectType;
34 import org.collectionspace.services.authorization.PermissionAction;
35 import org.collectionspace.services.authorization.PermissionRole;
36 import org.collectionspace.services.authorization.PermissionValue;
37 import org.collectionspace.services.authorization.PermissionsList;
38 import org.collectionspace.services.authorization.PermissionsRolesList;
39 import org.collectionspace.services.authorization.RoleValue;
40 import org.collectionspace.services.authorization.SubjectType;
41
42 /**
43  *
44  * @author 
45  */
46 public class AuthorizationGen {
47
48     final Logger logger = LoggerFactory.getLogger(AuthorizationGen.class);
49     private PermissionsList pcList = new PermissionsList();
50     PermissionsRolesList psrsl = new PermissionsRolesList();
51
52     public PermissionsList genPermissions() {
53         ArrayList<Permission> apcList = new ArrayList<Permission>();
54         pcList.setPermissions(apcList);
55
56         Permission accPerm = buildCommonPermission("1", "1", "accounts");
57         apcList.add(accPerm);
58         Permission dimPerm = buildCommonPermission("1", "2", "dimensions");
59         apcList.add(dimPerm);
60         return pcList;
61
62     }
63
64     public void writePermissions(PermissionsList pcList, String fileName) {
65         AbstractAuthorizationTestImpl.toFile(pcList, PermissionsList.class,
66                 AbstractAuthorizationTestImpl.testDataDir + fileName);
67         logger.info("generated permissions to "
68                 + AbstractAuthorizationTestImpl.testDataDir + fileName);
69     }
70
71     private Permission buildCommonPermission(String tenantId, String permId, String resourceName) {
72         //String id = UUID.randomUUID().toString();
73         Permission perm = new Permission();
74         perm.setCsid(permId);
75         perm.setResourceName(resourceName);
76         perm.setEffect(EffectType.PERMIT);
77         perm.setTenantId(tenantId);
78         ArrayList<PermissionAction> pas = new ArrayList<PermissionAction>();
79         perm.setActions(pas);
80
81         PermissionAction pa = new PermissionAction();
82         pa.setName(ActionType.CREATE);
83         pas.add(pa);
84         PermissionAction pa1 = new PermissionAction();
85         pa1.setName(ActionType.READ);
86         pas.add(pa1);
87         PermissionAction pa2 = new PermissionAction();
88         pa2.setName(ActionType.UPDATE);
89         pas.add(pa2);
90         PermissionAction pa3 = new PermissionAction();
91         pa3.setName(ActionType.DELETE);
92         pas.add(pa3);
93         return perm;
94     }
95
96     public PermissionsRolesList genPermissionsRoles(PermissionsList pcList) {
97         ArrayList<PermissionRole> prl = new ArrayList<PermissionRole>();
98         prl.add(buildCommonPermissionRoles("1", "1", "accounts"));
99         prl.add(buildCommonPermissionRoles("1", "2", "dimensions"));
100         psrsl.setPermissionRoles(prl);
101         return psrsl;
102     }
103
104     public void writePermissionRoles(PermissionsRolesList psrsl, String fileName) {
105         AbstractAuthorizationTestImpl.toFile(psrsl, PermissionsRolesList.class,
106                 AbstractAuthorizationTestImpl.testDataDir + fileName);
107         logger.info("generated permissions-roles to "
108                 + AbstractAuthorizationTestImpl.testDataDir + fileName);
109     }
110
111     private PermissionRole buildCommonPermissionRoles(String tenantId, String permissionId,
112             String resName) {
113
114         PermissionRole pr = new PermissionRole();
115         pr.setSubject(SubjectType.ROLE);
116         List<PermissionValue> permValues = new ArrayList<PermissionValue>();
117         pr.setPermissions(permValues);
118         PermissionValue permValue = new PermissionValue();
119         permValue.setPermissionId(permissionId);
120         permValue.setResourceName(resName);
121         permValues.add(permValue);
122
123         List<RoleValue> roleValues = new ArrayList<RoleValue>();
124         RoleValue radmin = new RoleValue();
125         radmin.setRoleName("ROLE_ADMINISTRATOR");
126         radmin.setRoleId(tenantId);
127         roleValues.add(radmin);
128         pr.setRoles(roleValues);
129
130         return pr;
131
132     }
133 }