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 }