001 /** 002 * Copyright 2004-2013 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.hr.time.authorization; 017 018 import java.util.Map; 019 020 import org.kuali.hr.time.roles.TkUserRoles; 021 import org.kuali.rice.kim.api.identity.Person; 022 import org.kuali.rice.krad.bo.BusinessObject; 023 import org.kuali.rice.krad.document.Document; 024 import org.kuali.rice.krad.maintenance.MaintenanceDocument; 025 import org.kuali.rice.krad.util.GlobalVariables; 026 027 public class LocationAdminAuthorizer extends SystemAdminAuthorizer { 028 029 public boolean isLocationAdmin(){ 030 return TkUserRoles.getUserRoles(GlobalVariables.getUserSession().getPrincipalId()).isLocationAdmin(); 031 } 032 033 @Override 034 public boolean canInitiate(String documentTypeName, Person user) { 035 return super.canInitiate(documentTypeName, user) || isLocationAdmin(); 036 } 037 038 @Override 039 public boolean canOpen(Document document, Person user) { 040 return super.canOpen(document, user) || isLocationAdmin(); 041 } 042 043 @Override 044 public boolean canReceiveAdHoc(Document document, Person user, 045 String actionRequestCode) { 046 return super.canReceiveAdHoc(document, user, actionRequestCode) || isLocationAdmin(); 047 } 048 049 @Override 050 public boolean canAddNoteAttachment(Document document, 051 String attachmentTypeCode, Person user) { 052 return super.canAddNoteAttachment(document, attachmentTypeCode, user) || isLocationAdmin(); 053 } 054 055 @Override 056 public boolean canDeleteNoteAttachment(Document document, 057 String attachmentTypeCode, String createdBySelfOnly, Person user) { 058 return super.canDeleteNoteAttachment(document, attachmentTypeCode, createdBySelfOnly, user) || isLocationAdmin(); 059 } 060 061 @Override 062 public boolean canViewNoteAttachment(Document document, 063 String attachmentTypeCode, Person user) { 064 return super.canViewNoteAttachment(document, attachmentTypeCode, user) || isLocationAdmin(); 065 } 066 067 @Override 068 public boolean canViewNoteAttachment(Document document, 069 String attachmentTypeCode, String authorUniversalIdentifier, Person user) { 070 return super.canViewNoteAttachment(document, attachmentTypeCode, authorUniversalIdentifier, user) || isLocationAdmin(); 071 } 072 073 @Override 074 public boolean canSendAdHocRequests(Document document, 075 String actionRequestCd, Person user) { 076 return super.canSendAdHocRequests(document, actionRequestCd, user) || isLocationAdmin(); 077 } 078 079 @Override 080 public boolean isAuthorized(BusinessObject businessObject, 081 String namespaceCode, String permissionName, String principalId) { 082 return super.isAuthorized(businessObject, namespaceCode, permissionName, principalId) || isLocationAdmin(); 083 } 084 085 @Override 086 public boolean isAuthorizedByTemplate(BusinessObject businessObject, 087 String namespaceCode, String permissionTemplateName, 088 String principalId) { 089 return super.isAuthorizedByTemplate(businessObject, namespaceCode, permissionTemplateName, principalId) || isLocationAdmin(); 090 } 091 092 @Override 093 public boolean isAuthorized(BusinessObject businessObject, 094 String namespaceCode, String permissionName, String principalId, 095 Map<String, String> additionalPermissionDetails, 096 Map<String, String> additionalRoleQualifiers) { 097 return super.isAuthorized(businessObject, namespaceCode, permissionName, principalId, additionalPermissionDetails, additionalRoleQualifiers) || isLocationAdmin(); 098 } 099 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) || isLocationAdmin(); 107 } 108 109 @Override 110 public boolean canCreate(Class boClass, Person user) { 111 return super.canCreate(boClass, user) || isLocationAdmin(); 112 } 113 114 @Override 115 public boolean canMaintain(Object dataObject, Person user) { 116 return super.canMaintain(dataObject, user) || isLocationAdmin(); 117 } 118 119 @Override 120 public boolean canCreateOrMaintain(MaintenanceDocument maintenanceDocument, 121 Person user) { 122 return super.canCreateOrMaintain(maintenanceDocument, user) || isLocationAdmin(); 123 } 124 125 @Override 126 public boolean canEdit(Document document, Person user) { 127 return super.canEdit(document, user) || isLocationAdmin(); 128 } 129 130 @Override 131 public boolean canAnnotate(Document document, Person user) { 132 return super.canAnnotate(document, user) || isLocationAdmin(); 133 } 134 135 @Override 136 public boolean canReload(Document document, Person user) { 137 return super.canReload(document, user) || isLocationAdmin(); 138 } 139 140 @Override 141 public boolean canClose(Document document, Person user) { 142 return super.canClose(document, user) || isLocationAdmin(); 143 } 144 145 @Override 146 public boolean canSave(Document document, Person user) { 147 return super.canSave(document, user) || isLocationAdmin(); 148 } 149 150 @Override 151 public boolean canRoute(Document document, Person user) { 152 return super.canRoute(document, user) || isLocationAdmin(); 153 } 154 155 @Override 156 public boolean canCancel(Document document, Person user) { 157 return super.canCancel(document, user) || isLocationAdmin(); 158 } 159 160 @Override 161 public boolean canCopy(Document document, Person user) { 162 return super.canCopy(document, user) || isLocationAdmin(); 163 } 164 165 @Override 166 public boolean canPerformRouteReport(Document document, Person user) { 167 return super.canCopy(document, user) || isLocationAdmin(); 168 } 169 170 @Override 171 public boolean canBlanketApprove(Document document, Person user) { 172 return super.canBlanketApprove(document, user) || isLocationAdmin(); 173 } 174 175 @Override 176 public boolean canApprove(Document document, Person user) { 177 return super.canApprove(document, user) || isLocationAdmin(); 178 } 179 180 @Override 181 public boolean canDisapprove(Document document, Person user) { 182 return super.canDisapprove(document, user) || isLocationAdmin(); 183 } 184 185 @Override 186 public boolean canSendNoteFyi(Document document, Person user) { 187 return super.canSendNoteFyi(document, user) || isLocationAdmin(); 188 } 189 190 @Override 191 public boolean canEditDocumentOverview(Document document, Person user) { 192 return super.canEditDocumentOverview(document, user) || isLocationAdmin(); 193 } 194 195 @Override 196 public boolean canFyi(Document document, Person user) { 197 return super.canFyi(document, user) || isLocationAdmin(); 198 } 199 200 @Override 201 public boolean canAcknowledge(Document document, Person user) { 202 return super.canAcknowledge(document, user) || isLocationAdmin(); 203 } 204 205 @Override 206 public boolean canSendAnyTypeAdHocRequests(Document document, Person user) { 207 return super.canSendAnyTypeAdHocRequests(document, user) || isLocationAdmin(); 208 } 209 210 @Override 211 public boolean canTakeRequestedAction(Document document, 212 String actionRequestCode, Person user) { 213 return super.canTakeRequestedAction(document, actionRequestCode, user) || isLocationAdmin(); 214 } 215 216 @Override 217 public boolean canRecall(Document document, Person user) { 218 return super.canRecall(document, user) || isLocationAdmin(); 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) || isLocationAdmin(); 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) || isLocationAdmin(); 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) || isLocationAdmin(); 240 } 241 242 }