View Javadoc
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  }