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:32:48 UTC

[01/20] airavata-php-gateway git commit: Switching to load users on an AJAX call

Repository: airavata-php-gateway
Updated Branches:
  refs/heads/develop f2f22bdf0 -> f5ff011aa


Switching to load users on an AJAX call


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/3c071537
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/3c071537
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/3c071537

Branch: refs/heads/develop
Commit: 3c071537eb5b0a7cf049088aaf653e94897724ed
Parents: fb31a44
Author: Jeff Kinnison <je...@gmail.com>
Authored: Thu Aug 4 12:06:45 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Thu Aug 4 12:06:45 2016 -0400

----------------------------------------------------------------------
 public/js/sharing/share.js | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/3c071537/public/js/sharing/share.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/share.js b/public/js/sharing/share.js
index d8e19fc..40420c6 100755
--- a/public/js/sharing/share.js
+++ b/public/js/sharing/share.js
@@ -89,10 +89,42 @@ $(function() {
 
     // Create, populate, and show the share box
     $('body').on('click', 'button#project-share, button#experiment-share', function(e) {
-        var $share_list;
+        var $share_list, ajax_data;
         e.stopPropagation();
         e.preventDefault();
 
+        if ($('#share-box-users').find('.user-thumbnail').length === 0) {
+            ajax_data = $(e.target).data();
+
+            $.ajax({
+                url: url,
+                data: {},
+                dataType: "json",
+                error: function(xhr, status, error) {
+                    $('#shared-users').addClass('text-align-center').text("Unable to load users from Airavata server.");
+                },
+                success: function(data, status, xhr) {
+                    var user, $user, $users;
+
+                    $users = $('#share-box-users');
+                    $users.empty().removeClass('text-align-center');
+
+                    for (user in data) {
+                        if (data.hasOwnProperty(user)) {
+                            $user = createThumbnail(user, data.firstname, data.lastname, data.email, access_enum.NONE, true);
+                            $user.find('.sharing-thumbnail-access').hide();
+
+                            $user.addClass('user-thumbnail');
+                            $user.addClass('share-box-users-item');
+                            $users.append($user);
+                        }
+                    }
+                }
+            });
+        }
+
+        $('#share-box-users').addClass('text-align-center').text('Loading user list');
+
         $share_list = $('#shared-users').children();
 
         if ($share_list.filter('.sharing-thumbnail').length > 0) {


[12/20] airavata-php-gateway git commit: project owner always granted sharing when permissions are set (to ensure that even if something goes wrong on the client end, the owner can still access their project)

Posted by sc...@apache.org.
project owner always granted sharing when permissions are set (to ensure that even if something goes wrong on the client end, the owner can still access their project)


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/fe506210
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/fe506210
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/fe506210

Branch: refs/heads/develop
Commit: fe506210fc317afb4cab24b18f119f78684688ba
Parents: 39f9b23
Author: Jeff Kinnison <je...@gmail.com>
Authored: Tue Aug 16 10:17:21 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Tue Aug 16 10:17:21 2016 -0400

----------------------------------------------------------------------
 app/libraries/ProjectUtilities.php | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/fe506210/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index 0437526..a5efdb4 100755
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -305,6 +305,10 @@ class ProjectUtilities
      * @param $users A map of username => {read_permission, write_permission}
      */
     private static function share_project($projectId, $users) {
+        $project = Airavata::getProject(Session::get("authz-token"), $projectId);
+        $users->{$project->owner}->read = true;
+        $users->{$project->owner}->write = true;
+
         $wadd = array();
         $wrevoke = array();
         $ewrevoke = array();


[18/20] airavata-php-gateway git commit: Removed edit links from browse

Posted by sc...@apache.org.
Removed edit links from browse


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/ebdc1631
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/ebdc1631
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/ebdc1631

Branch: refs/heads/develop
Commit: ebdc1631bb67c6a03703e16115bf9d8b07a868e2
Parents: 2fe80e7
Author: Jeff Kinnison <je...@gmail.com>
Authored: Wed Aug 17 10:35:38 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Wed Aug 17 10:35:38 2016 -0400

----------------------------------------------------------------------
 app/controllers/ExperimentController.php          |  7 +++++++
 app/views/partials/experiment-container.blade.php | 16 ++++++++--------
 app/views/partials/experiment-info.blade.php      |  2 ++
 3 files changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/ebdc1631/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index bb58779..b884a17 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -313,12 +313,19 @@ class ExperimentController extends BaseController
         $expContainer = ExperimentUtilities::get_expsearch_results_with_pagination(Input::all(), $this->limit,
             ($pageNo - 1) * $this->limit);
         $experimentStates = ExperimentUtilities::getExpStates();
+
+        $can_write = array();
+        foreach ($expContainer as $experiment) {
+            $can_write[$experiment->experimentId] = SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT);
+        }
+
         return View::make('experiment/browse', array(
             'input' => Input::all(),
             'pageNo' => $pageNo,
             'limit' => $this->limit,
             'expStates' => $experimentStates,
             'expContainer' => $expContainer,
+            'can_write' => $can_write
         ));
     }
 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/ebdc1631/app/views/partials/experiment-container.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/experiment-container.blade.php b/app/views/partials/experiment-container.blade.php
index 4ecf3de..25f99c7 100644
--- a/app/views/partials/experiment-container.blade.php
+++ b/app/views/partials/experiment-container.blade.php
@@ -24,11 +24,11 @@
             @foreach($expContainer as $experiment)
                 <tr>
                     <!-- Experiment Name -->
-                    <td> 
+                    <td>
                         <a href="{{URL::to('/')}}/experiment/summary?expId={{$experiment['experiment']->experimentId}}" target="_blank">
-                        {{ $experiment['experiment']->name }} 
+                        {{ $experiment['experiment']->name }}
                         </a>
-                        @if( $experiment['expValue']['editable'])
+                        @if( $experiment['expValue']['editable'] and $can_write[$experiment->experimentId] === true)
                             <a href="{{URL::to('/')}}/experiment/edit?expId={{$experiment['experiment']->experimentId}}" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>
                         @endif
                     </td>
@@ -41,7 +41,7 @@
                     @endif
                     <!-- Resource Name -->
                     <td>
-                        @if( !empty( explode("_", $experiment['experiment']->resourceHostId)[0] ) ) 
+                        @if( !empty( explode("_", $experiment['experiment']->resourceHostId)[0] ) )
                             {{ explode("_", $experiment['experiment']->resourceHostId)[0] }}
                         @endif
                     </td>
@@ -53,18 +53,18 @@
                             {{$experiment['expValue']['experimentStatusString'] }}
                         </a>
                     </td>
-                    @if( isset( $dashboard)) 
+                    @if( isset( $dashboard))
                     <td class="text-center">
                         <a class="get-exp-stats" data-expid="{{$experiment['experiment']->experimentId}}" style="cursor: pointer;">
                         <span class="glyphicon glyphicon-stats"></span>
                         </a>
                     </td>
                     @endif
-                    
+
                 </tr>
             @endforeach
-           
+
         </table>
     </div>
     @endif
-@endif
\ No newline at end of file
+@endif

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/ebdc1631/app/views/partials/experiment-info.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/experiment-info.blade.php b/app/views/partials/experiment-info.blade.php
index fa6a605..36c9fe2 100644
--- a/app/views/partials/experiment-info.blade.php
+++ b/app/views/partials/experiment-info.blade.php
@@ -225,6 +225,7 @@
                 Clone
             </a>
             <input type="hidden" name="expId" value="{{ Input::get('expId') }}"/>
+            @if($can_write === true)
             <a href="{{URL::to('/') }}/experiment/edit?expId={{ $experiment->experimentId }}&savedExp=true"
                class="btn btn-default"
                role="button"
@@ -232,6 +233,7 @@
                 <span class="glyphicon glyphicon-pencil"></span>
                 Edit
             </a>
+            @endif
         </div>
     </form>
     @endif


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

Posted by sc...@apache.org.
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 {


[16/20] airavata-php-gateway git commit: minor logic change

Posted by sc...@apache.org.
minor logic change


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/a5dbbaaf
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/a5dbbaaf
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/a5dbbaaf

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

----------------------------------------------------------------------
 app/controllers/ExperimentController.php | 3 ---
 1 file changed, 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a5dbbaaf/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index 1be34f4..0828bcb 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -281,9 +281,6 @@ class ExperimentController extends BaseController
             } 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()


[11/20] airavata-php-gateway git commit: Default Project owner granted read and write permissions at creation

Posted by sc...@apache.org.
Default Project owner granted read and write permissions at creation


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/39f9b23c
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/39f9b23c
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/39f9b23c

Branch: refs/heads/develop
Commit: 39f9b23ca22082888be0fa6601ba9399684173f2
Parents: dcf8e47
Author: Jeff Kinnison <je...@gmail.com>
Authored: Tue Aug 16 10:06:07 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Tue Aug 16 10:06:07 2016 -0400

----------------------------------------------------------------------
 app/libraries/ProjectUtilities.php | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/39f9b23c/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index 1e5fecc..0437526 100755
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -150,6 +150,12 @@ class ProjectUtilities
         try {
             $projectId = Airavata::createProject(Session::get('authz-token'), Config::get('pga_config.airavata')['gateway-id'], $project);
 
+            $share = new stdClass();
+            $share->{$username} = new stdClass();
+            $share->{$username}->read = true;
+            $share->{$username}->write = true;
+            ProjectUtilities::share_project($projectId, $share);
+
         } catch (InvalidRequestException $ire) {
             CommonUtilities::print_error_message('InvalidRequestException!<br><br>' . $ire->getMessage());
         } catch (AiravataClientException $ace) {


[19/20] airavata-php-gateway git commit: Added owner thumbnail, post-completion sharing, and verified that the changes work

Posted by sc...@apache.org.
Added owner thumbnail, post-completion sharing, and verified that the changes work


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/face8c53
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/face8c53
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/face8c53

Branch: refs/heads/develop
Commit: face8c535732639870aa9fc9acf9e91692e9ba5c
Parents: ebdc163
Author: Jeff Kinnison <je...@gmail.com>
Authored: Wed Aug 17 11:28:13 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Wed Aug 17 11:28:13 2016 -0400

----------------------------------------------------------------------
 app/controllers/ExperimentController.php          | 17 +++++++++++++++--
 app/libraries/ExperimentUtilities.php             | 17 ++++++-----------
 app/views/experiment/edit.blade.php               |  1 +
 app/views/partials/experiment-container.blade.php |  2 +-
 app/views/partials/experiment-info.blade.php      | 10 ++++++++++
 app/views/partials/sharing-form-modal.blade.php   |  2 +-
 6 files changed, 34 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/face8c53/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index b884a17..2cee7ab 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -135,6 +135,12 @@ class ExperimentController extends BaseController
 
             $users = SharingUtilities::getProfilesForSharedUsers(Input::get("expId"), ResourceType::EXPERIMENT);
 
+            $owner = array();
+            if (strcmp(Session::get("username"), $experiment->userName) !== 0) {
+                $owner[$experiment->userName] = $users[$experiment->userName];
+                $users = array_diff_key($users, $owner);
+            }
+
             $data = array(
                 "expId" => Input::get("expId"),
                 "experiment" => $experiment,
@@ -143,6 +149,7 @@ class ExperimentController extends BaseController
                 "expVal" => $expVal,
                 "autoRefresh"=> $autoRefresh,
                 "users" => json_encode($users),
+                "owner" => json_encode($owner),
                 "can_write" => SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT)
             );
             if( Input::has("dashboard"))
@@ -241,7 +248,13 @@ class ExperimentController extends BaseController
 
             $users = SharingUtilities::getProfilesForSharedUsers($_GET['expId'], ResourceType::EXPERIMENT);
 
-            return View::make("experiment/edit", array("expInputs" => $experimentInputs, "users" => json_encode($users)));
+            $owner = array();
+            if (strcmp(Session::get("username"), $experiment->userName) !== 0) {
+                $owner[$experiment->userName] = $users[$experiment->userName];
+                $users = array_diff_key($users, $owner);
+            }
+
+            return View::make("experiment/edit", array("expInputs" => $experimentInputs, "users" => json_encode($users), "owner" => json_encode($owner)));
         }
         else {
             Redirect::to("experiment/summary?expId=" . $experiment->experimentId)->with("error", "You do not have permission to edit this experiment");
@@ -316,7 +329,7 @@ class ExperimentController extends BaseController
 
         $can_write = array();
         foreach ($expContainer as $experiment) {
-            $can_write[$experiment->experimentId] = SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT);
+            $can_write[$experiment['experiment']->experimentId] = SharingUtilities::userCanWrite(Session::get("username"), $experiment['experiment']->experimentId, ResourceType::EXPERIMENT);
         }
 
         return View::make('experiment/browse', array(

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/face8c53/app/libraries/ExperimentUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php
index d90d2ce..631cb98 100755
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php
@@ -572,12 +572,7 @@ class ExperimentUtilities
                 '<p>AiravataSystemException: ' . $ase->getMessage() . '</p>');
         }
 
-        $share = json_decode($share);
-        $share->{Session::get("username")} = new stdClass();
-        $share->{Session::get("username")}->read = true;
-        $share->{Session::get("username")}->write = true;
-
-        ExperimentUtilities::share_experiment($expId, $share);
+        ExperimentUtilities::share_experiment($expId, json_decode($share));
     }
 
 
@@ -826,11 +821,7 @@ class ExperimentUtilities
             CommonUtilities::print_error_message('AiravataSystemException!<br><br>' . $ase->getMessage());
         }
 
-        $share = json_decode($share);
-        $share->{Session::get('username')} = new stdClass();
-        $share->{Session::get('username')}->read = true;
-        $share->{Session::get('username')}->write = true;
-        ExperimentUtilities::share_experiment($expId, $share);
+        ExperimentUtilities::share_experiment($expId, json_decode($share));
 
         return $expId;
     }
