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 {