You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2013/03/07 22:16:10 UTC

svn commit: r1454104 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server: DuccAbstractHandler.java DuccHandler.java DuccHandlerJsonFormat.java DuccHandlerLegacy.java

Author: degenaro
Date: Thu Mar  7 21:16:10 2013
New Revision: 1454104

URL: http://svn.apache.org/r1454104
Log:
UIMA-2722 DUCC webserver (WS) should give hints for Login/Preferences - when hovering over greyed-out Terminate/Start/Stop buttons

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java?rev=1454104&r1=1454103&r2=1454104&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java Thu Mar  7 21:16:10 2013
@@ -206,6 +206,80 @@ public abstract class DuccAbstractHandle
 		return retVal;
 	}
 	
+	public enum AuthorizationStatus { LoggedInOwner, LoggedInAdministrator, LoggedInNotOwner, LoggedInNotAdministrator, NotLoggedIn };
+	
+	public AuthorizationStatus getAuthorizationStatus(HttpServletRequest request, String resourceOwnerUserid) {
+		String methodName = "getAuthorizationStatus";
+		duccLogger.trace(methodName, null, messages.fetch("enter"));
+		AuthorizationStatus retVal = AuthorizationStatus.NotLoggedIn;
+		try {
+			String text = "";
+			boolean authenticated = duccWebSessionManager.isAuthentic(request);
+			String userId = duccWebSessionManager.getUserId(request);
+			if(authenticated) {
+				if(match(resourceOwnerUserid,userId)) {
+					text = "user "+userId+" is resource owner";
+					retVal = AuthorizationStatus.LoggedInOwner;
+				}
+				else {
+					RequestRole requestRole = getRole(request);
+					switch(requestRole) {
+					case User:
+						text = "user "+userId+" is not resource owner "+resourceOwnerUserid;
+						retVal = AuthorizationStatus.LoggedInNotOwner;
+						break;
+					case Administrator:
+						if(duccWebAdministrators.isAdministrator(userId)) {
+							text = "user "+userId+" is administrator";
+							retVal = AuthorizationStatus.LoggedInAdministrator;
+						}
+						else {
+							text = "user "+userId+" is not administrator ";
+							retVal = AuthorizationStatus.LoggedInNotAdministrator;
+						}
+						break;
+					}
+				}
+			}
+			else {
+				text = "user "+userId+" is not authenticated";
+				retVal = AuthorizationStatus.NotLoggedIn;
+			}
+			duccLogger.debug(methodName, null, messages.fetch(text));
+		}
+		catch(Exception e) {
+			duccLogger.error(methodName, null, e);
+		}
+		duccLogger.trace(methodName, null, messages.fetch("exit"));
+		return retVal;
+	}
+	
+	public boolean isUserAuthorized(HttpServletRequest request, String resourceOwnerUserid) {
+		String methodName = "isUserAuthorized";
+		duccLogger.trace(methodName, null, messages.fetch("enter"));
+		boolean retVal = false;
+		try {
+			AuthorizationStatus authorizationStatus = getAuthorizationStatus(request, resourceOwnerUserid);
+			switch(authorizationStatus) {
+			case LoggedInOwner:
+			case LoggedInAdministrator:
+				break;
+			case LoggedInNotOwner:
+			case LoggedInNotAdministrator:
+			case NotLoggedIn:
+				break;
+			default:
+				break;
+			}
+		}
+		catch(Exception e) {
+			duccLogger.error(methodName, null, e);
+		}
+		duccLogger.trace(methodName, null, messages.fetch("exit"));
+		return retVal;
+	}
+	
+	@Deprecated
 	public boolean isAuthorized(HttpServletRequest request, String resourceOwnerUserid) {
 		String methodName = "isAuthorized";
 		duccLogger.trace(methodName, null, messages.fetch("enter"));
@@ -713,11 +787,13 @@ public abstract class DuccAbstractHandle
 		return retVal;
 	}
 
+	@Deprecated
 	public String getDisabled(HttpServletRequest request, IDuccWork duccWork) {
 		String resourceOwnerUserId = duccWork.getStandardInfo().getUser();
 		return getDisabled(request, resourceOwnerUserId);
 	}
 
+	@Deprecated
 	public String getDisabled(HttpServletRequest request, String resourceOwnerUserId) {
 		String disabled = "disabled=\"disabled\"";
 		if(isAuthorized(request, resourceOwnerUserId)) {
@@ -725,7 +801,37 @@ public abstract class DuccAbstractHandle
 		}
 		return disabled;
 	}
