You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/08/17 15:33:02 UTC

[15/20] airavata-php-gateway git commit: redirect read-inly users from edit view to summary view

redirect read-inly users from edit view to summary view


Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/ca0105c6
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/ca0105c6
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/ca0105c6

Branch: refs/heads/develop
Commit: ca0105c6b18e59fdc9fff0be8d598160f62c2c86
Parents: 9f0ee4e
Author: Jeff Kinnison <je...@gmail.com>
Authored: Wed Aug 17 10:23:14 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Wed Aug 17 10:23:14 2016 -0400

----------------------------------------------------------------------
 app/controllers/ExperimentController.php | 116 ++++++++++++++------------
 1 file changed, 63 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/ca0105c6/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index defe700..1be34f4 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -199,47 +199,52 @@ class ExperimentController extends BaseController
 
     public function editView()
     {
-        $queueDefaults = array("queueName" => Config::get('pga_config.airavata')["queue-name"],
-            "nodeCount" => Config::get('pga_config.airavata')["node-count"],
-            "cpuCount" => Config::get('pga_config.airavata')["total-cpu-count"],
-            "wallTimeLimit" => Config::get('pga_config.airavata')["wall-time-limit"]
-        );
+        if (SharingUtilities::userCanWrite(Session::get("username"), $_GET['expId'], ResourceType::EXPERIMENT) === true) {
+            $queueDefaults = array("queueName" => Config::get('pga_config.airavata')["queue-name"],
+                "nodeCount" => Config::get('pga_config.airavata')["node-count"],
+                "cpuCount" => Config::get('pga_config.airavata')["total-cpu-count"],
+                "wallTimeLimit" => Config::get('pga_config.airavata')["wall-time-limit"]
+            );
 
-        $experiment = ExperimentUtilities::get_experiment($_GET['expId']);
-        $expVal = ExperimentUtilities::get_experiment_values($experiment);
-        $expVal["jobState"] = ExperimentUtilities::get_job_status($experiment);
+            $experiment = ExperimentUtilities::get_experiment($_GET['expId']);
+            $expVal = ExperimentUtilities::get_experiment_values($experiment);
+            $expVal["jobState"] = ExperimentUtilities::get_job_status($experiment);
 
-        $computeResources = CRUtilities::create_compute_resources_select($experiment->executionId, $expVal['scheduling']->resourceHostId);
-
-        $clonedExp = false; $savedExp = false;
-        if( Input::has("clonedExp"))
-            $clonedExp = true;
-        if( Input::has("savedExp"))
-            $savedExp = true;
-
-        $experimentInputs = array(
-            "clonedExp" => $clonedExp,
-            "savedExp" => $savedExp,
-            "disabled" => ' ',
-            "experimentName" => $experiment->experimentName,
-            "experimentDescription" => $experiment->description,
-            "application" => $experiment->executionId,
-            "autoSchedule" => $experiment->userConfigurationData->airavataAutoSchedule,
-            "userDN" => $experiment->userConfigurationData->userDN,
-            "allowedFileSize" => Config::get('pga_config.airavata')["server-allowed-file-size"],
-            'experiment' => $experiment,
-            "queueDefaults" => $queueDefaults,
-            'computeResources' => $computeResources,
-            "resourceHostId" => $expVal['scheduling']->resourceHostId,
-            'project' => $experiment->projectId,
-            'expVal' => $expVal,
-            'cloning' => true,
-            'advancedOptions' => Config::get('pga_config.airavata')["advanced-experiment-options"]
-        );
+            $computeResources = CRUtilities::create_compute_resources_select($experiment->executionId, $expVal['scheduling']->resourceHostId);
+
+            $clonedExp = false; $savedExp = false;
+            if( Input::has("clonedExp"))
+                $clonedExp = true;
+            if( Input::has("savedExp"))
+                $savedExp = true;
 
-        $users = SharingUtilities::getProfilesForSharedUsers($_GET['expId'], ResourceType::EXPERIMENT);
+            $experimentInputs = array(
+                "clonedExp" => $clonedExp,
+                "savedExp" => $savedExp,
+                "disabled" => ' ',
+                "experimentName" => $experiment->experimentName,
+                "experimentDescription" => $experiment->description,
+                "application" => $experiment->executionId,
+                "autoSchedule" => $experiment->userConfigurationData->airavataAutoSchedule,
+                "userDN" => $experiment->userConfigurationData->userDN,
+                "allowedFileSize" => Config::get('pga_config.airavata')["server-allowed-file-size"],
+                'experiment' => $experiment,
+                "queueDefaults" => $queueDefaults,
+                'computeResources' => $computeResources,
+                "resourceHostId" => $expVal['scheduling']->resourceHostId,
+                'project' => $experiment->projectId,
+                'expVal' => $expVal,
+                'cloning' => true,
+                'advancedOptions' => Config::get('pga_config.airavata')["advanced-experiment-options"]
+            );
 
-        return View::make("experiment/edit", array("expInputs" => $experimentInputs, "users" => json_encode($users)));
+            $users = SharingUtilities::getProfilesForSharedUsers($_GET['expId'], ResourceType::EXPERIMENT);
+
+            return View::make("experiment/edit", array("expInputs" => $experimentInputs, "users" => json_encode($users)));
+        }
+        else {
+            Redirect::to("experiment/summary?expId=" . $experiment->experimentId)->with("error", "You do not have permission to edit this experiment");
+        }
     }
 
     public function cloneExperiment()
