1 package fr.ifremer.quadrige2.core.service.administration.user; 2 3 /*- 4 * #%L 5 * Quadrige2 Core :: Quadrige2 Server Core 6 * $Id:$ 7 * $HeadURL:$ 8 * %% 9 * Copyright (C) 2017 Ifremer 10 * %% 11 * This program is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Affero General Public License as published by 13 * the Free Software Foundation, either version 3 of the License, or 14 * (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU Affero General Public License 22 * along with this program. If not, see <http://www.gnu.org/licenses/>. 23 * #L% 24 */ 25 26 import fr.ifremer.quadrige2.core.vo.administration.user.LightQuserVO; 27 import fr.ifremer.quadrige2.core.vo.administration.user.QuserVO; 28 import org.springframework.transaction.annotation.Transactional; 29 30 /** 31 * <p> 32 * UserService interface. 33 * </p> 34 * 35 */ 36 @Transactional(readOnly = true) 37 public interface UserService { 38 39 /** 40 * Get full data on user (need for synchro server) 41 * 42 * @param userId 43 * a int. 44 * @return a {@link fr.ifremer.quadrige2.core.vo.administration.user.QuserVO} object. 45 */ 46 QuserVO getUserById(int userId); 47 48 /** 49 * Get full data on user, and department 50 * 51 * @param userId 52 * a int. 53 * @return a {@link fr.ifremer.quadrige2.core.vo.administration.user.QuserVO} object. 54 */ 55 QuserVO getUserWithDepartmentAndPrivilegesById(int userId); 56 57 /** 58 * Get minimal info on user (need for quadrige2 synchro server) 59 * 60 * @param quserId 61 * a int. 62 * @return a {@link fr.ifremer.quadrige2.core.vo.administration.user.LightQuserVO} object. 63 */ 64 LightQuserVO getLightUserById(int quserId); 65 66 /** 67 * Save into the local database 68 * 69 * @param user 70 * a {@link fr.ifremer.quadrige2.core.vo.administration.user.QuserVO} object. 71 * @param saveOtherLinkedEntities 72 * if true, will save linked entities (department and status) 73 * @return a {@link fr.ifremer.quadrige2.core.vo.administration.user.QuserVO} object. 74 */ 75 @Transactional(readOnly = false) 76 QuserVO save(QuserVO user, boolean saveOtherLinkedEntities); 77 }