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)+"/>");
}
}
}