]> git.argeo.org Git - lgpl/argeo-commons.git/blob - UserAdminService.java
4babb87a03c7c40e687802412cc2956fa0402de6
[lgpl/argeo-commons.git] / UserAdminService.java
1 package org.argeo.security;
2
3 import java.util.List;
4 import java.util.Set;
5
6 public interface UserAdminService {
7 /**
8 * Usernames must match this regexp pattern ({@value #USERNAME_PATTERN}).
9 * Thanks to <a href=
10 * "http://www.mkyong.com/regular-expressions/how-to-validate-username-with-regular-expression/"
11 * >this tip</a> (modified to remove '-')
12 */
13 public final static String USERNAME_PATTERN = "^[a-z0-9_]{3,15}$";
14
15 /**
16 * Email addresses must match this regexp pattern ({@value #EMAIL_PATTERN}.
17 * Thanks to <a href=
18 * "http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/"
19 * >this tip</a>.
20 */
21 public final static String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
22
23 /*
24 * USERS
25 */
26 public void newUser(ArgeoUser argeoUser);
27
28 public ArgeoUser getUser(String username);
29
30 public Set<ArgeoUser> listUsers();
31
32 public Boolean userExists(String username);
33
34 public void updateUser(ArgeoUser user);
35
36 public void updateUserPassword(String username, String password);
37
38 /** List users having this role (except the super user). */
39 public Set<ArgeoUser> listUsersInRole(String role);
40
41 public List<String> listUserRoles(String username);
42
43 public void deleteUser(String username);
44
45 /** Synchronize with the underlying DAO. */
46 public void synchronize();
47
48 /*
49 * ROLES
50 */
51 public void newRole(String role);
52
53 public Set<String> listEditableRoles();
54
55 public void deleteRole(String role);
56 }