001 /**
002 * Copyright 2005-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.rice.kew.identity.service;
017
018 import org.kuali.rice.core.api.exception.RiceIllegalArgumentException;
019 import org.kuali.rice.kew.actionrequest.Recipient;
020 import org.kuali.rice.kew.api.user.UserId;
021 import org.kuali.rice.kew.workgroup.GroupId;
022 import org.kuali.rice.kim.api.identity.Person;
023 import org.kuali.rice.kim.api.identity.principal.Principal;
024 import org.kuali.rice.kim.api.group.Group;
025
026 /**
027 * A simple helper service in KEW for interacting with the KIM identity
028 * management services. Some of the methods on here exist solely for
029 * the purpose of assisting with the piece-by-piece migration of
030 * KEW to use the KIM services.
031 *
032 * @author Kuali Rice Team (rice.collab@kuali.org)
033 */
034 public interface IdentityHelperService {
035
036 public String getIdForPrincipalName(String principalName);
037
038 public String getIdForGroupName(String namespace, String groupName);
039
040 /**
041 * Returns the KimPrincipal for the given principal id. Throws an exception
042 * if the principal id cannot be resolved to a principal.
043 *
044 * @throws RiceIllegalArgumentException if the principal id cannot be resolved to a principal.
045 */
046 public Principal getPrincipal(String principalId);
047
048 /**
049 * Returns the KimPrincipal for the given principal name. Throws an exception
050 * if the principal name cannot be resolved to a principal.
051 *
052 * @throws RiceIllegalArgumentException if the principal name cannot be resolved to a principal
053 */
054 public Principal getPrincipalByPrincipalName(String principalName);
055
056 /**
057 * Returns the Person for the given principal id. Throws an exception
058 * if the principal id cannot be resolved to a person.
059 *
060 * @throws RiceIllegalArgumentException if the principal id cannot be resolved to a person.
061 */
062 public Person getPerson(String principalId);
063
064 /**
065 * Returns the Person for the given principal name. Throws an exception
066 * if the principal name cannot be resolved to a person.
067 *
068 * @throws RiceIllegalArgumentException if the principal name cannot be resolved to a person.
069 */
070 public Person getPersonByPrincipalName(String principalName);
071
072 /**
073 * Returns the Person for the given employee id. Throws an exception
074 * if the principal name cannot be resolved to a person.
075 *
076 * @throws RiceIllegalArgumentException if the principal name cannot be resolved to a person.
077 */
078 public Person getPersonByEmployeeId(String employeeId);
079
080 /**
081 * Checks that the given principalId is valid. Throws a RiceRuntimeException if it is not.
082 *
083 * @throws RiceIllegalArgumentException if the given principalId is valid
084 */
085 public void validatePrincipalId(String principalId);
086
087 /**
088 * Returns the principal for the given UserId.
089 *
090 * @throws RiceIllegalArgumentException if the given UserId does not resolve to a valid principal
091 */
092 public Principal getPrincipal(UserId userId);
093
094 /**
095 * Returns the Group for the given groupId. Throws an exception
096 * if the groupId cannot be resolved to a group.
097 *
098 * @throws RiceIllegalArgumentException if the groupId cannot be resolved to a group.
099 */
100 public Group getGroup(String groupId);
101
102 /**
103 * Returns the Group for the given GroupId. Throws an exception
104 * if the groupId cannot be resolved to a group.
105 *
106 * @throws RiceIllegalArgumentException if the GroupId cannot be resolved to a group.
107 */
108 public Group getGroup(GroupId groupId);
109
110 /**
111 * Returns the Group for the given namespaceCode and name. Throws an exception
112 * if the namespaceCode and name cannot be resolved to a group.
113 *
114 * @throws RiceIllegalArgumentException if the namespaceCode and name cannot be resolved to a group.
115 */
116 public Group getGroupByName(String namespaceCode, String name);
117
118 /**
119 * Returns the Recipient for the given principalId. Throws an exception
120 * if the principalId cannot be resolved to a recipient.
121 *
122 * @throws RiceIllegalArgumentException if the principalId cannot be resolved to a recipient
123 */
124 public Recipient getPrincipalRecipient(String principalId);
125
126 /**
127 * Returns the principal for the "system user". This is a user
128 * that can be used in the cases where an actual user cannot be
129 * determined.
130 */
131 public Principal getSystemPrincipal();
132 }