-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserService.java
More file actions
147 lines (125 loc) · 3.54 KB
/
Copy pathUserService.java
File metadata and controls
147 lines (125 loc) · 3.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package ch.fhnw.timerecordingbackend.service;
import ch.fhnw.timerecordingbackend.dto.authentication.ChangePasswordRequest;
import ch.fhnw.timerecordingbackend.model.Role;
import ch.fhnw.timerecordingbackend.model.User;
import ch.fhnw.timerecordingbackend.model.enums.UserStatus;
import java.util.List;
import java.util.Optional;
/**
* UserService Interface
* @author PD
* Code von anderen Teammitgliedern oder Quellen wird durch einzelne Kommentare deklariert
* @version 1.0
*/
public interface UserService {
/**
* Liefert alle Benutzer zurück
* @return Liste mit allen Benutzern
*/
List<User> findAllUsers();
/**
* Liefert alle aktiven Benutzer zurück
* @return Liste mit allen aktiven Benutzern
*/
List<User> findActiveUsers();
/**
* User anhand der ID finden
* @param id
* @return Optional mit User, wenn gefunden, sonst Optional.empty()
*/
Optional<User> findById(Long id);
/**
* User anhand der E-Mail finden
* @param email
* @return Optional mit User, wenn gefunden, sonst Optional.empty()
*/
Optional<User> findByEmail(String email);
/**
* Neuen User erstellen und mit Rolle verknüpfen
* @param user
* @param roleName
* @return neuer User mit Rolle und ID
*/
User createUser(User user, String roleName);
/**
* User aktualisieren
* @param id
* @param updatedUser neuer User mit allen Feldern
* @return aktualisierten User
*/
User updateUser(Long id, User updatedUser);
/**
* Passwort des Users aktualisieren
* @param id
* @param oldPassword
* @param newPassword
* @return true, wenn Passwort aktualisiert wurde, sonst false
*/
boolean updatePassword (Long id, String oldPassword, String newPassword);
/**
* Ändert das Passwort für den angemeldeten User.
* @param request enthält userId, altes und neues Passwort
*/
void changePassword(ChangePasswordRequest request);
/**
* Passwort zurücksetzen
* @param userId
* @return neues Passwort
*/
String resetPasswordToTemporary(Long userId);
/**
* User deaktivieren
* @param id
*/
User deactivateUser(Long id);
/**
* User aktivieren
* @param id
*/
User activateUser(Long id);
/**
* User Status aktualisieren
* @param id
* @param status
* @return aktualisierten User
*/
User updateUserStatus(Long id, UserStatus status);
/**
* Rolle zu User hinzufügen
* @param id
* @param roleName
* @return neuen User mit Rolle und ID
*/
User addRoleToUser(Long id, String roleName);
/**
* Rolle von User entfernen
* @param id
* @param roleName
* @return entfernter User
*/
User removeRoleFromUser(Long id, String roleName);
/**
* Sucht User mit Suchbegriff
* @param searchTerm Suchbegriff
* @return Liste mit gefundenen Usern
*/
List<User> searchUsers(String searchTerm);
/**
* Prüft ob User mit ID Admin ist
* @param id
* @return true, wenn Admin ist, sonst false
*/
boolean isAdmin (Long id);
/**
* Prüft ob User mit ID Project Manager ist
* @param id
* @return true, wenn Project Manager ist, sonst false
*/
boolean isProjectManager(Long id);
/**
* Liefert alle Rollen zurück
* @return Liste mit allen Rollen
*/
List<Role> getAllRoles();
boolean requestPasswordReset(String email); // <-- Stelle sicher, dass diese Zeile genau so existiert
}