1 /*
2 * Licensed to The Apereo Foundation under one or more contributor license
3 * agreements. See the NOTICE file distributed with this work for additional
4 * information regarding copyright ownership.
5 *
6 *
7 * The Apereo Foundation licenses this file to you under the Educational
8 * Community License, Version 2.0 (the "License"); you may not use this file
9 * except in compliance with the License. You may obtain a copy of the License
10 * at:
11 *
12 * http://opensource.org/licenses/ecl2.txt
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17 * License for the specific language governing permissions and limitations under
18 * the License.
19 *
20 */
21
22 package org.opencastproject.userdirectory.api;
23
24 import org.opencastproject.security.api.RoleProvider;
25 import org.opencastproject.security.api.User;
26 import org.opencastproject.security.impl.jpa.JpaUserReference;
27
28 public interface UserReferenceProvider {
29
30 /**
31 * Add a user reference
32 *
33 * @param user
34 * the user reference to be added
35 * @param mechanism
36 * the mechanism that adds the user reference
37 */
38 void addUserReference(JpaUserReference user,
39 String mechanism);
40
41 /**
42 * Update an existing user reference
43 *
44 * @param user
45 * the user reference to be updated
46 */
47 void updateUserReference(JpaUserReference user);
48
49 /**
50 * Returns the persisted user reference by the user name and organization id
51 *
52 * @param userName
53 * the user name
54 * @param organizationId
55 * the organization id
56 * @return the user reference or <code>null</code> if not found
57 */
58 JpaUserReference findUserReference(String userName, String organizationId);
59
60 /**
61 * Set an optional roleProvider that takes care about resolving roles
62 * @param roleProvider
63 */
64 void setRoleProvider(RoleProvider roleProvider);
65
66 /**
67 * Load a user by userName
68 *
69 * @param userName
70 * @return the user or <code>null</code> if not found
71 */
72 User loadUser(String userName);
73
74 }