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


Reply via email to