@@ -1335,6 +1326,10 @@ class ExperimentUtilities
      */
     private static function share_experiment($expId, $users) {
         $experiment = ExperimentUtilities::get_experiment($expId);
+        $users->{$experiment->owner} = new stdClass();
+        $users->{$experiment->owner}->read = true;
+        $users->{$experiment->owner}->write = true;
+
         $wadd = array();
         $wrevoke = array();
         $radd = array();

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/face8c53/app/views/experiment/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/edit.blade.php b/app/views/experiment/edit.blade.php
index 75a6c5d..a4abe0e 100755
--- a/app/views/experiment/edit.blade.php
+++ b/app/views/experiment/edit.blade.php
@@ -54,6 +54,7 @@
 @parent
 <script>
     var users = {{ $users }};
+    var owner = {{ $owner }};
     $('#project-share').data({url: "{{URL::to('/')}}/experiment/unshared-users", resourceId: "{{Input::get('expId')}}"})
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/face8c53/app/views/partials/experiment-container.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/experiment-container.blade.php b/app/views/partials/experiment-container.blade.php
index 25f99c7..561063e 100644
--- a/app/views/partials/experiment-container.blade.php
+++ b/app/views/partials/experiment-container.blade.php
@@ -28,7 +28,7 @@
                         <a href="{{URL::to('/')}}/experiment/summary?expId={{$experiment['experiment']->experimentId}}" target="_blank">
                         {{ $experiment['experiment']->name }}
                         </a>
-                        @if( $experiment['expValue']['editable'] and $can_write[$experiment->experimentId] === true)
+                        @if( $experiment['expValue']['editable'] and $can_write[$experiment['experiment']->experimentId] === true)
                             <a href="{{URL::to('/')}}/experiment/edit?expId={{$experiment['experiment']->experimentId}}" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>
                         @endif
                     </td>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/face8c53/app/views/partials/experiment-info.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/experiment-info.blade.php b/app/views/partials/experiment-info.blade.php
index 36c9fe2..3ca3340 100644
--- a/app/views/partials/experiment-info.blade.php
+++ b/app/views/partials/experiment-info.blade.php
@@ -192,7 +192,11 @@
     </table>
 
     <div class="form-group">
+    @if($can_write === true)
+    @include('partials/sharing-display-body', array("form" => true))
+    @else
     @include('partials/sharing-display-body', array("form" => false))
+    @endif
     </div>
 
     @if( !isset( $dashboard))
@@ -320,11 +324,17 @@
 </div>
 @endif
 
+@if($can_write === true)
+@include('partials/sharing-form-modal')
+@endif
+
 @section('scripts')
 @parent
 {{ HTML::script('js/time-conversion.js')}}
 <script>
     var users = {{ $users }};
+    var owner = {{ $owner }};
+    $('#project-share').data({url: "{{URL::to('/')}}/experiment/unshared-users", resourceId: "{{Input::get('expId')}}"})
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/face8c53/app/views/partials/sharing-form-modal.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/sharing-form-modal.blade.php b/app/views/partials/sharing-form-modal.blade.php
index b66a666..dee2036 100644
--- a/app/views/partials/sharing-form-modal.blade.php
+++ b/app/views/partials/sharing-form-modal.blade.php
@@ -10,7 +10,7 @@
                 @include('partials/sharing-form-body')
             </div>
             <div class="modal-footer">
-                <button type="button" id="share-box-button" class="btn btn-primary">Save</button>
+                <button type="button" id="share-box-button" class="btn btn-primary">Update</button>
                 <button type="button" id="share-box-close" class="btn btn-default" data-dismiss="modal">Cancel</button>
             </div>
         </div>


[03/20] airavata-php-gateway git commit: changed AJAX call to POST and added resourceId field

Posted by sc...@apache.org.
changed AJAX call to POST and added resourceId field


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/84f160ae
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/84f160ae
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/84f160ae

Branch: refs/heads/develop
Commit: 84f160ae22b9c65b590559fbf5f91e790a49e3f5
Parents: 4f5f026
Author: Jeff Kinnison <je...@gmail.com>
Authored: Thu Aug 4 12:30:46 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Thu Aug 4 12:30:46 2016 -0400

----------------------------------------------------------------------
 public/js/sharing/share.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/84f160ae/public/js/sharing/share.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/share.js b/public/js/sharing/share.js
index 40420c6..7b21297 100755
--- a/public/js/sharing/share.js
+++ b/public/js/sharing/share.js
@@ -97,8 +97,9 @@ $(function() {
             ajax_data = $(e.target).data();
 
             $.ajax({
-                url: url,
-                data: {},
+                url: ajax_data.url,
+                method: 'post',
+                data: {resourceId: ajax_data.resourceId},
                 dataType: "json",
                 error: function(xhr, status, error) {
                     $('#shared-users').addClass('text-align-center').text("Unable to load users from Airavata server.");


[06/20] airavata-php-gateway git commit: added user list routes to project and experiments

Posted by sc...@apache.org.
added user list routes to project and experiments


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/72066311
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/72066311
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/72066311

Branch: refs/heads/develop
Commit: 720663111e8246444412d5648b49b92e455f628d
Parents: 878df05
Author: Jeff Kinnison <je...@gmail.com>
Authored: Mon Aug 15 09:48:34 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Mon Aug 15 09:48:34 2016 -0400

----------------------------------------------------------------------
 app/routes.php | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/72066311/app/routes.php
----------------------------------------------------------------------
diff --git a/app/routes.php b/app/routes.php
old mode 100644
new mode 100755
index f9b95a5..6008c15
--- a/app/routes.php
+++ b/app/routes.php
@@ -71,6 +71,10 @@ Route::get("project/browse", "ProjectController@browseView");
 
 Route::post("project/browse", "ProjectController@browseView");
 
+Route::get("project/shared-users", "ProjectController@sharedUsers");
+
+Route::get("project/unshared-users", "ProjectController@unsharedUsers");
+
 /*
  * Experiment Routes
 */
@@ -97,6 +101,10 @@ Route::get("experiment/browse", "ExperimentController@browseView");
 
 Route::post("experiment/browse", "ExperimentController@browseView");
 
+Route::get("experiment/shared-users", "ExperimentController@sharedUsers");
+
+Route::get("experiment/unshared-users", "ExperimentController@unsharedUsers");
+
 Route::get("download", function(){
     if(Input::has("path") && (0 == strpos(Input::get("path"), Session::get('username'))
             || 0 == strpos(Input::get("path"), "/" . Session::get('username')))){


[04/20] airavata-php-gateway git commit: updated views to incorporate new user loading scheme

Posted by sc...@apache.org.
updated views to incorporate new user loading scheme


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/b742a238
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/b742a238
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/b742a238

Branch: refs/heads/develop
Commit: b742a2381e4b3e0fcb8b2e2a105781fcc943532d
Parents: 84f160a
Author: Jeff Kinnison <je...@gmail.com>
Authored: Thu Aug 4 12:43:22 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Thu Aug 4 12:43:22 2016 -0400

----------------------------------------------------------------------
 app/controllers/ProjectController.php          | 3 +--
 app/views/experiment/create-complete.blade.php | 1 +
 app/views/experiment/edit.blade.php            | 1 +
 3 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b742a238/app/controllers/ProjectController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ProjectController.php b/app/controllers/ProjectController.php
index c98f35e..bcd763e 100755
--- a/app/controllers/ProjectController.php
+++ b/app/controllers/ProjectController.php
@@ -25,8 +25,7 @@ class ProjectController extends BaseController
 
     public function createView()
     {
-        $users = array();
-        //var_dump($users);exit;
+        $users = SharingUtilities::getAllUserProfiles();
         return View::make("project/create", array("users" => json_encode($users)));
     }
 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b742a238/app/views/experiment/create-complete.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/create-complete.blade.php b/app/views/experiment/create-complete.blade.php
old mode 100644
new mode 100755
index c3976bb..a297694
--- a/app/views/experiment/create-complete.blade.php
+++ b/app/views/experiment/create-complete.blade.php
@@ -46,6 +46,7 @@
 @parent
 <script>
     var users = {{ $users }};
+    $('#experiment-share').data({url: "{{URL::to('/')}}/project/unshared-users", resourceId: "{{$expInputs['project']}}"})
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b742a238/app/views/experiment/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/edit.blade.php b/app/views/experiment/edit.blade.php
index a991bd1..ef630b0 100755
--- a/app/views/experiment/edit.blade.php
+++ b/app/views/experiment/edit.blade.php
@@ -54,6 +54,7 @@
 @parent
 <script>
     var users = {{ $users }};
+    $('#experiment-share').data({url: "{{URL::to('/')}}/experiment/unshared-users", resourceId: "{{Input::get('expId')}}"})
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}


[13/20] airavata-php-gateway git commit: Removed ability for users with read only permissions to access project edit pages

Posted by sc...@apache.org.
Removed ability for users with read only permissions to access project edit pages


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/cb57e294
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/cb57e294
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/cb57e294

Branch: refs/heads/develop
Commit: cb57e294829bcbc98376329729ee04f28f9398c1
Parents: fe50621
Author: Jeff Kinnison <je...@gmail.com>
Authored: Tue Aug 16 11:24:43 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Tue Aug 16 11:24:43 2016 -0400

----------------------------------------------------------------------
 app/controllers/ProjectController.php | 66 ++++++++++++++++++++++++------
 app/libraries/SharingUtilities.php    | 20 ++++++++-
 app/views/project/browse.blade.php    |  4 +-
 app/views/project/summary.blade.php   |  5 ++-
 4 files changed, 78 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/cb57e294/app/controllers/ProjectController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ProjectController.php b/app/controllers/ProjectController.php
index 3bf91d5..97a41f8 100755
--- a/app/controllers/ProjectController.php
+++ b/app/controllers/ProjectController.php
@@ -46,8 +46,25 @@ class ProjectController extends BaseController
 
             $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
 
+            $experiments = ProjectUtilities::get_experiments_in_project(Input::get("projId"));
+
+            $experiment_can_write = array();
+            foreach($experiments as $experiment) {
+                if (SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT)) {
+                    $experiment_can_write[$experiment->experimentId] = true;
+                }
+                else {
+                    $experiment_can_write[$experiment->experimentId] = false;
+                }
+            }
+
             return View::make("project/summary",
-                array("projectId" => Input::get("projId"), "users" => json_encode($users)));
+                array("projectId" => Input::get("projId"),
+                      "experiments" => $experiments,
+                      "users" => json_encode($users),
+                      "project_can_write" => SharingUtilities::userCanWrite(Session::get("username"), Input::get("projId"), ResourceType::PROJECT),
+                      "experiment_can_write" => $experiment_can_write
+                  ));
         } else
             return Redirect::to("home");
     }
@@ -55,20 +72,33 @@ class ProjectController extends BaseController
     public function editView()
     {
         if (Input::has("projId")) {
-            $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
-
-            return View::make("project/edit",
-                array("projectId" => Input::get("projId"),
-                    "project" => ProjectUtilities::get_project($_GET['projId']),
-                     "users" => json_encode($users)
-                ));
+            if (SharingUtilities::userCanWrite(Session::get("username"), Input::get("projId"), ResourceType::PROJECT)) {
+                $project = ProjectUtilities::get_project($_GET['projId']);
+                $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
+                $owner = array();
+
+                if (strcmp(Session::get("username"), $project->owner) !== 0) {
+                    $owner = array($project->owner => $users[$project->owner]);
+                    $users = array_key_diff($users, $owner);
+                }
+
+                return View::make("project/edit",
+                    array("projectId" => Input::get("projId"),
+                        "project" => $project,
+                        "users" => json_encode($users),
+                        "owner" => json_encode($owner)
+                    ));
+                }
+            else {
+                return Redirect::to('project/summary?projId=' . Input::get("projId"))->with("error", "You do not have permission to edit this project.");
+            }
         } else
             return Redirect::to("home");
     }
 
     public function editSubmit()
     {
-        if (isset($_POST['save'])) {
+        if (isset($_POST['save']) && SharingUtilities::userCanWrite(Session::get("username"))) {
             $projectDetails = array();
             $projectDetails["owner"] = Session::get("username");
             $projectDetails["name"] = Input::get("project-name");
@@ -103,10 +133,22 @@ class ProjectController extends BaseController
             $projects = ProjectUtilities::get_all_user_accessible_projects_with_pagination($this->limit, ($pageNo - 1) * $this->limit);
         }
 
+        $can_write = array();
+        $user = Session::get("username");
+        foreach($projects as $project) {
+            if (SharingUtilities::userCanWrite($user, $project->projectID, ResourceType::PROJECT)) {
+                $can_write[$project->projectID] = true;
+            }
+            else {
+                $can_write[$project->projectID] = false;
+            }
+        }
+
         return View::make('project/browse', array(
             'pageNo' => $pageNo,
             'limit' => $this->limit,
-            'projects' => $projects
+            'projects' => $projects,
+            'can_write' => $can_write
         ));
     }
 
@@ -119,7 +161,7 @@ class ProjectController 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::PROJECT));
         }
         else {
@@ -129,7 +171,7 @@ class ProjectController 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::PROJECT));
         }
         else {

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/cb57e294/app/libraries/SharingUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/SharingUtilities.php b/app/libraries/SharingUtilities.php
index bf9987f..477cec5 100755
--- a/app/libraries/SharingUtilities.php
+++ b/app/libraries/SharingUtilities.php
@@ -30,10 +30,26 @@ class SharingUtilities {
             if (strcmp($uid, $user) === 0) {
                 return true;
             }
-            else {
-                return false;
+        }
+        return false;
+    }
+
+    /**
+     * Determine if the user has write privileges on the resource.
+     *
+     * @param $uid                  The user to check
+     * @param $resourceId           Experiment or Project ID
+     * @param $dataResourceType     e.g Airavata\Model\Group\ResourceType:PROJECT,Airavata\Model\Group\ResourceType:EXPERIMENT
+     * @return True if the user has write permission, false otherwise.
+     */
+    public static function userCanWrite($uid, $resourceId, $dataResourceType) {
+        $write = GrouperUtilities::getAllAccessibleUsers($resourceId, $dataResourceType, ResourcePermissionType::WRITE);
+        foreach($write as $user) {
+            if (strcmp($uid, $user) === 0) {
+                return true;
             }
         }
+        return false;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/cb57e294/app/views/project/browse.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/browse.blade.php b/app/views/project/browse.blade.php
index 4e68ddc..3b6e348 100755
--- a/app/views/project/browse.blade.php
+++ b/app/views/project/browse.blade.php
@@ -107,9 +107,11 @@
                 <tr>
                     <td>
                         <?php echo $project->name; ?>
+                        @if($can_write[$project->projectID] === true)
                         <a href="{{URL::to('/')}}/project/edit?projId=<?php echo $project->projectID; ?>" title="Edit">
                             <span class="glyphicon glyphicon-pencil"></span>
                         </a>
+                        @endif
                     </td>
                     <td>
                         {{$project->owner}}
@@ -143,4 +145,4 @@
     @section('scripts')
     @parent
     {{ HTML::script('js/time-conversion.js')}}
-    @stop
\ No newline at end of file
+    @stop

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/cb57e294/app/views/project/summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/summary.blade.php b/app/views/project/summary.blade.php
index 9e7adce..fc6fe69 100755
--- a/app/views/project/summary.blade.php
+++ b/app/views/project/summary.blade.php
@@ -10,7 +10,6 @@
 <div class="container" style="max-width: 80%;">
     <?php
         $project = ProjectUtilities::get_project($_GET['projId']);
-        $experiments = ProjectUtilities::get_experiments_in_project($project->projectID);
     ?>
     <h1>Project Summary
         @if( !isset($dashboard))
@@ -21,9 +20,11 @@
     <div>
         <div>
             <h3>{{ $project->name }}
+                @if($project_can_write === true)
                 <a href="edit?projId={{ $project->projectID }}" title="Edit">
                     <span class="glyphicon glyphicon-pencil"></span>
                 </a>
+                @endif
             </h3>
             <p>{{ $project->description }}</p>
         </div>
@@ -62,7 +63,7 @@
                         <a href="{{URL::to('/')}}/experiment/summary?expId={{$experiment->experimentId}}">
                         {{ $experiment->experimentName }}
                         </a>
-                        @if( $expValues['editable'])
+                        @if( $expValues['editable'] and $experiment_can_write[$experiment->experimentId] === true)
                             <a href="{{URL::to('/')}}/experiment/edit?expId={{$experiment->experimentId}}" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>
                         @endif
                     </td>


[02/20] airavata-php-gateway git commit: updated controllers to only load shared users, added functions to retrieve user lists as JSON

Posted by sc...@apache.org.
updated controllers to only load shared users, added functions to retrieve user lists as JSON


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/4f5f0269
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/4f5f0269
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/4f5f0269

Branch: refs/heads/develop
Commit: 4f5f026913eff3760054a943ef9ba781a2fbc557
Parents: 3c07153
Author: Jeff Kinnison <je...@gmail.com>
Authored: Thu Aug 4 12:22:12 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Thu Aug 4 12:22:12 2016 -0400

----------------------------------------------------------------------
 app/controllers/ExperimentController.php | 33 ++++++++++++++++++++++++---
 app/controllers/ProjectController.php    |  9 ++++----
 2 files changed, 34 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4f5f0269/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index 499327d..ada4824 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -73,7 +73,7 @@ class ExperimentController extends BaseController
                 "allowedFileSize" => $allowedFileSize
             );
 
-            $users = SharingUtilities::getAllUserProfiles($_POST['project'], ResourceType::PROJECT);
+            $users = SharingUtilities::getProfilesForSharedUsers($_POST['project'], ResourceType::PROJECT);
 
             return View::make("experiment/create-complete", array("expInputs" => $experimentInputs, "users" => json_encode($users)));
         } else if (isset($_POST['save']) || isset($_POST['launch'])) {
@@ -90,7 +90,7 @@ class ExperimentController extends BaseController
                     <a href=' . URL::to('/') . '"/experiment/summary?expId=' . $expId . '">go directly</a> to experiment summary page.</p>');
 
             }*/
