From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/manager/IAuthenticationManager.java |   77 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 75 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/gitblit/manager/IAuthenticationManager.java b/src/main/java/com/gitblit/manager/IAuthenticationManager.java
index 3007a30..5406a79 100644
--- a/src/main/java/com/gitblit/manager/IAuthenticationManager.java
+++ b/src/main/java/com/gitblit/manager/IAuthenticationManager.java
@@ -18,8 +18,10 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.gitblit.Constants.Role;
 import com.gitblit.models.TeamModel;
 import com.gitblit.models.UserModel;
+import com.gitblit.transport.ssh.SshKey;
 
 public interface IAuthenticationManager extends IManager {
 
@@ -30,8 +32,19 @@
 	 *
 	 * @param httpRequest
 	 * @return a user object or null
+	 * @since 1.4.0
 	 */
 	UserModel authenticate(HttpServletRequest httpRequest);
+
+	/**
+	 * Authenticate a user based on a ssh public key.
+	 *
+	 * @param username
+	 * @param key
+	 * @return a user object or null
+* 	 * @since 1.5.0
+	 */
+	UserModel authenticate(String username, SshKey key);
 
 	/**
 	 * Authenticate a user based on HTTP request parameters.
@@ -42,6 +55,7 @@
 	 * @param httpRequest
 	 * @param requiresCertificate
 	 * @return a user object or null
+	 * @since 1.4.0
 	 */
 	UserModel authenticate(HttpServletRequest httpRequest, boolean requiresCertificate);
 
@@ -51,15 +65,28 @@
 	 * @see IUserService.authenticate(String, char[])
 	 * @param username
 	 * @param password
+	 * @param remoteIP 
 	 * @return a user object or null
+	 * @since 1.4.0
 	 */
-	UserModel authenticate(String username, char[] password);
+	UserModel authenticate(String username, char[] password, String remoteIP);
+
+	/**
+	 * Return the UserModel for already authenticated user.
+	 *
+	 * @see IUserService.authenticate(String, char[])
+	 * @param username
+	 * @return a user object or null
+	 * @since 1.7.0
+	 */
+	UserModel authenticate(String username);
 
 	/**
 	 * Returns the Gitlbit cookie in the request.
 	 *
 	 * @param request
 	 * @return the Gitblit cookie for the request or null if not found
+	 * @since 1.4.0
 	 */
 	String getCookie(HttpServletRequest request);
 
@@ -68,21 +95,45 @@
 	 *
 	 * @param response
 	 * @param user
+	 * @since 1.4.0
 	 */
+	@Deprecated
 	void setCookie(HttpServletResponse response, UserModel user);
+
+	/**
+	 * Sets a cookie for the specified user.
+	 *
+	 * @param request
+	 * @param response
+	 * @param user
+	 * @since 1.6.1
+	 */
+	void setCookie(HttpServletRequest request, HttpServletResponse response, UserModel user);
 
 	/**
 	 * Logout a user.
 	 *
 	 * @param user
+	 * @since 1.4.0
 	 */
+	@Deprecated
 	void logout(HttpServletResponse response, UserModel user);
+
+	/**
+	 * Logout a user.
+	 *
+	 * @param request
+	 * @param response
+	 * @param user
+	 * @since 1.6.1
+	 */
+	void logout(HttpServletRequest request, HttpServletResponse response, UserModel user);
 
 	/**
 	 * Does the user service support changes to credentials?
 	 *
 	 * @return true or false
-	 * @since 1.0.0
+	 * @since 1.4.0
 	 */
 	boolean supportsCredentialChanges(UserModel user);
 
@@ -91,6 +142,7 @@
 	 *
 	 * @param user
 	 * @return true if the user service supports display name changes
+	 * @since 1.4.0
 	 */
 	boolean supportsDisplayNameChanges(UserModel user);
 
@@ -99,6 +151,7 @@
 	 *
 	 * @param user
 	 * @return true if the user service supports email address changes
+	 * @since 1.4.0
 	 */
 	boolean supportsEmailAddressChanges(UserModel user);
 
@@ -107,6 +160,7 @@
 	 *
 	 * @param user
 	 * @return true if the user service supports team membership changes
+	 * @since 1.4.0
 	 */
 	boolean supportsTeamMembershipChanges(UserModel user);
 
@@ -115,7 +169,26 @@
 	 *
 	 * @param user
 	 * @return true if the team memberships can be changed
+	 * @since 1.4.0
 	 */
 	boolean supportsTeamMembershipChanges(TeamModel team);
 
+	/**
+	 * Returns true if the specified role can be changed.
+	 *
+	 * @param user
+	 * @return true if the specified role can be changed
+	 * @since 1.6.1
+	 */
+	boolean supportsRoleChanges(UserModel user, Role role);
+
+	/**
+	 * Returns true if the specified role can be changed.
+	 *
+	 * @param team
+	 * @return true if the specified role can be changed
+	 * @since 1.6.1
+	 */
+	boolean supportsRoleChanges(TeamModel team, Role role);
+
 }
\ No newline at end of file

--
Gitblit v1.9.1