]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/CmsUserManager.java
Remove naming exceptions from DNS browser
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / CmsUserManager.java
1 package org.argeo.cms;
2
3 import java.time.ZonedDateTime;
4 import java.util.List;
5 import java.util.Map;
6 import java.util.Set;
7
8 import javax.security.auth.Subject;
9
10 import org.argeo.osgi.useradmin.UserDirectory;
11 import org.osgi.framework.InvalidSyntaxException;
12 import org.osgi.service.useradmin.Role;
13 import org.osgi.service.useradmin.User;
14
15 /**
16 * Provide method interfaces to manage user concepts without accessing directly
17 * the userAdmin.
18 */
19 public interface CmsUserManager {
20 public Map<String, String> getKnownBaseDns(boolean onlyWritable);
21 public Set<UserDirectory> getUserDirectories();
22
23 // CurrentUser
24 /** Returns the e-mail of the current logged in user */
25 public String getMyMail();
26
27 // Other users
28 /** Returns a {@link User} given a username */
29 public User getUser(String username);
30
31 /** Can be a group or a user */
32 public String getUserDisplayName(String dn);
33
34 /** Can be a group or a user */
35 public String getUserMail(String dn);
36
37 /** Lists all roles of the given user */
38 public String[] getUserRoles(String dn);
39
40 /** Checks if the passed user belongs to the passed role */
41 public boolean isUserInRole(String userDn, String roleDn);
42
43 // Search
44 /** Returns a filtered list of roles */
45 public Role[] getRoles(String filter) throws InvalidSyntaxException;
46
47 /** Recursively lists users in a given group. */
48 public Set<User> listUsersInGroup(String groupDn, String filter);
49
50 /** Search among groups including system roles and users if needed */
51 public List<User> listGroups(String filter, boolean includeUsers, boolean includeSystemRoles);
52
53 /* MISCELLANEOUS */
54 /** Returns the dn of a role given its local ID */
55 public String buildDefaultDN(String localId, int type);
56
57 /** Exposes the main default domain name for this instance */
58 public String getDefaultDomainName();
59
60 /**
61 * Search for a {@link User} (might also be a group) whose uid or cn is equals
62 * to localId within the various user repositories defined in the current
63 * context.
64 */
65 public User getUserFromLocalId(String localId);
66
67 void changeOwnPassword(char[] oldPassword, char[] newPassword);
68
69 void resetPassword(String username, char[] newPassword);
70
71 @Deprecated
72 String addSharedSecret(String username, int hours);
73
74 // String addSharedSecret(String username, String authInfo, String authToken);
75
76 void addAuthToken(String userDn, String token, Integer hours, String... roles);
77
78 void addAuthToken(String userDn, String token, ZonedDateTime expiryDate, String... roles);
79
80 void expireAuthToken(String token);
81
82 void expireAuthTokens(Subject subject);
83
84 UserDirectory getDirectory(Role role);
85
86 // User createUserFromPerson(Node person);
87
88 // @Deprecated
89 // public UserAdmin getUserAdmin();
90 //
91 // @Deprecated
92 // public UserTransaction getUserTransaction();
93 }