From f76fee63ed9cb3a30d3c0c092d860b1cb93a481b Mon Sep 17 00:00:00 2001
From: Gerard Smyth <gerard.smyth@gmail.com>
Date: Thu, 08 May 2014 13:09:30 -0400
Subject: [PATCH] Updated the SyndicationServlet to provide an additional option to return details of the tags in the repository instead of the commits. This uses a new 'ot' request parameter to indicate the object type of the content to return, which can be ither TAG or COMMIT. If this is not provided, then COMMIT is assumed to maintain backwards compatability. If tags are returned, then the paging parameters, 'l' and 'pg' are still supported, but searching options are currently ignored.

---
 src/main/java/com/gitblit/IUserService.java |  178 ++++++++++++++++++-----------------------------------------
 1 files changed, 55 insertions(+), 123 deletions(-)

diff --git a/src/main/java/com/gitblit/IUserService.java b/src/main/java/com/gitblit/IUserService.java
index a57b0da..6f3c542 100644
--- a/src/main/java/com/gitblit/IUserService.java
+++ b/src/main/java/com/gitblit/IUserService.java
@@ -18,15 +18,16 @@
 import java.util.Collection;
 import java.util.List;
 
+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,146 +35,99 @@
 	 * 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);
-
-	/**
-	 * 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();
+	void setup(IRuntimeManager runtimeManager);
 
 	/**
 	 * Returns the cookie value for the specified user.
-	 * 
+	 *
 	 * @param model
 	 * @return cookie value
+ 	 * @since 0.5.0
 	 */
 	String getCookie(UserModel model);
 
 	/**
-	 * Authenticate a user based on their cookie.
-	 * 
+	 * Retrieve a user object for the specified cookie.
+	 *
 	 * @param cookie
 	 * @return a user object or null
+ 	 * @since 0.5.0
 	 */
-	UserModel authenticate(char[] cookie);
+	UserModel getUserModel(char[] cookie);
 
-	/**
-	 * Authenticate a user based on a username and password.
-	 * 
-	 * @param username
-	 * @param password
-	 * @return a user object or null
-	 */
-	UserModel authenticate(String username, char[] password);
-
-	/**
-	 * 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
+ 	 * @since 0.5.0
 	 */
 	UserModel getUserModel(String username);
 
 	/**
 	 * Updates/writes a complete user object.
-	 * 
+	 *
 	 * @param model
 	 * @return true if update is successful
+ 	 * @since 0.5.0
 	 */
 	boolean updateUserModel(UserModel model);
 
 	/**
 	 * 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
 	 *            the user object to use for username
 	 * @return true if update is successful
+ 	 * @since 0.5.0
 	 */
 	boolean updateUserModel(String username, UserModel model);
 
 	/**
 	 * Deletes the user object from the user service.
-	 * 
+	 *
 	 * @param model
 	 * @return true if successful
+ 	 * @since 0.5.0
 	 */
 	boolean deleteUserModel(UserModel model);
 
 	/**
 	 * Delete the user object with the specified username
-	 * 
+	 *
 	 * @param username
 	 * @return true if successful
+ 	 * @since 0.5.0
 	 */
 	boolean deleteUser(String username);
 
 	/**
 	 * Returns the list of all users available to the login service.
-	 * 
+	 *
 	 * @return list of all usernames
+ 	 * @since 0.5.0
 	 */
 	List<String> getAllUsernames();
-	
+
 	/**
 	 * Returns the list of all users available to the login service.
-	 * 
+	 *
 	 * @return list of all users
 	 * @since 0.8.0
 	 */
@@ -181,75 +135,62 @@
 
 	/**
 	 * 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
-	 * @return true if successful
-	 * @since 0.8.0
-	 */
-	@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 +202,7 @@
 
 	/**
 	 * Deletes the team object from the user service.
-	 * 
+	 *
 	 * @param model
 	 * @return true if successful
 	 * @since 0.8.0
@@ -270,17 +211,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
@@ -289,31 +230,21 @@
 	List<String> getUsernamesForRepositoryRole(String role);
 
 	/**
-	 * 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
-	 * @return true if successful
-	 */
-	@Deprecated
-	boolean setUsernamesForRepositoryRole(String role, List<String> usernames);
-
-	/**
 	 * Renames a repository role.
-	 * 
+	 *
 	 * @param oldRole
 	 * @param newRole
 	 * @return true if successful
+ 	 * @since 0.5.0
 	 */
 	boolean renameRepositoryRole(String oldRole, String newRole);
 
 	/**
 	 * Removes a repository role from all users.
-	 * 
+	 *
 	 * @param role
 	 * @return true if successful
+ 	 * @since 0.5.0
 	 */
 	boolean deleteRepositoryRole(String role);
 
@@ -321,5 +252,6 @@
 	 * @See java.lang.Object.toString();
 	 * @return string representation of the login service
 	 */
+	@Override
 	String toString();
 }

--
Gitblit v1.9.1