-
+	
+	public String getDisabledWithHover(HttpServletRequest request, IDuccWork duccWork) {
+		String resourceOwnerUserId = duccWork.getStandardInfo().getUser();
+		return getDisabledWithHover(request, resourceOwnerUserId);
+	}
+	
+	public String getDisabledWithHover(HttpServletRequest request, String resourceOwnerUserId) {
+		String disabled = "disabled=\"disabled\"";
+		String hover = "";
+		AuthorizationStatus authorizationStatus = getAuthorizationStatus(request, resourceOwnerUserId);
+		switch(authorizationStatus) {
+		case LoggedInOwner:
+			disabled = "";
+			break;
+		case LoggedInAdministrator:
+			disabled = "";
+			break;
+		case LoggedInNotOwner:
+			hover = " title=\"Hint: Preferences can be used to change role to Administrator\"";
+			break;
+		case LoggedInNotAdministrator:
+			break;
+		case NotLoggedIn:
+			hover = " title=\"Hint: Login\"";
+			break;
+		default:
+			break;
+		}
+		return disabled+hover;
+	}
+	
 	public String buildjConsoleLink(String service) {
 		String location = "buildjConsoleLink";
 		String href = "<a href=\""+duccjConsoleLink+"?"+"service="+service+"\" onclick=\"var newWin = window.open(this.href,'child','height=800,width=1200,scrollbars');  newWin.focus(); return false;\">"+service+"</a>";

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1454104&r1=1454103&r2=1454104&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Thu Mar  7 21:16:10 2013
@@ -1801,7 +1801,7 @@ public class DuccHandler extends DuccAbs
 		String methodName = "handleDuccServletSystemAdminControlData";
 		duccLogger.trace(methodName, null, messages.fetch("enter"));
 		StringBuffer sb = new StringBuffer();
-		boolean authorized = isAuthorized(request,null);
+		boolean authorized = isUserAuthorized(request,null);
 		boolean accept = SystemState.getInstance().isAcceptJobs();
 		String acceptMode = "disabled=disabled";
 		String blockMode = "disabled=disabled";
@@ -1845,7 +1845,7 @@ public class DuccHandler extends DuccAbs
 		String methodName = "handleDuccServletSystemJobsControl";
 		duccLogger.trace(methodName, null, messages.fetch("enter"));
 		StringBuffer sb = new StringBuffer();
-		boolean authorized = isAuthorized(request,null);
+		boolean authorized = isUserAuthorized(request,null);
 		if(authorized) {
 			String userId = duccWebSessionManager.getUserId(request);
 			String name = "type";
@@ -2446,7 +2446,7 @@ public class DuccHandler extends DuccAbs
 			IDuccWorkJob duccWorkJob = (IDuccWorkJob) duccWorkMap.findDuccWork(DuccType.Job, value);
 			if(duccWorkJob != null) {
 				String resourceOwnerUserId = duccWorkJob.getStandardInfo().getUser().trim();
-				if(isAuthorized(request,resourceOwnerUserId)) {
+				if(isUserAuthorized(request,resourceOwnerUserId)) {
 					String arg1 = "-"+name;
 					String arg2 = value;
 					String userId = duccWebSessionManager.getUserId(request);
@@ -2562,7 +2562,7 @@ public class DuccHandler extends DuccAbs
 			IDuccWorkReservation duccWorkReservation = (IDuccWorkReservation) duccWorkMap.findDuccWork(DuccType.Reservation, value);
 			if(duccWorkReservation != null) {
 				String resourceOwnerUserId = duccWorkReservation.getStandardInfo().getUser().trim();
-				if(isAuthorized(request,resourceOwnerUserId)) {
+				if(isUserAuthorized(request,resourceOwnerUserId)) {
 					String arg1 = "-"+name;
 					String arg2 = value;
 					String userId = duccWebSessionManager.getUserId(request);
@@ -2629,7 +2629,7 @@ public class DuccHandler extends DuccAbs
 				IDuccWorkJob duccWorkJob = (IDuccWorkJob) duccWorkMap.findDuccWork(DuccType.Service, value);
 				if(duccWorkJob != null) {
 					String resourceOwnerUserId = duccWorkJob.getStandardInfo().getUser().trim();
-					if(isAuthorized(request,resourceOwnerUserId)) {
+					if(isUserAuthorized(request,resourceOwnerUserId)) {
 						String arg1 = "-"+name;
 						String arg2 = value;
 						String userId = duccWebSessionManager.getUserId(request);
@@ -2683,7 +2683,7 @@ public class DuccHandler extends DuccAbs
 			ServicesRegistry servicesRegistry = new ServicesRegistry();
 			String resourceOwnerUserId = servicesRegistry.findServiceUser(id);
 			if(resourceOwnerUserId != null) {
-				if(isAuthorized(request,resourceOwnerUserId)) {
+				if(isUserAuthorized(request,resourceOwnerUserId)) {
 					String arg1 = "--"+command;
 					String arg2 = id;
 					String userId = duccWebSessionManager.getUserId(request);

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java?rev=1454104&r1=1454103&r2=1454104&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Thu Mar  7 21:16:10 2013
@@ -121,7 +121,7 @@ public class DuccHandlerJsonFormat exten
 		sb.append("<span class=\"ducc-col-terminate\">");
 		if(terminateEnabled) {
 			if(!job.isFinished()) {
-				sb.append("<input type=\"button\" onclick=\"ducc_confirm_terminate_job("+id+")\" value=\"Terminate\" "+getDisabled(request,job)+"/>");
+				sb.append("<input type=\"button\" onclick=\"ducc_confirm_terminate_job("+id+")\" value=\"Terminate\" "+getDisabledWithHover(request,job)+"/>");
 			}
 		}
 		sb.append("</span>");
@@ -507,7 +507,7 @@ public class DuccHandlerJsonFormat exten
 		sb.append("<span class=\"ducc-col-terminate\">");
 		if(terminateEnabled) {
 			if(!duccwork.isCompleted()) {
-				String disabled = getDisabled(request,duccwork);
+				String disabled = getDisabledWithHover(request,duccwork);
 				String user = duccwork.getStandardInfo().getUser();
 				if(user != null) {
 					if(user.equals(JdConstants.reserveUser)) {
@@ -1012,7 +1012,7 @@ public class DuccHandlerJsonFormat exten
 					col.append("<span class=\"ducc-col-start\">");
 					if(buttonsEnabled) {
 						if(!deployments.equals(instances)) {
-							col.append("<input type=\"button\" onclick=\"ducc_confirm_service_start("+sid+")\" value=\"Start\" "+getDisabled(request,user)+"/>");
+							col.append("<input type=\"button\" onclick=\"ducc_confirm_service_start("+sid+")\" value=\"Start\" "+getDisabledWithHover(request,user)+"/>");
 						}
 					}
 					col.append("</span>");
@@ -1024,7 +1024,7 @@ public class DuccHandlerJsonFormat exten
 					col.append("<span class=\"ducc-col-stop\">");
 					if(buttonsEnabled) {
 						if(!deployments.equals("0")) {
-							col.append("<input type=\"button\" onclick=\"ducc_confirm_service_stop("+sid+")\" value=\"Stop\" "+getDisabled(request,user)+"/>");
+							col.append("<input type=\"button\" onclick=\"ducc_confirm_service_stop("+sid+")\" value=\"Stop\" "+getDisabledWithHover(request,user)+"/>");
 						}
 					}
 					col.append("</span>");

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java?rev=1454104&r1=1454103&r2=1454104&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java Thu Mar  7 21:16:10 2013
@@ -102,7 +102,7 @@ public class DuccHandlerLegacy extends D
 		sb.append("<td valign=\"bottom\" class=\"ducc-col-terminate\">");
 		if(terminateEnabled) {
 			if(!job.isFinished()) {
-				sb.append("<input type=\"button\" onclick=\"ducc_confirm_terminate_job("+id+")\" value=\"Terminate\" "+getDisabled(request,job)+"/>");
+				sb.append("<input type=\"button\" onclick=\"ducc_confirm_terminate_job("+id+")\" value=\"Terminate\" "+getDisabledWithHover(request,job)+"/>");
 			}
 		}
 		sb.append("</td>");
@@ -417,7 +417,7 @@ public class DuccHandlerLegacy extends D
 		sb.append("<td class=\"ducc-col-terminate\">");
 		if(terminateEnabled) {
 			if(!duccwork.isCompleted()) {
-				String disabled = getDisabled(request,duccwork);
+				String disabled = getDisabledWithHover(request,duccwork);
 				String user = duccwork.getStandardInfo().getUser();
 				if(user != null) {
 					if(user.equals(JdConstants.reserveUser)) {
@@ -884,7 +884,7 @@ public class DuccHandlerLegacy extends D
 				if(type.equals(typeRegistered)) {
 					if(buttonsEnabled) {
 						if(!deployments.equals(instances)) {
-							sb.append("<input type=\"button\" onclick=\"ducc_confirm_service_start("+sid+")\" value=\"Start\" "+getDisabled(request,user)+"/>");
+							sb.append("<input type=\"button\" onclick=\"ducc_confirm_service_start("+sid+")\" value=\"Start\" "+getDisabledWithHover(request,user)+"/>");
 						}
 					}
 				}
@@ -894,7 +894,7 @@ public class DuccHandlerLegacy extends D
 				if(type.equals(typeRegistered)) {
 					if(buttonsEnabled) {
 						if(!deployments.equals("0")) {
-							sb.append("<input type=\"button\" onclick=\"ducc_confirm_service_stop("+sid+")\" value=\"Stop\" "+getDisabled(request,user)+"/>");
+							sb.append("<input type=\"button\" onclick=\"ducc_confirm_service_stop("+sid+")\" value=\"Stop\" "+getDisabledWithHover(request,user)+"/>");
 						}
 					}
 				}