Blame view

src/main/java/fr/plil/sio/persistence/api/UserService.java 1.76 KB
fd5e74ca   jcartign   First student ver...
1
2
3
4
5
6
7
8
  package fr.plil.sio.persistence.api;
  
  public interface UserService {
  
      /**
       * Create an user with a specific name in the database and affected to an existing group.
       * There is no two users with the same name in the database.
       *
62ed607d   jcartign   Porting update fr...
9
       * @param name the name of the user
fd5e74ca   jcartign   First student ver...
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
       * @param groupName the name of the group
       * @return an instance of the user
       * @throws IllegalArgumentException if name or groupName is null, or if group does not exist.
       * @throws IllegalStateException    if an user with the same name is already present
       */
      User create(String name, String groupName);
  
      /**
       * Delete an user in the database.
       *
       * @param name the name of the user to remove
       * @return true if user has been deleted, false if user is not found in the database.
       * @throws IllegalArgumentException if name is null
       */
      boolean delete(String name);
  
      /**
       * Find an user in the database based on its name.
       *
       * @param name the name of the user to search for.
       * @return an instance of the user if found, else null.
       * @throws IllegalArgumentException if name is null
       */
      User findByName(String name);
  
      /**
       * Check method to control if an user has a specific right. The following rule is used: an user has a specific
       * right if the group where the user is contains the specific right or one of its parents.
       *
       * @param userName the name of the user
       * @param right    the specific right
       * @return true if the group where the user is contains the specific right or one of its parents, false else.
       * @throws IllegalArgumentException if userName or right is null, or if the user or right does not exist in the db.
       */
      boolean isUserHasRight(String userName, Right right);
  }