1 /* 2 * Copyright (c) 2002-2017, Mairie de Paris 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright notice 10 * and the following disclaimer. 11 * 12 * 2. Redistributions in binary form must reproduce the above copyright notice 13 * and the following disclaimer in the documentation and/or other materials 14 * provided with the distribution. 15 * 16 * 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its 17 * contributors may be used to endorse or promote products derived from 18 * this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 * 32 * License 1.0 33 */ 34 package fr.paris.lutece.plugins.mylutece.modules.openiddatabase.authentication.business; 35 36 import fr.paris.lutece.plugins.mylutece.modules.openiddatabase.authentication.BaseUser; 37 import fr.paris.lutece.portal.service.plugin.Plugin; 38 import fr.paris.lutece.portal.service.security.LuteceAuthentication; 39 import fr.paris.lutece.portal.service.spring.SpringContextService; 40 41 import java.util.ArrayList; 42 import java.util.Collection; 43 44 45 /** 46 * This class provides instances management methods (create, find, ...) for databaseUser objects 47 */ 48 public final class OpenIdDatabaseHome 49 { 50 // Static variable pointed at the DAO instance 51 private static IManageUsers _dao = (IManageUsers) SpringContextService.getPluginBean( "openiddatabase", 52 "openIdDatabaseDAO" ); 53 54 /** 55 * Find users by login 56 * 57 * @param strLogin the login 58 * @param plugin The Plugin using this data access service 59 * @param authenticationService the LuteceAuthentication object 60 * @return DatabaseUser the user corresponding to the login 61 */ 62 public static BaseUser findLuteceUserByLogin( String strLogin, Plugin plugin, 63 LuteceAuthentication authenticationService ) 64 { 65 return _dao.selectLuteceUserByLogin( strLogin, plugin, authenticationService ); 66 } 67 68 /** 69 * Load the list of {@link BaseUser} 70 * @param plugin The Plugin using this data access service 71 * @return The Collection of the {@link BaseUser} 72 */ 73 public static Collection<BaseUser> findDatabaseUsersList( Plugin plugin, LuteceAuthentication authenticationService ) 74 { 75 return _dao.selectLuteceUserList( plugin, authenticationService ); 76 } 77 78 /** 79 * Find user's roles by login 80 * 81 * @param strLogin the login 82 * @param plugin The Plugin using this data access service 83 * @return ArrayList the role key list corresponding to the login 84 */ 85 public static ArrayList<String> findUserRolesFromLogin( String strLogin, Plugin plugin ) 86 { 87 return _dao.selectUserRolesFromLogin( strLogin, plugin ); 88 } 89 90 /** 91 * Delete roles for a user 92 * @param nIdUser The id of the user 93 * @param plugin The Plugin using this data access service 94 */ 95 public static void removeRolesForUser( int nIdUser, Plugin plugin ) 96 { 97 _dao.deleteRolesForUser( nIdUser, plugin ); 98 } 99 100 /** 101 * Assign a role to user 102 * @param nIdUser The id of the user 103 * @param strRoleKey The key of the role 104 * @param plugin The Plugin using this data access service 105 */ 106 public static void addRoleForUser( int nIdUser, String strRoleKey, Plugin plugin ) 107 { 108 _dao.createRoleForUser( nIdUser, strRoleKey, plugin ); 109 } 110 111 /** 112 * Find user's groups by login 113 * 114 * @param strLogin the login 115 * @param plugin The Plugin using this data access service 116 * @return ArrayList the group key list corresponding to the login 117 */ 118 public static ArrayList<String> findUserGroupsFromLogin( String strLogin, Plugin plugin ) 119 { 120 return _dao.selectUserGroupsFromLogin( strLogin, plugin ); 121 } 122 123 /** 124 * Delete groups for a user 125 * @param nIdUser The id of the user 126 * @param plugin The Plugin using this data access service 127 */ 128 public static void removeGroupsForUser( int nIdUser, Plugin plugin ) 129 { 130 _dao.deleteGroupsForUser( nIdUser, plugin ); 131 } 132 133 /** 134 * Assign a group to user 135 * @param nIdUser The id of the user 136 * @param strGroupKey The key of the group 137 * @param plugin The Plugin using this data access service 138 */ 139 public static void addGroupForUser( int nIdUser, String strGroupKey, Plugin plugin ) 140 { 141 _dao.createGroupForUser( nIdUser, strGroupKey, plugin ); 142 } 143 }