@@ -258,22 +263,27 @@ class ExperimentController extends BaseController
 
     public function editSubmit()
     {
-        if (isset($_POST['save']) || isset($_POST['launch'])) {
-            $experiment = ExperimentUtilities::get_experiment(Input::get('expId')); // update local experiment variable
-            $updatedExperiment = ExperimentUtilities::apply_changes_to_experiment($experiment, Input::all());
+        if (SharingUtilities::userCanWrite(Session::get("username"), Input::get('expId'), ResourceType::EXPERIMENT)) {
+            if (isset($_POST['save']) || isset($_POST['launch'])) {
+                $experiment = ExperimentUtilities::get_experiment(Input::get('expId')); // update local experiment variable
+                $updatedExperiment = ExperimentUtilities::apply_changes_to_experiment($experiment, Input::all());
 
-            ExperimentUtilities::update_experiment($experiment->experimentId, $updatedExperiment);
+                ExperimentUtilities::update_experiment($experiment->experimentId, $updatedExperiment);
 
-            if (isset($_POST['save'])) {
-                $experiment = ExperimentUtilities::get_experiment(Input::get('expId')); // update local experiment variable
-            }
-            if (isset($_POST['launch'])) {
-                ExperimentUtilities::launch_experiment($experiment->experimentId);
-            }
+                if (isset($_POST['save'])) {
+                    $experiment = ExperimentUtilities::get_experiment(Input::get('expId')); // update local experiment variable
+                }
+                if (isset($_POST['launch'])) {
+                    ExperimentUtilities::launch_experiment($experiment->experimentId);
+                }
 
-            return Redirect::to('experiment/summary?expId=' . $experiment->experimentId);
-        } else
-            return View::make("home");
+                return Redirect::to('experiment/summary?expId=' . $experiment->experimentId);
+            } else
+                return View::make("home");
+        }
+        else {
+            return Redirect::to("experiment/summary?expId=" . Input::get('expId'))->with("error", "You do not have permission to edit this experiment");
+        }
     }
 
     public function getQueueView()
@@ -310,7 +320,7 @@ class ExperimentController extends BaseController
             'pageNo' => $pageNo,
             'limit' => $this->limit,
             'expStates' => $experimentStates,
-            'expContainer' => $expContainer
+            'expContainer' => $expContainer,
         ));
     }
 
@@ -323,7 +333,7 @@ class ExperimentController extends BaseController
      */
     public function sharedUsers()
     {
-        if (array_key_exists('resourceId', $_GET)) {
+        if (Session::has("authz-token") && array_key_exists('resourceId', $_GET)) {
             return Response::json(SharingUtilities::getProfilesForSharedUsers($_GET['resourceId'], ResourceType::EXPERIMENT));
         }
         else {
@@ -333,7 +343,7 @@ class ExperimentController extends BaseController
 
     public function unsharedUsers()
     {
-        if (array_key_exists('resourceId', $_GET)) {
+        if (Session::has("authz-token") && array_key_exists('resourceId', $_GET)) {
             return Response::json(SharingUtilities::getProfilesForUnsharedUsers($_GET['resourceId'], ResourceType::EXPERIMENT));
         }
         else {