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