001/*
002 * The Kuali Financial System, a comprehensive financial management system for higher education.
003 * 
004 * Copyright 2005-2014 The Kuali Foundation
005 * 
006 * This program is free software: you can redistribute it and/or modify
007 * it under the terms of the GNU Affero General Public License as
008 * published by the Free Software Foundation, either version 3 of the
009 * License, or (at your option) any later version.
010 * 
011 * This program is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014 * GNU Affero General Public License for more details.
015 * 
016 * You should have received a copy of the GNU Affero General Public License
017 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
018 */
019package org.kuali.rice.kim.api.services;
020
021import java.util.Map;
022
023import org.kuali.rice.kim.api.identity.entity.Entity;
024import org.kuali.rice.kim.api.identity.entity.EntityDefault;
025import org.kuali.rice.kim.api.identity.principal.Principal;
026
027/**
028 * This is the front end for the KIM module.  Clients of KIM should access this service from
029 * their applications.  If KIM is not running on the same machine (VM) as the application
030 * (as would be the case with a standalone Rice server), then this service should be implemented
031 * locally within the application and access the core KIM services
032 * (Authentication/Authorization/Identity/Group) via the service bus.
033 *
034 *  For efficiency, implementations of this interface should add appropriate caching of
035 *  the information retrieved from the core services for load and performance reasons.
036 *
037 *  Most of the methods on this interface are straight pass-thrus to methods on the four core services.
038 *
039 * @author Kuali Rice Team (rice.collab@kuali.org)
040 *
041 */
042@Deprecated
043public interface IdentityManagementService {
044
045        // *******************************
046        // IdentityService
047        // *******************************
048
049        Principal getPrincipal( String principalId);
050        Principal getPrincipalByPrincipalName( String principalName);
051
052        EntityDefault getEntityDefaultInfo( String entityId);
053        EntityDefault getEntityDefaultInfoByPrincipalId( String principalId);
054        EntityDefault getEntityDefaultInfoByPrincipalName( String principalName);
055
056        Entity getEntityByPrincipalId( String principalId);
057
058    // --------------------
059    // Authorization Checks
060    // --------------------
061
062    boolean hasPermission(
063             String principalId,
064             String namespaceCode,
065             String permissionName
066    );
067
068    boolean isAuthorized(
069             String principalId,
070             String namespaceCode,
071             String permissionName,
072              Map<String, String> qualification
073    );
074
075    boolean hasPermissionByTemplateName(
076             String principalId,
077             String namespaceCode,
078             String permissionTemplateName,
079              Map<String, String> permissionDetails
080    );
081
082    boolean isAuthorizedByTemplateName(
083             String principalId,
084             String namespaceCode,
085             String permissionTemplateName,
086             Map<String, String> permissionDetails,
087             Map<String, String> qualification
088    );
089
090}