azkaban-aplcache

Adding an Ajax call endpoint to check if user has WRITE access

2/27/2019 3:14:44 AM

Details

diff --git a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
index 6008397..7d8336b 100644
--- a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
+++ b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
@@ -304,6 +304,8 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
         if (handleAjaxPermission(project, user, Type.WRITE, ret)) {
           ajaxSetJobOverrideProperty(project, ret, req, user);
         }
+      } else if (ajaxName.equals("checkForWritePermission")) {
+        ajaxCheckForWritePermission(project, user, ret);
       } else {
         ret.put("error", "Cannot execute command " + ajaxName);
       }
@@ -1091,6 +1093,11 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
     ret.put("proxyUsers", proxyUsers);
   }
 
+  private void ajaxCheckForWritePermission(final Project project, final User user,
+      final HashMap<String, Object> ret) {
+    ret.put("hasWritePermission", hasPermission(project, user, Type.WRITE));
+  }
+
   private void handleProjectLogsPage(final HttpServletRequest req,
       final HttpServletResponse resp, final Session session) throws ServletException,
       IOException {