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 40 import java.util.ArrayList; 41 import java.util.Collection; 42 43 44 /** 45 * 46 * 47 */ 48 public interface IManageUsers 49 { 50 /** 51 * Find users by login 52 * 53 * @param strLogin the login 54 * @param plugin The Plugin using this data access service 55 * @param authenticationService the LuteceAuthentication object 56 * @return BaseUser the user corresponding to the login 57 */ 58 BaseUser selectLuteceUserByLogin( String strLogin, Plugin plugin, LuteceAuthentication authenticationService ); 59 60 /** 61 * Load the list of {@link BaseUser} 62 * @param plugin The Plugin using this data access service 63 * @return The Collection of the {@link BaseUser} 64 */ 65 Collection<BaseUser> selectLuteceUserList( Plugin plugin, LuteceAuthentication authenticationService ); 66 67 /** 68 * Select the list of DatabaseUsers for a login 69 * 70 * @param strLogin The login of DatabaseUser 71 * @param plugin The Plugin using this data access service 72 * @return The Collection of the DatabaseUsers 73 */ 74 ArrayList<String> selectUserRolesFromLogin( String strLogin, Plugin plugin ); 75 76 /** 77 * Delete roles for a user 78 * @param nIdUser The id of the user 79 * @param plugin The Plugin using this data access service 80 */ 81 void deleteRolesForUser( int nIdUser, Plugin plugin ); 82 83 /** 84 * Assign a role to user 85 * @param nIdUser The id of the user 86 * @param strRoleKey The key of the role 87 * @param plugin The Plugin using this data access service 88 */ 89 void createRoleForUser( int nIdUser, String strRoleKey, Plugin plugin ); 90 91 /** 92 * Find user's groups by login 93 * 94 * @param strLogin the login 95 * @param plugin The Plugin using this data access service 96 * @return ArrayList the group key list corresponding to the login 97 */ 98 ArrayList<String> selectUserGroupsFromLogin( String strLogin, Plugin plugin ); 99 100 /** 101 * Delete groups for a user 102 * @param nIdUser The id of the user 103 * @param plugin The Plugin using this data access service 104 */ 105 void deleteGroupsForUser( int nIdUser, Plugin plugin ); 106 107 /** 108 * Assign a group to user 109 * @param nIdUser The id of the user 110 * @param strGroupKey The key of the group 111 * @param plugin The Plugin using this data access service 112 */ 113 void createGroupForUser( int nIdUser, String strGroupKey, Plugin plugin ); 114 }