-            $users = SharingUtilities::getAllUserProfiles($expId, ResourceType::EXPERIMENT);
+            $users = SharingUtilities::getProfilesForSharedUsers($expId, ResourceType::EXPERIMENT);
             return Redirect::to('experiment/summary?expId=' . $expId);
         } else
             return Redirect::to("home")->with("message", "Something went wrong here. Please file a bug report using the link in the Help menu.");
@@ -237,7 +237,7 @@ class ExperimentController extends BaseController
             'advancedOptions' => Config::get('pga_config.airavata')["advanced-experiment-options"]
         );
 
-        $users = SharingUtilities::getAllUserProfiles($_GET['expId'], ResourceType::EXPERIMENT);
+        $users = SharingUtilities::getProfilesForSharedUsers($_GET['expId'], ResourceType::EXPERIMENT);
 
         return View::make("experiment/edit", array("expInputs" => $experimentInputs, "users" => json_encode($users)));
     }
@@ -313,6 +313,33 @@ class ExperimentController extends BaseController
             'expContainer' => $expContainer
         ));
     }
+
+    /**
+     * Generate JSON containing permissions information for this project.
+     *
+     * This function retrieves the user profile and permissions for every user
+     * other than the client that has access to the project. In the event that
+     * the project does not exist, return an error message.
+     */
+    public function sharedUsers()
+    {
+        if (array_key_exists('projId', $_POST)) {
+            return Response::json(SharingUtilities::getProfilesForSharedUsers());
+        }
+        else {
+            return Response::json(array("error" => "Error: No project specified"));
+        }
+    }
+
+    public function unsharedUsers()
+    {
+        if (array_key_exists('projId', $_POST)) {
+            return Response::json(SharingUtilities::getProfilesForUnsharedUsers());
+        }
+        else {
+            return Response::json(array("error" => "Error: No project specified"));
+        }
+    }
 }
 
 ?>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4f5f0269/app/controllers/ProjectController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ProjectController.php b/app/controllers/ProjectController.php
