001 /** 002 * Copyright 2010 The Kuali Foundation Licensed under the 003 * Educational Community License, Version 2.0 (the "License"); you may 004 * not use this file except in compliance with the License. You may 005 * obtain a copy of the License at 006 * 007 * http://www.osedu.org/licenses/ECL-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, 010 * software distributed under the License is distributed on an "AS IS" 011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 012 * or implied. See the License for the specific language governing 013 * permissions and limitations under the License. 014 */ 015 016 package org.kuali.student.common.ui.client.service; 017 018 import java.util.ArrayList; 019 import java.util.HashMap; 020 021 import org.kuali.rice.kim.bo.types.dto.AttributeSet; 022 import org.kuali.student.common.rice.authorization.PermissionType; 023 import org.kuali.student.common.ui.client.service.exceptions.OperationFailedException; 024 025 import com.google.gwt.user.client.rpc.RemoteService; 026 import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; 027 028 /** 029 * 030 * @author Kuali Student Team 031 * 032 */ 033 @RemoteServiceRelativePath("rpcservices/SecurityRpcService") 034 public interface SecurityRpcService extends RemoteService { 035 036 public String getPrincipalUsername(); 037 038 /** 039 * This is used to check if the user has screen access based on a screen permission. 040 * 041 * @param screenName 042 * @return true if user has permission 043 * @throws OperationFailedException 044 */ 045 public Boolean hasScreenPermission(String screenName) throws OperationFailedException; 046 047 048 /** 049 * Given a list of screen components, returns if user has permission for that screen element. 050 * 051 * @param screens 052 * @return 053 * @throws OperationFailedException 054 */ 055 public HashMap<String,Boolean> getScreenPermissions(ArrayList<String> screens) throws OperationFailedException; 056 057 /** 058 * Given a list of permission names returns the list of permissions and if the 059 * @param permissionNames 060 * @return 061 * @throws OperationFailedException 062 */ 063 public HashMap<String,Boolean> getPermissions(ArrayList<String> permissionNames) throws OperationFailedException; 064 065 /** 066 * This is used to check if the user has a specific permission by the permission name 067 * 068 * @param permissionName 069 * @return true if user has the permission. 070 */ 071 public Boolean hasPermissionByPermissionName(String permissionName) throws OperationFailedException; 072 073 /** 074 * This is used to get all permissions assigned to the user based on a permission template. 075 * 076 * @param templateName 077 * @return list of permission names 078 */ 079 public ArrayList<String> getPermissionsByType(PermissionType permissionType) throws OperationFailedException; 080 081 /** 082 * This is used to get all permissions assigned to the user based on a permission template. 083 * 084 * @param permissionType 085 * @param attributes 086 * @return list of permission names 087 * @throws OperationFailedException 088 */ 089 public ArrayList<String> getPermissionsByType(PermissionType permissionType, HashMap<String, String> attributes) throws OperationFailedException; 090 }