From aa6d43e8b28ff73d69a920e9b3a7b284cfce00c3 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 29 Nov 2013 11:05:51 -0500 Subject: [PATCH] Extract SessionManager from GitBlit singleton --- src/main/java/com/gitblit/IUserService.java | 127 +++++++++++++++++++++++------------------- 1 files changed, 69 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/gitblit/IUserService.java b/src/main/java/com/gitblit/IUserService.java index a57b0da..316e4a5 100644 --- a/src/main/java/com/gitblit/IUserService.java +++ b/src/main/java/com/gitblit/IUserService.java @@ -18,15 +18,17 @@ import java.util.Collection; import java.util.List; +import com.gitblit.Constants.AccountType; +import com.gitblit.manager.IRuntimeManager; import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; /** * Implementations of IUserService control all aspects of UserModel objects and * user authentication. - * + * * @author James Moger - * + * */ public interface IUserService { @@ -34,54 +36,54 @@ * Setup the user service. This method allows custom implementations to * retrieve settings from gitblit.properties or the web.xml file without * relying on the GitBlit static singleton. - * - * @param settings - * @since 0.7.0 + * + * @param runtimeManager + * @since 1.4.0 */ - void setup(IStoredSettings settings); + void setup(IRuntimeManager runtimeManager); /** * Does the user service support changes to credentials? - * + * * @return true or false * @since 1.0.0 - */ + */ boolean supportsCredentialChanges(); /** * Does the user service support changes to user display name? - * + * * @return true or false * @since 1.0.0 - */ + */ boolean supportsDisplayNameChanges(); /** * Does the user service support changes to user email address? - * + * * @return true or false * @since 1.0.0 - */ + */ boolean supportsEmailAddressChanges(); - + /** * Does the user service support changes to team memberships? - * + * * @return true or false * @since 1.0.0 - */ + */ boolean supportsTeamMembershipChanges(); - + /** * Does the user service support cookie authentication? - * + * * @return true or false */ boolean supportsCookies(); /** * Returns the cookie value for the specified user. - * + * * @param model * @return cookie value */ @@ -89,7 +91,7 @@ /** * Authenticate a user based on their cookie. - * + * * @param cookie * @return a user object or null */ @@ -97,7 +99,7 @@ /** * Authenticate a user based on a username and password. - * + * * @param username * @param password * @return a user object or null @@ -106,14 +108,14 @@ /** * Logout a user. - * + * * @param user */ void logout(UserModel user); - + /** * Retrieve the user object for the specified username. - * + * * @param username * @return a user object or null */ @@ -121,7 +123,7 @@ /** * Updates/writes a complete user object. - * + * * @param model * @return true if update is successful */ @@ -129,17 +131,17 @@ /** * Updates/writes all specified user objects. - * + * * @param models a list of user models * @return true if update is successful * @since 1.2.0 */ boolean updateUserModels(Collection<UserModel> models); - + /** * Adds/updates a user object keyed by username. This method allows for * renaming a user. - * + * * @param username * the old username * @param model @@ -150,7 +152,7 @@ /** * Deletes the user object from the user service. - * + * * @param model * @return true if successful */ @@ -158,7 +160,7 @@ /** * Delete the user object with the specified username - * + * * @param username * @return true if successful */ @@ -166,14 +168,14 @@ /** * Returns the list of all users available to the login service. - * + * * @return list of all usernames */ List<String> getAllUsernames(); - + /** * Returns the list of all users available to the login service. - * + * * @return list of all users * @since 0.8.0 */ @@ -181,35 +183,35 @@ /** * Returns the list of all teams available to the login service. - * + * * @return list of all teams * @since 0.8.0 - */ + */ List<String> getAllTeamNames(); - + /** * Returns the list of all teams available to the login service. - * + * * @return list of all teams * @since 0.8.0 - */ + */ List<TeamModel> getAllTeams(); - + /** * Returns the list of all users who are allowed to bypass the access * restriction placed on the specified repository. - * + * * @param role * the repository name * @return list of all usernames that can bypass the access restriction * @since 0.8.0 - */ - List<String> getTeamnamesForRepositoryRole(String role); + */ + List<String> getTeamNamesForRepositoryRole(String role); /** * Sets the list of all teams who are allowed to bypass the access * restriction placed on the specified repository. - * + * * @param role * the repository name * @param teamnames @@ -218,38 +220,38 @@ */ @Deprecated boolean setTeamnamesForRepositoryRole(String role, List<String> teamnames); - + /** * Retrieve the team object for the specified team name. - * + * * @param teamname * @return a team object or null * @since 0.8.0 - */ + */ TeamModel getTeamModel(String teamname); /** * Updates/writes a complete team object. - * + * * @param model * @return true if update is successful * @since 0.8.0 - */ + */ boolean updateTeamModel(TeamModel model); /** * Updates/writes all specified team objects. - * + * * @param models a list of team models * @return true if update is successful * @since 1.2.0 - */ + */ boolean updateTeamModels(Collection<TeamModel> models); - + /** * Updates/writes and replaces a complete team object keyed by teamname. * This method allows for renaming a team. - * + * * @param teamname * the old teamname * @param model @@ -261,7 +263,7 @@ /** * Deletes the team object from the user service. - * + * * @param model * @return true if successful * @since 0.8.0 @@ -270,17 +272,17 @@ /** * Delete the team object with the specified teamname - * + * * @param teamname * @return true if successful * @since 0.8.0 - */ + */ boolean deleteTeam(String teamname); /** * Returns the list of all users who are allowed to bypass the access * restriction placed on the specified repository. - * + * * @param role * the repository name * @return list of all usernames that can bypass the access restriction @@ -291,7 +293,7 @@ /** * Sets the list of all uses who are allowed to bypass the access * restriction placed on the specified repository. - * + * * @param role * the repository name * @param usernames @@ -302,7 +304,7 @@ /** * Renames a repository role. - * + * * @param oldRole * @param newRole * @return true if successful @@ -311,15 +313,24 @@ /** * Removes a repository role from all users. - * + * * @param role * @return true if successful */ boolean deleteRepositoryRole(String role); /** + * Returns the account type for the user models. + * + * @return the account type + * @since 1.4.0 + */ + AccountType getAccountType(); + + /** * @See java.lang.Object.toString(); * @return string representation of the login service */ + @Override String toString(); } -- Gitblit v1.9.1