index 6b874f2..c98f35e 100755
--- a/app/controllers/ProjectController.php
+++ b/app/controllers/ProjectController.php
@@ -25,7 +25,7 @@ class ProjectController extends BaseController
 
     public function createView()
     {
-        $users = SharingUtilities::getAllUserProfiles();
+        $users = array();
         //var_dump($users);exit;
         return View::make("project/create", array("users" => json_encode($users)));
     }
@@ -120,8 +120,7 @@ class ProjectController extends BaseController
      */
     public function sharedUsers()
     {
-        $response = array();
-        if (Input::has('projId')) {
+        if (array_key_exists('expId', $_POST)) {
             return Response::json(SharingUtilities::getProfilesForSharedUsers());
         }
         else {
@@ -131,8 +130,8 @@ class ProjectController extends BaseController
 
     public function unsharedUsers()
     {
-        if (Input::has('projId')) {
-            return Response::json(SharingUtilities::getProfilesForUnsharedUsers);
+        if (array_key_exists('expId', $_POST)) {
+            return Response::json(SharingUtilities::getProfilesForUnsharedUsers());
         }
         else {
             return Response::json(array("error" => "Error: No project specified"));


[17/20] airavata-php-gateway git commit: Removed link to edit page to read-only users

Posted by sc...@apache.org.
Removed link to edit page to read-only users


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/2fe80e77
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/2fe80e77
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/2fe80e77

Branch: refs/heads/develop
Commit: 2fe80e77fa06232e9a3d60ff90c00ffce72aa439
Parents: a5dbbaa
Author: Jeff Kinnison <je...@gmail.com>
Authored: Wed Aug 17 10:31:42 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Wed Aug 17 10:31:42 2016 -0400

----------------------------------------------------------------------
 app/controllers/ExperimentController.php | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/2fe80e77/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index 0828bcb..bb58779 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -142,7 +142,8 @@ class ExperimentController extends BaseController
                 "jobDetails" => $jobDetails,
                 "expVal" => $expVal,
                 "autoRefresh"=> $autoRefresh,
-                "users" => json_encode($users)
+                "users" => json_encode($users),
+                "can_write" => SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT)
             );
             if( Input::has("dashboard"))
             {


[07/20] airavata-php-gateway git commit: user lists load asynchronously

Posted by sc...@apache.org.
user lists load asynchronously


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/bb852b70
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/bb852b70
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/bb852b70

Branch: refs/heads/develop
Commit: bb852b70bb77258eab39a6e229fc7aca1f823838
Parents: 7206631
Author: Jeff Kinnison <je...@gmail.com>
Authored: Mon Aug 15 10:45:56 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Mon Aug 15 10:45:56 2016 -0400

----------------------------------------------------------------------
 app/controllers/ExperimentController.php       |  8 ++++----
 app/controllers/ProjectController.php          | 10 +++++-----
 app/libraries/ExperimentUtilities.php          | 21 +++++++++++----------
 app/libraries/ProjectUtilities.php             |  7 ++++++-
 app/views/experiment/create-complete.blade.php |  2 +-
 app/views/experiment/edit.blade.php            |  2 +-
 app/views/project/summary.blade.php            |  2 +-
 public/js/sharing/share.js                     | 13 ++++++-------
 8 files changed, 35 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/bb852b70/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index ada4824..0b48605 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -323,8 +323,8 @@ class ExperimentController extends BaseController
      */
     public function sharedUsers()
     {
-        if (array_key_exists('projId', $_POST)) {
-            return Response::json(SharingUtilities::getProfilesForSharedUsers());
+        if (array_key_exists('resourceId', $_GET)) {
+            return Response::json(SharingUtilities::getProfilesForSharedUsers($_GET['resourceId'], ResourceType::EXPERIMENT));
         }
         else {
             return Response::json(array("error" => "Error: No project specified"));
@@ -333,8 +333,8 @@ class ExperimentController extends BaseController
 
     public function unsharedUsers()
     {
-        if (array_key_exists('projId', $_POST)) {
-            return Response::json(SharingUtilities::getProfilesForUnsharedUsers());
+        if (array_key_exists('resourceId', $_POST)) {
+            return Response::json(SharingUtilities::getProfilesForUnsharedUsers($_GET['resourceId'], ResourceType::EXPERIMENT));
         }
         else {
             return Response::json(array("error" => "Error: No project specified"));

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/bb852b70/app/controllers/ProjectController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ProjectController.php b/app/controllers/ProjectController.php
index bcd763e..3bf91d5 100755
--- a/app/controllers/ProjectController.php
+++ b/app/controllers/ProjectController.php
@@ -55,7 +55,7 @@ class ProjectController extends BaseController
     public function editView()
     {
         if (Input::has("projId")) {
-            $users = SharingUtilities::getAllUserProfiles(Input::get('projId'), ResourceType::PROJECT);
+            $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
 
             return View::make("project/edit",
                 array("projectId" => Input::get("projId"),
@@ -119,8 +119,8 @@ class ProjectController extends BaseController
      */
     public function sharedUsers()
     {
-        if (array_key_exists('expId', $_POST)) {
-            return Response::json(SharingUtilities::getProfilesForSharedUsers());
+        if (array_key_exists('resourceId', $_GET)) {
+            return Response::json(SharingUtilities::getProfilesForSharedUsers($_GET['resourceId'], ResourceType::PROJECT));
         }
         else {
             return Response::json(array("error" => "Error: No project specified"));
@@ -129,8 +129,8 @@ class ProjectController extends BaseController
 
     public function unsharedUsers()
     {
-        if (array_key_exists('expId', $_POST)) {
-            return Response::json(SharingUtilities::getProfilesForUnsharedUsers());
+        if (array_key_exists('resourceId', $_GET)) {
+            return Response::json(SharingUtilities::getProfilesForUnsharedUsers($_GET['resourceId'], ResourceType::PROJECT));
         }
         else {
             return Response::json(array("error" => "Error: No project specified"));

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/bb852b70/app/libraries/ExperimentUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php
old mode 100644
new mode 100755
index e081e3b..e5da839
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php
@@ -634,10 +634,9 @@ class ExperimentUtilities
             Airavata::updateExperiment(Session::get('authz-token'), $cloneId, $experiment);
 
             $share = SharingUtilities::getAllUserPermissions($expId, ResourceType::EXPERIMENT);
-            $share[Session::get("username")] = array("read" => true, "write" => true);
-            foreach ($share as $uid => $perms) {
-                $share[$uid] = (object) $perms;
-            }
+            $share->{Session::get('username')} = new stdClass();
+            $share->{Session::get('username')}->read = true;
+            $share->{Session::get('username')}->write = true;
             ExperimentUtilities::share_experiment($cloneId, $share);
 
             return $cloneId;
@@ -1132,12 +1131,14 @@ class ExperimentUtilities
         $expContainer = array();
         $expNum = 0;
         foreach ($experiments as $experiment) {
-            $expValue = ExperimentUtilities::get_experiment_values($experiment, true);
-            $expContainer[$expNum]['experiment'] = $experiment;
-            if ($expValue["experimentStatusString"] == "FAILED")
-                $expValue["editable"] = false;
-            $expContainer[$expNum]['expValue'] = $expValue;
-            $expNum++;
+            if (SharingUtilities::userCanRead(Session::get('username'), $experiment, ResourceType::EXPERIMENT)) {
+                $expValue = ExperimentUtilities::get_experiment_values($experiment, true);
+                $expContainer[$expNum]['experiment'] = $experiment;
+                if ($expValue["experimentStatusString"] == "FAILED")
+                    $expValue["editable"] = false;
+                $expContainer[$expNum]['expValue'] = $expValue;
+                $expNum++;
+            }
         }
 
         return $expContainer;

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/bb852b70/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
old mode 100644
new mode 100755
index c75867f..476f94d
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -211,7 +211,12 @@ class ProjectUtilities
             CommonUtilities::print_error_message('AiravataSystemException!<br><br>' . $ase->getMessage());
         }
 
-        ProjectUtilities::share_project($projectId, json_decode($share));
+        $share = json_decode($share);
+        $share->{Session::get('username')} = new stdClass();
+        $share->{Session::get('username')}->read = true;
+        $share->{Session::get('username')}->write = true;
+
+        ProjectUtilities::share_project($projectId, $share);
     }
 
 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/bb852b70/app/views/experiment/create-complete.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/create-complete.blade.php b/app/views/experiment/create-complete.blade.php
index a297694..ef76bcd 100755
--- a/app/views/experiment/create-complete.blade.php
+++ b/app/views/experiment/create-complete.blade.php
@@ -46,7 +46,7 @@
 @parent
 <script>
     var users = {{ $users }};
-    $('#experiment-share').data({url: "{{URL::to('/')}}/project/unshared-users", resourceId: "{{$expInputs['project']}}"})
+    $('#project-share').data({url: "{{URL::to('/')}}/project/unshared-users", resourceId: "{{$expInputs['project']}}"})
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/bb852b70/app/views/experiment/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/edit.blade.php b/app/views/experiment/edit.blade.php
index ef630b0..75a6c5d 100755
--- a/app/views/experiment/edit.blade.php
+++ b/app/views/experiment/edit.blade.php
@@ -54,7 +54,7 @@
 @parent
 <script>
     var users = {{ $users }};
-    $('#experiment-share').data({url: "{{URL::to('/')}}/experiment/unshared-users", resourceId: "{{Input::get('expId')}}"})
+    $('#project-share').data({url: "{{URL::to('/')}}/experiment/unshared-users", resourceId: "{{Input::get('expId')}}"})
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/bb852b70/app/views/project/summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/summary.blade.php b/app/views/project/summary.blade.php
index 1b59d28..9e7adce 100755
--- a/app/views/project/summary.blade.php
+++ b/app/views/project/summary.blade.php
@@ -110,7 +110,7 @@
 {{ HTML::script('js/time-conversion.js')}}
 <script>
     var users = {{ $users }};
-    console.log(users);
+    //console.log(users);
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/bb852b70/public/js/sharing/share.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/share.js b/public/js/sharing/share.js
index 7b21297..ee4885e 100755
--- a/public/js/sharing/share.js
+++ b/public/js/sharing/share.js
@@ -29,7 +29,7 @@ $(function() {
                 var data = users[user];
                 var access = access_enum.NONE;
                 if (data.hasOwnProperty("access")) {
-                    console.log("Found access parameter");
+                    //console.log("Found access parameter");
                     if (data.access.write) {
                         access = access_enum.WRITE;
                     }
@@ -47,7 +47,7 @@ $(function() {
                     $users.append($user);
                 }
                 else {
-                    console.log("adding shared user");
+                    //console.log("adding shared user");
                     $user.addClass('share-box-share-item sharing-updated');
                     share_settings[user] = data.access;
                     $share.append($user);
@@ -96,9 +96,11 @@ $(function() {
         if ($('#share-box-users').find('.user-thumbnail').length === 0) {
             ajax_data = $(e.target).data();
 
+            $('#share-box-users').addClass('text-align-center').text('Loading user list');
+
             $.ajax({
                 url: ajax_data.url,
-                method: 'post',
+                method: 'get',
                 data: {resourceId: ajax_data.resourceId},
                 dataType: "json",
                 error: function(xhr, status, error) {
@@ -109,7 +111,7 @@ $(function() {
 
                     $users = $('#share-box-users');
                     $users.empty().removeClass('text-align-center');
-
+                    console.log(data);
                     for (user in data) {
                         if (data.hasOwnProperty(user)) {
                             $user = createThumbnail(user, data.firstname, data.lastname, data.email, access_enum.NONE, true);
@@ -124,10 +126,7 @@ $(function() {
             });
         }
 
-        $('#share-box-users').addClass('text-align-center').text('Loading user list');
-
         $share_list = $('#shared-users').children();
-
         if ($share_list.filter('.sharing-thumbnail').length > 0) {
             $share_list.sort(comparator);
             $share_list.each(function(index, element) {


[09/20] airavata-php-gateway git commit: minor fixes

Posted by sc...@apache.org.
minor fixes


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/7b211010
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/7b211010
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/7b211010

Branch: refs/heads/develop
Commit: 7b21101001e406144c130086121db51f003fc37f
Parents: 98b6ca3
Author: Jeff Kinnison <je...@gmail.com>
Authored: Mon Aug 15 12:10:45 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Mon Aug 15 12:10:45 2016 -0400

----------------------------------------------------------------------
 app/libraries/ExperimentUtilities.php | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7b211010/app/libraries/ExperimentUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php
index b22b8be..d90d2ce 100755
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php
@@ -572,7 +572,12 @@ class ExperimentUtilities
                 '<p>AiravataSystemException: ' . $ase->getMessage() . '</p>');
         }
 
-        ExperimentUtilities::share_experiment($expId, json_decode($share));
+        $share = json_decode($share);
+        $share->{Session::get("username")} = new stdClass();
+        $share->{Session::get("username")}->read = true;
+        $share->{Session::get("username")}->write = true;
+
+        ExperimentUtilities::share_experiment($expId, $share);
     }
 
 


[10/20] airavata-php-gateway git commit: Project summary page now only load experiments that the user may access

Posted by sc...@apache.org.
Project summary page now only load experiments that the user may access


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/dcf8e479
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/dcf8e479
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/dcf8e479

Branch: refs/heads/develop
Commit: dcf8e479978e050c072aea251514dec538ea5911
Parents: 7b21101
Author: Jeff Kinnison <je...@gmail.com>
Authored: Tue Aug 16 09:56:18 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Tue Aug 16 09:56:18 2016 -0400

----------------------------------------------------------------------
 app/libraries/ProjectUtilities.php | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/dcf8e479/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index 476f94d..1e5fecc 100755
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -184,6 +184,12 @@ class ProjectUtilities
             CommonUtilities::print_error_message('TTransportException!<br><br>' . $tte->getMessage());
         }
 
+        for($i = 0; $i < count($experiments); $i++) {
+            if (!SharingUtilities::userCanRead(Session::get("username"), $experiments[$i]->experimentId, ResourceType::EXPERIMENT)) {
+                array_splice($experiments, $i, 1);
+            }
+        }
+
         return $experiments;
     }
 


[20/20] airavata-php-gateway git commit: Merge branch 'grouper-integration' of https://github.com/jeffkinnison/airavata-php-gateway into develop

Posted by sc...@apache.org.
Merge branch 'grouper-integration' of https://github.com/jeffkinnison/airavata-php-gateway into develop

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.


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/f5ff011a
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/f5ff011a
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/f5ff011a

Branch: refs/heads/develop
Commit: f5ff011aa83be1a11c9e26e0600f96822669e0b9
Parents: f2f22bd face8c5
Author: scnakandala <su...@gmail.com>
Authored: Wed Aug 17 11:32:40 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Wed Aug 17 11:32:40 2016 -0400

----------------------------------------------------------------------
 app/controllers/ExperimentController.php        | 163 +++++++++++++------
 app/controllers/ProjectController.php           |  83 ++++++++--
 app/libraries/ExperimentUtilities.php           |  31 ++--
 app/libraries/ProjectUtilities.php              |  23 ++-
 app/libraries/SharingUtilities.php              |  28 +++-
 app/routes.php                                  |   8 +
 app/views/experiment/create-complete.blade.php  |   1 +
 app/views/experiment/edit.blade.php             |   2 +
 .../partials/experiment-container.blade.php     |  16 +-
 app/views/partials/experiment-info.blade.php    |  12 ++
 app/views/partials/sharing-form-modal.blade.php |   2 +-
 app/views/project/browse.blade.php              |   4 +-
 app/views/project/edit.blade.php                |   3 +
 app/views/project/summary.blade.php             |  12 +-
 public/js/sharing/share.js                      |  77 ++++++---
 public/js/sharing/sharing_utils.js              |   8 +-
 16 files changed, 334 insertions(+), 139 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f5ff011a/app/libraries/ExperimentUtilities.php
----------------------------------------------------------------------
diff --cc app/libraries/ExperimentUtilities.php
index dfe5761,631cb98..a90ba2a
mode 100644,100755..100755
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f5ff011a/app/routes.php
----------------------------------------------------------------------
diff --cc app/routes.php
index 29e22a9,6008c15..e26eadf
mode 100644,100755..100755
--- a/app/routes.php
+++ b/app/routes.php

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f5ff011a/app/views/partials/experiment-info.blade.php
----------------------------------------------------------------------


[14/20] airavata-php-gateway git commit: changes to ensure project owner cannot have permissions changed by other users

Posted by sc...@apache.org.
changes to ensure project owner cannot have permissions changed by other users


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/9f0ee4e6
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/9f0ee4e6
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/9f0ee4e6

Branch: refs/heads/develop
Commit: 9f0ee4e621a244d6cb5731e0fe617c7e01222e15
Parents: cb57e29
Author: Jeff Kinnison <je...@gmail.com>
Authored: Tue Aug 16 12:25:48 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Tue Aug 16 12:25:48 2016 -0400

----------------------------------------------------------------------
 app/controllers/ProjectController.php | 17 ++++++++++----
 app/libraries/ProjectUtilities.php    | 14 +++--------
 app/views/project/edit.blade.php      |  2 ++
 app/views/project/summary.blade.php   |  7 +++---
 public/js/sharing/share.js            | 37 ++++++++++++++----------------
 public/js/sharing/sharing_utils.js    |  8 ++++---
 6 files changed, 44 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f0ee4e6/app/controllers/ProjectController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ProjectController.php b/app/controllers/ProjectController.php
index 97a41f8..966f36a 100755
--- a/app/controllers/ProjectController.php
+++ b/app/controllers/ProjectController.php
@@ -26,7 +26,7 @@ class ProjectController extends BaseController
     public function createView()
     {
         $users = SharingUtilities::getAllUserProfiles();
-        return View::make("project/create", array("users" => json_encode($users)));
+        return View::make("project/create", array("users" => json_encode($users), "owner" => json_encode(array())));
     }
 
     public function createSubmit()
@@ -44,8 +44,16 @@ class ProjectController extends BaseController
         if (Input::has("projId")) {
             Session::put("projId", Input::get("projId"));
 
+            $project = ProjectUtilities::get_project(Input::get('projId'));
+
             $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
 
+            $owner = array();
+            if (strcmp(Session::get("username"), $project->owner) !== 0) {
+                $owner[$project->owner] = $users[$project->owner];
+                $users = array_diff_key($users, $owner);
+            }
+
             $experiments = ProjectUtilities::get_experiments_in_project(Input::get("projId"));
 
             $experiment_can_write = array();
@@ -62,6 +70,7 @@ class ProjectController extends BaseController
                 array("projectId" => Input::get("projId"),
                       "experiments" => $experiments,
                       "users" => json_encode($users),
+                      "owner" => json_encode($owner),
                       "project_can_write" => SharingUtilities::userCanWrite(Session::get("username"), Input::get("projId"), ResourceType::PROJECT),
                       "experiment_can_write" => $experiment_can_write
                   ));
@@ -78,8 +87,8 @@ class ProjectController extends BaseController
                 $owner = array();
 
                 if (strcmp(Session::get("username"), $project->owner) !== 0) {
-                    $owner = array($project->owner => $users[$project->owner]);
-                    $users = array_key_diff($users, $owner);
+                    $owner[$project->owner] = $users[$project->owner];
+                    $users = array_diff_key($users, $owner);
                 }
 
                 return View::make("project/edit",
@@ -98,7 +107,7 @@ class ProjectController extends BaseController
 
     public function editSubmit()
     {
-        if (isset($_POST['save']) && SharingUtilities::userCanWrite(Session::get("username"))) {
+        if (isset($_POST['save']) && SharingUtilities::userCanWrite(Session::get("username"), Input::get("projectId"), ResourceType::PROJECT)) {
             $projectDetails = array();
             $projectDetails["owner"] = Session::get("username");
             $projectDetails["name"] = Input::get("project-name");

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f0ee4e6/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index a5efdb4..ca8081e 100755
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -127,11 +127,7 @@ class ProjectUtilities
             CommonUtilities::print_error_message('AiravataSystemException!<br><br>' . $ase->getMessage());
         }
 
-        $share = json_decode($share);
-        $share->{Session::get('username')} = new stdClass();
-        $share->{Session::get('username')}->read = true;
-        $share->{Session::get('username')}->write = true;
-        ProjectUtilities::share_project($projectId, $share);
+        ProjectUtilities::share_project($projectId, json_decode($share));
 
         return $projectId;
     }
@@ -223,12 +219,7 @@ class ProjectUtilities
             CommonUtilities::print_error_message('AiravataSystemException!<br><br>' . $ase->getMessage());
         }
 
-        $share = json_decode($share);
-        $share->{Session::get('username')} = new stdClass();
-        $share->{Session::get('username')}->read = true;
-        $share->{Session::get('username')}->write = true;
-
-        ProjectUtilities::share_project($projectId, $share);
+        ProjectUtilities::share_project($projectId, json_decode($share));
     }
 
 
@@ -306,6 +297,7 @@ class ProjectUtilities
      */
     private static function share_project($projectId, $users) {
         $project = Airavata::getProject(Session::get("authz-token"), $projectId);
+        $users->{$project->owner} = new stdClass();
         $users->{$project->owner}->read = true;
         $users->{$project->owner}->write = true;
 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f0ee4e6/app/views/project/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/edit.blade.php b/app/views/project/edit.blade.php
index 388138e..edd8ac9 100755
--- a/app/views/project/edit.blade.php
+++ b/app/views/project/edit.blade.php
@@ -62,8 +62,10 @@
 @parent
 <script>
     var users = {{ $users }};
+    var owner = {{ $owner }};
     $('#project-share').data({url: "{{ URL::to('/') }}/project/unshared-users", resourceId: "{{ Input::get('projId') }}"})
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}
+
 @stop

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f0ee4e6/app/views/project/summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/summary.blade.php b/app/views/project/summary.blade.php
index fc6fe69..a307a63 100755
--- a/app/views/project/summary.blade.php
+++ b/app/views/project/summary.blade.php
@@ -108,11 +108,12 @@
 @stop
 @section('scripts')
 @parent
-{{ HTML::script('js/time-conversion.js')}}
 <script>
-    var users = {{ $users }};
-    //console.log(users);
+var users = {{ $users }};
+var owner = {{ $owner }};
 </script>
+{{ HTML::script('js/time-conversion.js')}}
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}
+
 @stop

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f0ee4e6/public/js/sharing/share.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/share.js b/public/js/sharing/share.js
index 5171b02..956cec3 100755
--- a/public/js/sharing/share.js
+++ b/public/js/sharing/share.js
@@ -4,6 +4,8 @@
  * @author Jeff Kinnison <jk...@nd.edu>
  */
 
+var createThumbnails;
+
 $(function() {
     var comparator_map, comparator, $original_shared_list, $revoke_list;
     comparator_map = {
@@ -16,7 +18,7 @@ $(function() {
 
     /* Share box functions */
 
-    var createTestData = function () {
+    createThumbnails = function () {
         var $users, $share, $user, share_settings;
 
         $users = $('#share-box-users');
@@ -55,23 +57,16 @@ $(function() {
             }
         }
 
-        // for (var group in dummy_group_data) {
-        //     if (dummy_group_data.hasOwnProperty(group)) {
-        //         data = dummy_group_data[group];
-        //         $group = createThumbnail(data.username, data.firstname, data.lastname, data.email, data.access);
-        //         $group.addClass('group-thumbnail');
-        //         if (data.access === access_enum.NONE) {
-        //             $group.addClass('share-box-users-item');
-        //             $users.append($group);
-        //         }
-        //         else {
-        //             $group.addClass('share-box-share-item');
-        //             $group.find('.sharing-thumbnail-access').prop("disabled", false).show();
-        //             $group.find('.sharing-thumbnail-unshare').show();
-        //             $share.append($group);
-        //         }
-        //     }
-        // }
+        for (var o in owner) {
+            if (owner.hasOwnProperty(o)) {
+                var odata = owner[o];
+                $owner = createThumbnail(o, odata.firstname, odata.lastname, odata.email, access_enum.OWNER, false);
+                $owner.find(".sharing-thumbnail-unshare").detach();
+                $owner.addClass("share-box-share-item owner");
+                $share.prepend($owner);
+            }
+        }
+
         if ($share.children().length === 0) {
             $share.append($('<p>This has not been shared</p>')).addClass('text-align-center');
         }
@@ -132,7 +127,9 @@ $(function() {
             $share_list.each(function(index, element) {
                 var $e;
                 $e = $(element);
-                $e.find('.sharing-thumbnail-access-text').hide();
+                if (!$e.hasClass('owner')) {
+                    $e.find('.sharing-thumbnail-access-text').hide();
+                }
                 $e.find('.sharing-thumbnail-access').prop('disabled', false).show();
                 $e.find('.sharing-thumbnail-unshare').show();
                 $e.detach().appendTo($('#share-box-share'));
@@ -339,5 +336,5 @@ $(function() {
 
 
     /* Set up the sharing interface */
-    createTestData();
+    createThumbnails();
 });

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f0ee4e6/public/js/sharing/sharing_utils.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/sharing_utils.js b/public/js/sharing/sharing_utils.js
index 5191de9..550576a 100644
--- a/public/js/sharing/sharing_utils.js
+++ b/public/js/sharing/sharing_utils.js
@@ -1,13 +1,15 @@
 var access_enum = {
     NONE: 0,
     READ: 1,
-    WRITE: 2
+    WRITE: 2,
+    OWNER: 3
 };
 
 var access_text = [
   'Cannot access',
   'Can read',
-  'Can write'
+  'Can write',
+  'Owner'
 ];
 
 var createThumbnail = function(username, firstname, lastname, email, access, share) {
@@ -30,7 +32,7 @@ var createThumbnail = function(username, firstname, lastname, email, access, sha
 
   access_text_current = access_text[access];
 
-  if (access !== access_enum.NONE) {
+  if (access !== access_enum.NONE && access !== access_enum.OWNER) {
       data.access.read = true;
       data.currentaccess.read = true;
   }


[08/20] airavata-php-gateway git commit: fixed issue 2005, 2014, 2021

Posted by sc...@apache.org.
fixed issue 2005, 2014, 2021


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/98b6ca3c
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/98b6ca3c
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/98b6ca3c

Branch: refs/heads/develop
Commit: 98b6ca3c064aff4a730495a410606d1c5760ecd7
Parents: bb852b7
Author: Jeff Kinnison <je...@gmail.com>
Authored: Mon Aug 15 12:09:33 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Mon Aug 15 12:09:33 2016 -0400

----------------------------------------------------------------------
 app/controllers/ExperimentController.php |  4 ++--
 app/libraries/ExperimentUtilities.php    |  8 +++-----
 app/libraries/SharingUtilities.php       | 14 ++++++++------
 public/js/sharing/share.js               |  6 +++---
 4 files changed, 16 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/98b6ca3c/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index 0b48605..defe700 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -333,11 +333,11 @@ class ExperimentController extends BaseController
 
     public function unsharedUsers()
     {
-        if (array_key_exists('resourceId', $_POST)) {
+        if (array_key_exists('resourceId', $_GET)) {
             return Response::json(SharingUtilities::getProfilesForUnsharedUsers($_GET['resourceId'], ResourceType::EXPERIMENT));
         }
         else {
-            return Response::json(array("error" => "Error: No project specified"));
+            return Response::json(array("error" => "Error: No experiment specified"));
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/98b6ca3c/app/libraries/ExperimentUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php
index e5da839..b22b8be 100755
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php
@@ -634,10 +634,8 @@ class ExperimentUtilities
             Airavata::updateExperiment(Session::get('authz-token'), $cloneId, $experiment);
 
             $share = SharingUtilities::getAllUserPermissions($expId, ResourceType::EXPERIMENT);
-            $share->{Session::get('username')} = new stdClass();
-            $share->{Session::get('username')}->read = true;
-            $share->{Session::get('username')}->write = true;
-            ExperimentUtilities::share_experiment($cloneId, $share);
+            $share[Session::get('username')] = ["read" => true, "write" => true];
+            ExperimentUtilities::share_experiment($cloneId, json_decode(json_encode($share)));
 
             return $cloneId;
         } catch (InvalidRequestException $ire) {
@@ -1131,7 +1129,7 @@ class ExperimentUtilities
         $expContainer = array();
         $expNum = 0;
         foreach ($experiments as $experiment) {
-            if (SharingUtilities::userCanRead(Session::get('username'), $experiment, ResourceType::EXPERIMENT)) {
+            if (SharingUtilities::userCanRead(Session::get('username'), $experiment->experimentId, ResourceType::EXPERIMENT)) {
                 $expValue = ExperimentUtilities::get_experiment_values($experiment, true);
                 $expContainer[$expNum]['experiment'] = $experiment;
                 if ($expValue["experimentStatusString"] == "FAILED")

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/98b6ca3c/app/libraries/SharingUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/SharingUtilities.php b/app/libraries/SharingUtilities.php
old mode 100644
new mode 100755
index 7b98f97..bf9987f
--- a/app/libraries/SharingUtilities.php
+++ b/app/libraries/SharingUtilities.php
@@ -25,12 +25,14 @@ class SharingUtilities {
      * @return True if the user has read permission, false otherwise.
      */
     public static function userCanRead($uid, $resourceId, $dataResourceType) {
-        if (WSIS::usernameExists($uid)) {
-            $read = GrouperUtilities::getAllAccessibleUsers($resourceId, $dataResourceType, ResourcePermissionType::READ);
-            return (array_key_exists($uid, $read) ? true : false);
-        }
-        else {
-            return false;
+        $read = GrouperUtilities::getAllAccessibleUsers($resourceId, $dataResourceType, ResourcePermissionType::READ);
+        foreach($read as $user) {
+            if (strcmp($uid, $user) === 0) {
+                return true;
+            }
+            else {
+                return false;
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/98b6ca3c/public/js/sharing/share.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/share.js b/public/js/sharing/share.js
index ee4885e..5171b02 100755
--- a/public/js/sharing/share.js
+++ b/public/js/sharing/share.js
@@ -110,11 +110,11 @@ $(function() {
                     var user, $user, $users;
 
                     $users = $('#share-box-users');
-                    $users.empty().removeClass('text-align-center');
-                    console.log(data);
+                    $users.removeClass('text-align-center');
+                    $users.text('');
                     for (user in data) {
                         if (data.hasOwnProperty(user)) {
-                            $user = createThumbnail(user, data.firstname, data.lastname, data.email, access_enum.NONE, true);
+                            $user = createThumbnail(user, data[user].firstname, data[user].lastname, data[user].email, access_enum.NONE, true);
                             $user.find('.sharing-thumbnail-access').hide();
 
                             $user.addClass('user-thumbnail');


[05/20] airavata-php-gateway git commit: updated views to incorporate new user loading scheme

Posted by sc...@apache.org.
updated views to incorporate new user loading scheme


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/878df057
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/878df057
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/878df057

Branch: refs/heads/develop
Commit: 878df0572361c53bbeb1c4da9a3981aee0bf1e80
Parents: b742a23
Author: Jeff Kinnison <je...@gmail.com>
Authored: Thu Aug 4 12:46:29 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Thu Aug 4 12:46:29 2016 -0400

----------------------------------------------------------------------
 app/views/project/edit.blade.php | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/878df057/app/views/project/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/edit.blade.php b/app/views/project/edit.blade.php
index 6b3e493..388138e 100755
--- a/app/views/project/edit.blade.php
+++ b/app/views/project/edit.blade.php
@@ -62,6 +62,7 @@
 @parent
 <script>
     var users = {{ $users }};
+    $('#project-share').data({url: "{{ URL::to('/') }}/project/unshared-users", resourceId: "{{ Input::get('projId') }}"})
 </script>
 {{ HTML::script('js/sharing/sharing_utils.js') }}
 {{ HTML::script('js/sharing/share.js') }}