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 <[email protected]>
Authored: Wed Aug 17 10:23:14 2016 -0400
Committer: Jeff Kinnison <[email protected]>
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 {

Reply via email to