View Javadoc

1   /**
2    * Copyright 2004-2013 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.hr.time.authorization;
17  
18  import java.util.Map;
19  
20  import org.kuali.hr.time.roles.TkUserRoles;
21  import org.kuali.rice.kim.api.identity.Person;
22  import org.kuali.rice.krad.bo.BusinessObject;
23  import org.kuali.rice.krad.document.Document;
24  import org.kuali.rice.krad.maintenance.MaintenanceDocument;
25  import org.kuali.rice.krad.util.GlobalVariables;
26  
27  public class DepartmentAdminAuthorizer extends LocationAdminAuthorizer {
28  	
29  	public boolean isDepartmentAdmin(){
30  		return TkUserRoles.getUserRoles(GlobalVariables.getUserSession().getPrincipalId()).isDepartmentAdmin();
31  	}
32  	
33  	@Override
34  	public boolean canInitiate(String documentTypeName, Person user) {
35  		return super.canInitiate(documentTypeName, user) || isDepartmentAdmin();
36  	}
37  
38  	@Override
39  	public boolean canOpen(Document document, Person user) {
40  		return super.canOpen(document, user) || isDepartmentAdmin();
41  	}
42  
43  	@Override
44  	public boolean canReceiveAdHoc(Document document, Person user,
45  			String actionRequestCode) {
46  		return super.canReceiveAdHoc(document, user, actionRequestCode) || isDepartmentAdmin();
47  	}
48  
49  	@Override
50  	public boolean canAddNoteAttachment(Document document,
51  			String attachmentTypeCode, Person user) {
52  		return super.canAddNoteAttachment(document, attachmentTypeCode, user) || isDepartmentAdmin();
53  	}
54  
55  	@Override
56  	public boolean canDeleteNoteAttachment(Document document,
57  			String attachmentTypeCode, String createdBySelfOnly, Person user) {
58  		return super.canDeleteNoteAttachment(document, attachmentTypeCode, createdBySelfOnly, user) || isDepartmentAdmin();
59  	}
60  	
61  	@Override
62  	public boolean canViewNoteAttachment(Document document,
63  			String attachmentTypeCode, Person user) {
64  		return super.canViewNoteAttachment(document, attachmentTypeCode, user) || isDepartmentAdmin();
65  	}
66  
67  	@Override
68  	public boolean canViewNoteAttachment(Document document, 
69  			String attachmentTypeCode, String authorUniversalIdentifier, Person user) {
70  		return super.canViewNoteAttachment(document, attachmentTypeCode, authorUniversalIdentifier, user) || isDepartmentAdmin();
71  	}
72  	
73  	@Override
74  	public boolean canSendAdHocRequests(Document document,
75  			String actionRequestCd, Person user) {
76  		return super.canSendAdHocRequests(document, actionRequestCd, user) || isDepartmentAdmin();
77  	}
78  
79  	@Override
80  	public boolean isAuthorized(BusinessObject businessObject,
81  			String namespaceCode, String permissionName, String principalId) {
82  		return super.isAuthorized(businessObject, namespaceCode, permissionName, principalId) || isDepartmentAdmin();
83  	}
84  
85  	@Override
86  	public boolean isAuthorizedByTemplate(BusinessObject businessObject,
87  			String namespaceCode, String permissionTemplateName,
88  			String principalId) {
89  		return super.isAuthorizedByTemplate(businessObject, namespaceCode, permissionTemplateName, principalId) || isDepartmentAdmin();
90  	}
91  
92  	@Override
93  	public boolean isAuthorized(BusinessObject businessObject,
94  			String namespaceCode, String permissionName, String principalId,
95  			Map<String, String> additionalPermissionDetails,
96  			Map<String, String> additionalRoleQualifiers) {
97  		return super.isAuthorized(businessObject, namespaceCode, permissionName, principalId, additionalPermissionDetails, additionalRoleQualifiers) || isDepartmentAdmin();
98  	}
99  
100 	@Override
101 	public boolean isAuthorizedByTemplate(Object dataObject,
102 			String namespaceCode, String permissionTemplateName,
103 			String principalId,
104 			Map<String, String> additionalPermissionDetails,
105 			Map<String, String> additionalRoleQualifiers) {
106 		return super.isAuthorizedByTemplate(dataObject, namespaceCode, permissionTemplateName, principalId) || isDepartmentAdmin();
107 	}
108 
109 	@Override
110 	public boolean canCreate(Class boClass, Person user) {
111 		return super.canCreate(boClass, user) || isDepartmentAdmin();
112 	}
113 
114 	@Override
115 	public boolean canMaintain(Object dataObject, Person user) {
116 		return super.canMaintain(dataObject, user) || isDepartmentAdmin();
117 	}
118 
119 	@Override
120 	public boolean canCreateOrMaintain(MaintenanceDocument maintenanceDocument, 
121 			Person user) {
122 		return super.canCreateOrMaintain(maintenanceDocument, user) || isDepartmentAdmin();
123 	}
124 
125 	@Override
126 	public boolean canEdit(Document document, Person user) {
127 		return super.canEdit(document, user) || isDepartmentAdmin();
128 	}
129 
130 	@Override
131 	public boolean canAnnotate(Document document, Person user) {
132 		return super.canAnnotate(document, user) || isDepartmentAdmin();
133 	}
134 
135 	@Override
136 	public boolean canReload(Document document, Person user) {
137 		return super.canReload(document, user) || isDepartmentAdmin();
138 	}
139 
140 	@Override
141 	public boolean canClose(Document document, Person user) {
142 		return super.canClose(document, user) || isDepartmentAdmin();
143 	}
144 
145 	@Override
146 	public boolean canSave(Document document, Person user) {
147 		return super.canSave(document, user) || isDepartmentAdmin();
148 	}
149 
150 	@Override
151 	public boolean canRoute(Document document, Person user) {
152 		return super.canRoute(document, user) || isDepartmentAdmin();
153 	}
154 
155 	@Override
156 	public boolean canCancel(Document document, Person user) {
157 		return super.canCancel(document, user) || isDepartmentAdmin();
158 	}
159 
160 	@Override
161 	public boolean canCopy(Document document, Person user) {
162 		return super.canCopy(document, user) || isDepartmentAdmin();
163 	}
164 
165 	@Override
166 	public boolean canPerformRouteReport(Document document, Person user) {
167 		return super.canCopy(document, user) || isDepartmentAdmin();
168 	}
169 
170 	@Override
171 	public boolean canBlanketApprove(Document document, Person user) {
172 		return super.canBlanketApprove(document, user) || isDepartmentAdmin();
173 	}
174 
175 	@Override
176 	public boolean canApprove(Document document, Person user) {
177 		return super.canApprove(document, user) || isDepartmentAdmin();
178 	}
179 
180 	@Override
181 	public boolean canDisapprove(Document document, Person user) {
182 		return super.canDisapprove(document, user) || isDepartmentAdmin();
183 	}
184 
185 	@Override
186 	public boolean canSendNoteFyi(Document document, Person user) {
187 		return super.canSendNoteFyi(document, user) || isDepartmentAdmin();
188 	}
189 
190 	@Override
191 	public boolean canEditDocumentOverview(Document document, Person user) {
192 		return super.canEditDocumentOverview(document, user) || isDepartmentAdmin();
193 	}
194 
195 	@Override
196 	public boolean canFyi(Document document, Person user) {
197 		return super.canFyi(document, user) || isDepartmentAdmin();
198 	}
199 
200 	@Override
201 	public boolean canAcknowledge(Document document, Person user) {
202 		return super.canAcknowledge(document, user) || isDepartmentAdmin();
203 	}
204 
205 	@Override
206 	public boolean canSendAnyTypeAdHocRequests(Document document, Person user) {
207 		return super.canSendAnyTypeAdHocRequests(document, user) || isDepartmentAdmin();
208 	}
209 
210 	@Override
211 	public boolean canTakeRequestedAction(Document document,
212 			String actionRequestCode, Person user) {
213 		return super.canTakeRequestedAction(document, actionRequestCode, user) || isDepartmentAdmin();
214 	}
215 
216 	@Override
217 	public boolean canRecall(Document document, Person user) {
218 		return super.canRecall(document, user) || isDepartmentAdmin();
219 	}
220 
221 	@Override
222 	public boolean isAuthorized(Object dataObject, String namespaceCode,
223 			String permissionName, String principalId) {
224 		return super.isAuthorized(dataObject, namespaceCode, permissionName, principalId) || isDepartmentAdmin();
225 	}
226 
227 	@Override
228 	public boolean isAuthorizedByTemplate(Object dataObject,
229 			String namespaceCode, String permissionTemplateName,
230 			String principalId) {
231 		return super.isAuthorizedByTemplate(dataObject, namespaceCode, permissionTemplateName, principalId) || isDepartmentAdmin();
232 	}
233 
234 	@Override
235 	public boolean isAuthorized(Object dataObject, String namespaceCode,
236 			String permissionTemplateName, String principalId,
237 			Map<String, String> additionalPermissionDetails,
238 			Map<String, String> additionalRoleQualifiers) {
239 		return super.isAuthorizedByTemplate(dataObject, namespaceCode, permissionTemplateName, principalId, additionalPermissionDetails, additionalRoleQualifiers) || isDepartmentAdmin();
240 	}
241 
242 }