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