]> git.argeo.org Git - lgpl/argeo-commons.git/blob - UserAdminService.java
964c9dff2d7332a0630f943daef4ca07a78cf9e7
[lgpl/argeo-commons.git] / UserAdminService.java
1 package org.argeo.security;
2
3 import java.util.Set;
4
5 import org.springframework.security.userdetails.UserDetailsManager;
6
7 public interface UserAdminService extends UserDetailsManager {
8 /**
9 * Usernames must match this regexp pattern ({@value #USERNAME_PATTERN}).
10 * Thanks to <a href=
11 * "http://www.mkyong.com/regular-expressions/how-to-validate-username-with-regular-expression/"
12 * >this tip</a> (modified to remove '-' and add upper-case)
13 */
14 public final static String USERNAME_PATTERN = "^[a-zA-Z0-9_]{3,15}$";
15
16 /**
17 * Email addresses must match this regexp pattern ({@value #EMAIL_PATTERN}.
18 * Thanks to <a href=
19 * "http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/"
20 * >this tip</a>.
21 */
22 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,})$";
23
24 /*
25 * USERS
26 */
27 /** List users having this role (except the super user). */
28 public Set<String> listUsersInRole(String role);
29
30 /** Synchronize with the underlying DAO. */
31 public void synchronize();
32
33 /*
34 * ROLES
35 */
36 public void newRole(String role);
37
38 public Set<String> listEditableRoles();
39
40 public void deleteRole(String role);
41 }