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