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.ldapdatabase.authentication.business; 35 36 import fr.paris.lutece.plugins.mylutece.modules.ldapdatabase.authentication.LDAPDatabaseUser; 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 ldapUser objects 47 */ 48 public final class LdapDatabaseHome 49 { 50 // Static variable pointed at the DAO instance 51 private static ILdapDatabaseDAO _dao = (LdapDatabaseDAO) SpringContextService.getPluginBean( "ldapdatabase", 52 "ldapDatabaseDAO" ); 53 54 /** 55 * Private constructor - this class need not be instantiated 56 */ 57 private LdapDatabaseHome( ) 58 { 59 } 60 61 /** 62 * Find users by guid 63 * 64 * @param strLdapGuid the Ldap guid 65 * @param plugin The Plugin using this data access service 66 * @param authenticationService the LuteceAuthentication object 67 * @return LdapDatabaseUser the user corresponding to the guid 68 */ 69 public static LDAPDatabaseUser findLuteceUserByGuid( String strLdapGuid, Plugin plugin, 70 LuteceAuthentication authenticationService ) 71 { 72 return _dao.selectLuteceUserByGuid( strLdapGuid, plugin, authenticationService ); 73 } 74 75 /** 76 * Find user's roles by guid 77 * 78 * @param strGuid the Ldap guid 79 * @param plugin The Plugin using this data access service 80 * @return ArrayList the role key list corresponding to the guid 81 */ 82 public static ArrayList<String> findUserRolesFromGuid( String strGuid, Plugin plugin ) 83 { 84 return _dao.selectUserRolesFromGuid( strGuid, plugin ); 85 } 86 87 /** 88 * Find user's guid by role key 89 * 90 * @param strRoleKey the Lutece Role Key 91 * @param plugin The Plugin using this data access service 92 * @return ArrayList the guid key list corresponding to the role 93 */ 94 public static ArrayList<String> findUserGuidFromRole( String strRoleKey, Plugin plugin ) 95 { 96 return _dao.selectUserGuidFromRole( strRoleKey, plugin ); 97 } 98 99 /** 100 * Delete roles for a user 101 * @param nIdUser The id of the user 102 * @param plugin The Plugin using this data access service 103 */ 104 public static void removeRolesForUser( int nIdUser, Plugin plugin ) 105 { 106 _dao.deleteRolesForUser( nIdUser, plugin ); 107 } 108 109 /** 110 * Assign a role to user 111 * @param nIdUser The id of the user 112 * @param strRoleKey The key of the role 113 * @param plugin The Plugin using this data access service 114 */ 115 public static void addRoleForUser( int nIdUser, String strRoleKey, Plugin plugin ) 116 { 117 _dao.createRoleForUser( nIdUser, strRoleKey, plugin ); 118 } 119 120 /** 121 * Returns a collection of LdapUser objects 122 * @param plugin The current plugin using this method 123 * @param authenticationService the LuteceAuthentication object 124 * @return A collection of LdapUser 125 */ 126 public static Collection<LDAPDatabaseUser> findUsersList( Plugin plugin, LuteceAuthentication authenticationService ) 127 { 128 return _dao.selectUserList( plugin, authenticationService ); 129 } 130 }