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/07/11 19:09:44 UTC
[1/4] airavata-php-gateway git commit: added preliminary sharing to
project backend
Repository: airavata-php-gateway
Updated Branches:
refs/heads/grouper-integration 2c3c19fec -> 2f58f9191
added preliminary sharing to project backend
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/9fbd3022
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/9fbd3022
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/9fbd3022
Branch: refs/heads/grouper-integration
Commit: 9fbd3022522e1061ae639d984e44032a64ddb514
Parents: 2c3c19f
Author: Jeff Kinnison <je...@gmail.com>
Authored: Fri Jul 8 16:32:58 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Fri Jul 8 16:32:58 2016 -0400
----------------------------------------------------------------------
app/libraries/ProjectUtilities.php | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9fbd3022/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index 011dcd9..730deda 100644
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -5,6 +5,8 @@ use Airavata\API\Error\AiravataSystemException;
use Airavata\API\Error\InvalidRequestException;
use Airavata\Facades\Airavata;
use Airavata\Model\Workspace\Project;
+use Airavata\Model\Group\ResourceType;
+use Airavata\Model\Group\ResourcePermissionType;
class ProjectUtilities
{
@@ -103,11 +105,31 @@ class ProjectUtilities
$project->description = $_POST['project-description'];
$project->gatewayId = Config::get('pga_config.airavata')['gateway-id'];
+ $share = $_POST['share-settings'];
+
$projectId = null;
try {
$projectId = Airavata::createProject(Session::get('authz-token'), Config::get('pga_config.airavata')['gateway-id'], $project);
+ $add = array();
+ $revoke = array();
+
+ $share = json_decode($share);
+
+ if (json_last_error() === JSON_ERROR_NONE) {
+ foreach ($share as $uname => $access) {
+ if ($access !== 0) {
+ $add[$uname] = $value;
+ }
+ else {
+ $revoke[$uname] = $value;
+ }
+ }
+ GrouperUtilities::shareResourceWithUsers($projectId, ResourceType.Project, $add);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project, $revoke);
+ }
+
if ($projectId) {
CommonUtilities::print_success_message("<p>Project {$_POST['project-name']} created!</p>" .
'<p>You will be redirected to the summary page shortly, or you can
@@ -265,4 +287,4 @@ class ProjectUtilities
return $projects;
}
-}
\ No newline at end of file
+}
[3/4] airavata-php-gateway git commit: fully integrated project
sharing
Posted by sc...@apache.org.
fully integrated project sharing
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/460fa7f8
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/460fa7f8
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/460fa7f8
Branch: refs/heads/grouper-integration
Commit: 460fa7f88eca09a4969a8dc41ea53ef312b4969a
Parents: 5c0b259
Author: Jeff Kinnison <je...@gmail.com>
Authored: Mon Jul 11 14:07:35 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Mon Jul 11 14:07:35 2016 -0400
----------------------------------------------------------------------
app/controllers/ProjectController.php | 8 +--
app/libraries/ProjectUtilities.php | 26 ++++-----
app/views/project/create.blade.php | 4 +-
public/js/sharing/share.js | 85 ++++++++++++++----------------
public/js/sharing/sharing_utils.js | 35 +++++++++---
5 files changed, 86 insertions(+), 72 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/460fa7f8/app/controllers/ProjectController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ProjectController.php b/app/controllers/ProjectController.php
index eba7035..dbeb668 100755
--- a/app/controllers/ProjectController.php
+++ b/app/controllers/ProjectController.php
@@ -27,10 +27,12 @@ class ProjectController extends BaseController
{
$uids = GrouperUtilities::getAllGatewayUsers();
$users = array();
- for ($i = 0; $i < count($uids); $i++) {
- $string = $uids[$i] . '@' . Config::get('pga_config.wsis')['tenant-domain'];
- $users[$i] = WSIS::getUserProfile($string);
+ foreach ($uids as $uid) {
+ if (WSIS::usernameExists($uid)) {
+ $users[$uid] = WSIS::getUserProfile($uid);
+ }
}
+ //var_dump($users);exit;
return View::make("project/create", array("users" => json_encode($users)));
}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/460fa7f8/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index acb9ed3..6bb3c67 100644
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -106,21 +106,15 @@ class ProjectUtilities
$project->gatewayId = Config::get('pga_config.airavata')['gateway-id'];
$share = $_POST['share-settings'];
+ $share = json_decode($share);
+ var_dump($share);
+ exit;
$projectId = null;
try {
$projectId = Airavata::createProject(Session::get('authz-token'), Config::get('pga_config.airavata')['gateway-id'], $project);
- $add = array();
- $revoke = array();
-
- $share = json_decode($share);
-
- if (json_last_error() === JSON_ERROR_NONE) {
- $this->share_project($projectId, $share);
- }
-
if ($projectId) {
CommonUtilities::print_success_message("<p>Project {$_POST['project-name']} created!</p>" .
'<p>You will be redirected to the summary page shortly, or you can
@@ -136,6 +130,8 @@ class ProjectUtilities
CommonUtilities::print_error_message('AiravataSystemException!<br><br>' . $ase->getMessage());
}
+ $this->share_project($projectId, ResourceType::Project, json_decode($share));
+
return $projectId;
}
@@ -293,18 +289,18 @@ class ProjectUtilities
$wrevoke[$user] = ResourcePermissionType::WRITE;
}
- GrouperUtilities::shareResourceWithUsers($projectId, ResourceType::Project, $wadd);
- GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project::Project, $wrevoke);
-
if ($perms['read']) {
$radd[$user] = ResourcePermissionType::READ;
}
else {
$rrevoke[$user] = ResourcePermissionType::READ;
}
-
- GrouperUtilities::shareResourceWithUsers($projectId, ResourceType::Project, $radd);
- GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project::Project, $rrevoke);
}
+
+ GrouperUtilities::shareResourceWithUsers($projectId, ResourceType::Project, $wadd);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project::Project, $wrevoke);
+
+ GrouperUtilities::shareResourceWithUsers($projectId, ResourceType::Project, $radd);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project::Project, $rrevoke);
}
}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/460fa7f8/app/views/project/create.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/create.blade.php b/app/views/project/create.blade.php
index 94348af..4f9147d 100755
--- a/app/views/project/create.blade.php
+++ b/app/views/project/create.blade.php
@@ -28,11 +28,11 @@
<div class="form-group">
<label for="project-share">Sharing Settings</label><br />
<button class="btn btn-default" name="project-share" id="project-share">Share With Other Users</button><br />
- <label>Show</label>
+ <!-- <label>Show</label>
<div id="show-results-group" class="btn-group" role="group" aria-label="Show Groups or Users">
<button type="button" class="show-groups show-results-btn btn btn-primary">Groups</button>
<button type="button" class="show-users show-results-btn btn btn-default">Users</button>
- </div>
+ </div> -->
<label>Order By</label>
<select class="order-results-selector">
<option value="username">Username</option>
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/460fa7f8/public/js/sharing/share.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/share.js b/public/js/sharing/share.js
index 0be74e5..b417b7c 100755
--- a/public/js/sharing/share.js
+++ b/public/js/sharing/share.js
@@ -6,10 +6,8 @@
var access_enum = {
NONE: '0',
- VIEW: '1',
- RUN: '2',
- EDIT: '3',
- ADMIN: '4'
+ READ: '1',
+ WRITE: '2'
};
var dummy_user_data = [
@@ -119,12 +117,12 @@ $(function() {
<div class="modal-body"> \
<label>Click on the users you would like to share with.</label> \
<input id="share-box-filter" class="form-control" type="text" placeholder="Filter the user list" /> \
- <label>Show</label> \
- <div id="show-results-group" class="btn-group" role="group" aria-label="Show Groups or Users">\
- <button type="button" class="show-groups show-results-btn btn btn-primary">Groups</button> \
- <button type="button" class="show-users show-results-btn btn btn-default">Users</button> \
- </div> \
- <label>Order By</label> \
+ <label>Show</label>' //\
+ // <div id="show-results-group" class="btn-group" role="group" aria-label="Show Groups or Users">\
+ // <button type="button" class="show-groups show-results-btn btn btn-primary">Groups</button> \
+ // <button type="button" class="show-users show-results-btn btn btn-default">Users</button> \
+ // </div> \
+ + '<label>Order By</label> \
<select class="order-results-selector"> \
<option value="username">Username</option> \
<option value="firstlast">First, Last Name</option> \
@@ -156,44 +154,36 @@ $(function() {
$users = $('#share-box-users');
$share = $('#share-box-share');
- for (var user in dummy_user_data) {
- if (dummy_user_data.hasOwnProperty(user)) {
- data = dummy_user_data[user];
- $user = createThumbnail(data.username, data.firstname, data.lastname, data.email, data.access);
+ for (var user in users) {
+ if (users.hasOwnProperty(user)) {
+ data = users[user];
+ $user = createThumbnail(user, data.firstname, data.lastname, data.email, access_enum.NONE);
$user.addClass('user-thumbnail');
- if (data.access === access_enum.NONE) {
- $user.addClass('share-box-users-item');
- $users.append($user);
- }
- else {
- $user.addClass('share-box-share-item');
- $user.find('.sharing-thumbnail-access').prop("disabled", false).show();
- $user.find('.sharing-thumbnail-unshare').show();
- $share.append($user);
- }
- }
- }
-
- 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);
- }
+ $user.addClass('share-box-users-item');
+ $users.append($user);
}
}
- $('.user-thumbnail').hide();
- $('.group-thumbnail').show();
+ // 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);
+ // }
+ // }
+ // }
+
+ $('.user-thumbnail').show();
+ //$('.group-thumbnail').show();
}
@@ -295,11 +285,12 @@ $(function() {
// Save the sharing permissions of each selected user
$('body').on('click', '#share-box-button', function(e) {
- var data, resource_id, $share_list;
+ var data, resource_id, $share_list, share_settings;
e.stopPropagation();
e.preventDefault();
data = $("#share-box").data()
$share_list = $("#share-box-share").children();
+ share_settings = {};
if (data.hasOwnProperty('resource_id')) {
resource_id = data.resource_id;
updateUserPrivileges(resource_id, $share_list);
@@ -309,16 +300,18 @@ $(function() {
if ($share_list.filter('.sharing-thumbnail').length > 0) {
$share_list.sort(comparator_map.username);
$share_list.each(function(index, element) {
- var $e, data;
+ var $e, data, settings;
$e = $(element);
data = $e.data();
if (data.hasOwnProperty('currentaccess')) {
data.access = data.currentaccess;
$e.data(data);
}
+ share_settings[data.username] = data.access;
$e.find('.sharing-thumbnail-access').prop('disabled', true);
$e.find('.sharing-thumbnail-unshare').hide();
});
+ $('#share-settings').val(JSON.stringify(share_settings));
$('#shared-users').removeClass('text-align-center');
$share_list.detach().appendTo($('#shared-users'));
}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/460fa7f8/public/js/sharing/sharing_utils.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/sharing_utils.js b/public/js/sharing/sharing_utils.js
index 2261d66..46bee1b 100644
--- a/public/js/sharing/sharing_utils.js
+++ b/public/js/sharing/sharing_utils.js
@@ -6,20 +6,36 @@ var createThumbnail = function(username, firstname, lastname, email, access = ac
firstname: firstname,
lastname: lastname,
email: email,
- access: access
+ access: {
+ read: false,
+ write: false
+ },
+ currentaccess: {
+ read: false,
+ write: false
+ }
};
+ if (access === access_enum.READ) {
+ data.access.read = true;
+ data.currentaccess.read = true;
+ }
+ else if (access === access_enum.WRITE) {
+ data.access.read = true;
+ data.access.write = true;
+ data.currentaccess.read = true;
+ data.currentaccess.write = true;
+ }
+
select = '';
if (share) {
select = '<select class="sharing-thumbnail-access" style="display: none;" disabled>';
options = '';
- options += '<option value="' + access_enum.NONE + '"' + (access === access_enum.NONE ? "selected" : "") + ' style="display: none;">Can View</option>';
- options += '<option value="' + access_enum.VIEW + '"' + (access === access_enum.VIEW ? "selected" : "") + '>Can View</option>';
- options += '<option value="' + access_enum.RUN + '"' + (access === access_enum.RUN ? "selected" : "") + '>Can Run</option>';
- options += '<option value="' + access_enum.EDIT + '"' + (access === access_enum.EDIT ? "selected" : "") + '>Can Edit</option>';
- options += '<option value="' + access_enum.ADMIN + '"' + (access === access_enum.ADMIN ? "selected" : "") + '>All Privileges</option>';
+ options += '<option value="' + access_enum.NONE + '"' + (access === access_enum.NONE ? "selected" : "") + ' style="display: none;">No Permissions</option>';
+ options += '<option value="' + access_enum.READ + '"' + (access === access_enum.VIEW ? "selected" : "") + '>Can Read</option>';
+ options += '<option value="' + access_enum.WRITE + '"' + (access === access_enum.RUN ? "selected" : "") + '>Can Write</option>';
select += options;
select += '</select>';
@@ -48,10 +64,14 @@ var createThumbnail = function(username, firstname, lastname, email, access = ac
}
var changeShareState = function($target) {
+ var data;
+ data = $target.data();
// If the user has sharing privileges, revoke them
if ($target.hasClass('share-box-users-item')) {
console.log("Sharing");
$target.find('.sharing-thumbnail-access').val('1').prop("disabled", false).show();
+ data.access.read = true;
+ $target.data(data);
$target.find('.sharing-thumbnail-unshare').show();
$target.detach().prependTo('#share-box-share').show();
}
@@ -59,6 +79,9 @@ var changeShareState = function($target) {
else if ($target.hasClass('share-box-share-item')) {
console.log("Revoking share");
$target.find('select').val('0').prop("disabled", true).hide();
+ data.access.read = true;
+ data.access.write = true;
+ $target.data(data);
$target.find('.sharing-thumbnail-unshare').hide();
$target.detach().appendTo('#share-box-users');
$('#share-box-filter').trigger('keydown');
[2/4] airavata-php-gateway git commit: project updates
Posted by sc...@apache.org.
project updates
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/5c0b259e
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/5c0b259e
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/5c0b259e
Branch: refs/heads/grouper-integration
Commit: 5c0b259ed2a4c167e34837b9f7866d1df755686e
Parents: 9fbd302
Author: Jeff Kinnison <je...@gmail.com>
Authored: Mon Jul 11 12:56:30 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Mon Jul 11 12:56:30 2016 -0400
----------------------------------------------------------------------
app/controllers/ProjectController.php | 10 +++++++-
app/libraries/ProjectUtilities.php | 40 ++++++++++++++++++++++--------
app/views/project/create.blade.php | 1 +
3 files changed, 40 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5c0b259e/app/controllers/ProjectController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ProjectController.php b/app/controllers/ProjectController.php
index fe3a35d..eba7035 100755
--- a/app/controllers/ProjectController.php
+++ b/app/controllers/ProjectController.php
@@ -1,5 +1,7 @@
<?php
+
+
class ProjectController extends BaseController
{
@@ -23,7 +25,13 @@ class ProjectController extends BaseController
public function createView()
{
- return View::make("project/create");
+ $uids = GrouperUtilities::getAllGatewayUsers();
+ $users = array();
+ for ($i = 0; $i < count($uids); $i++) {
+ $string = $uids[$i] . '@' . Config::get('pga_config.wsis')['tenant-domain'];
+ $users[$i] = WSIS::getUserProfile($string);
+ }
+ return View::make("project/create", array("users" => json_encode($users)));
}
public function createSubmit()
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5c0b259e/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index 730deda..acb9ed3 100644
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -118,16 +118,7 @@ class ProjectUtilities
$share = json_decode($share);
if (json_last_error() === JSON_ERROR_NONE) {
- foreach ($share as $uname => $access) {
- if ($access !== 0) {
- $add[$uname] = $value;
- }
- else {
- $revoke[$uname] = $value;
- }
- }
- GrouperUtilities::shareResourceWithUsers($projectId, ResourceType.Project, $add);
- GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project, $revoke);
+ $this->share_project($projectId, $share);
}
if ($projectId) {
@@ -287,4 +278,33 @@ class ProjectUtilities
return $projects;
}
+
+ private function share_project($projectId, $users) {
+ $wadd = array();
+ $wrevoke = array();
+ $radd = array();
+ $rrevoke = array();
+
+ foreach ($users as $user => $perms) {
+ if ($perms['write']) {
+ $wadd[$user] = ResourcePermissionType::WRITE;
+ }
+ else {
+ $wrevoke[$user] = ResourcePermissionType::WRITE;
+ }
+
+ GrouperUtilities::shareResourceWithUsers($projectId, ResourceType::Project, $wadd);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project::Project, $wrevoke);
+
+ if ($perms['read']) {
+ $radd[$user] = ResourcePermissionType::READ;
+ }
+ else {
+ $rrevoke[$user] = ResourcePermissionType::READ;
+ }
+
+ GrouperUtilities::shareResourceWithUsers($projectId, ResourceType::Project, $radd);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project::Project, $rrevoke);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5c0b259e/app/views/project/create.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/create.blade.php b/app/views/project/create.blade.php
index d24ab1b..94348af 100755
--- a/app/views/project/create.blade.php
+++ b/app/views/project/create.blade.php
@@ -63,6 +63,7 @@
$(".projectName").blur(function () {
$(this).val($.trim($(this).val()));
});
+ var users = {{ $users }};
</script>
{{ HTML::script('js/sharing/sharing_utils.js') }}
{{ HTML::script('js/sharing/share.js') }}
[4/4] airavata-php-gateway git commit: minor fixes and enable
experiment sharing
Posted by sc...@apache.org.
minor fixes and enable experiment sharing
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/2f58f919
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/2f58f919
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/2f58f919
Branch: refs/heads/grouper-integration
Commit: 2f58f9191718cf06805de9f3fcc27256739995e5
Parents: 460fa7f
Author: Jeff Kinnison <je...@gmail.com>
Authored: Mon Jul 11 14:44:56 2016 -0400
Committer: Jeff Kinnison <je...@gmail.com>
Committed: Mon Jul 11 14:44:56 2016 -0400
----------------------------------------------------------------------
app/controllers/ExperimentController.php | 17 +++++---
app/libraries/ExperimentUtilities.php | 43 +++++++++++++++++--
app/libraries/ProjectUtilities.php | 7 +--
.../assets/Profile_avatar_placeholder_large.png | Bin 0 -> 2011 bytes
app/views/experiment/create.blade.php | 7 ++-
5 files changed, 57 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/2f58f919/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index 2f225d1..7a49e6f 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -1,8 +1,6 @@
<?php
use Airavata\Model\Status\JobState;
-use Airavata\Model\Group\ResourceType;
-use Airavata\Model\Group\ResourcePermissionType;
class ExperimentController extends BaseController
{
@@ -27,7 +25,14 @@ class ExperimentController extends BaseController
public function createView()
{
Session::forget('exp_create_continue');
- return View::make('experiment/create');
+ $uids = GrouperUtilities::getAllGatewayUsers();
+ $users = array();
+ foreach ($uids as $uid) {
+ if (WSIS::usernameExists($uid)) {
+ $users[$uid] = WSIS::getUserProfile($uid);
+ }
+ }
+ return View::make('experiment/create', array("users" => json_encode($users)));
}
public function createSubmit()
@@ -54,7 +59,7 @@ class ExperimentController extends BaseController
if( $serverLimit < $allowedFileSize)
$allowedFileSize = $serverLimit;
-
+
$experimentInputs = array(
"clonedExp" => $clonedExp,
"savedExp" => $savedExp,
@@ -114,7 +119,7 @@ class ExperimentController extends BaseController
else
Session::forget("permissionDenied");
-
+
$project = ProjectUtilities::get_project($experiment->projectId);
$expVal = ExperimentUtilities::get_experiment_values($experiment);
$jobDetails = ExperimentUtilities::get_job_details($experiment->experimentId);
@@ -129,7 +134,7 @@ class ExperimentController extends BaseController
}
}
$expVal["jobDetails"] = $jobDetails;
-
+
$data = array(
"expId" => Input::get("expId"),
"experiment" => $experiment,
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/2f58f919/app/libraries/ExperimentUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php
index da58102..58a3863 100644
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php
@@ -21,6 +21,8 @@ use Airavata\Model\Data\Replica\DataReplicaLocationModel;
use Airavata\Model\Data\Replica\ReplicaLocationCategory;
use Airavata\Model\Data\Replica\ReplicaPersistentType;
use Airavata\Model\Application\Io\InputDataObjectType;
+use Airavata\Model\Group\ResourceType;
+use Airavata\Model\Group\ResourcePermissionType;
class ExperimentUtilities
{
@@ -77,7 +79,7 @@ class ExperimentUtilities
$optFilesHtml = "";
- if( count( $experimentInputs) > 0 ) {
+ if( count( $experimentInputs) > 0 ) {
foreach ($experimentInputs as $input) {
$matchingAppInput = null;
if ($input->type == DataType::URI) {
@@ -788,6 +790,8 @@ class ExperimentUtilities
$experiment = ExperimentUtilities::assemble_experiment();
$expId = null;
+ $share = $_POST['share-settings'];
+
try {
if ($experiment) {
$expId = Airavata::createExperiment(Session::get('authz-token'), Session::get("gateway_id"), $experiment);
@@ -809,6 +813,8 @@ class ExperimentUtilities
CommonUtilities::print_error_message('AiravataSystemException!<br><br>' . $ase->getMessage());
}
+ ExperimentUtilities::share_experiment($expId, json_decode($share));
+
return $expId;
}
@@ -932,14 +938,14 @@ class ExperimentUtilities
if( is_object( $experiment->experimentStatus ) )
$experimentStatusString = $expVal["experimentStates"][$experiment->experimentStatus->state];
else
- $experimentStatusString = $experiment->experimentStatus;
+ $experimentStatusString = $experiment->experimentStatus;
$expVal["experimentStatusString"] = $experimentStatusString;
if ( $experimentStatusString == ExperimentState::FAILED)
$expVal["editable"] = false;
$expVal["cancelable"] = false;
- if ( $experimentStatusString == ExperimentState::LAUNCHED
+ if ( $experimentStatusString == ExperimentState::LAUNCHED
|| $experimentStatusString == ExperimentState::EXECUTING)
$expVal["cancelable"] = true;
@@ -1303,5 +1309,34 @@ class ExperimentUtilities
echo '</select>';
}
+ private static function share_experiment($expId, $users) {
+ $wadd = array();
+ $wrevoke = array();
+ $radd = array();
+ $rrevoke = array();
+
+ foreach ($users as $user => $perms) {
+ if ($perms['write']) {
+ $wadd[$user] = ResourcePermissionType::WRITE;
+ }
+ else {
+ $wrevoke[$user] = ResourcePermissionType::WRITE;
+ }
+
+ if ($perms['read']) {
+ $radd[$user] = ResourcePermissionType::READ;
+ }
+ else {
+ $rrevoke[$user] = ResourcePermissionType::READ;
+ }
+ }
+
+ GrouperUtilities::shareResourceWithUsers($expId, ResourceType::Experiment, $wadd);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($expId, ResourceType::Experiment, $wrevoke);
+
+ GrouperUtilities::shareResourceWithUsers($expId, ResourceType::Experiment, $radd);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($expId, ResourceType::Experiment, $rrevoke);
+ }
+
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/2f58f919/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index 6bb3c67..14ea0d4 100644
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -106,9 +106,6 @@ class ProjectUtilities
$project->gatewayId = Config::get('pga_config.airavata')['gateway-id'];
$share = $_POST['share-settings'];
- $share = json_decode($share);
- var_dump($share);
- exit;
$projectId = null;
@@ -298,9 +295,9 @@ class ProjectUtilities
}
GrouperUtilities::shareResourceWithUsers($projectId, ResourceType::Project, $wadd);
- GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project::Project, $wrevoke);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType::Project, $wrevoke);
GrouperUtilities::shareResourceWithUsers($projectId, ResourceType::Project, $radd);
- GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType.Project::Project, $rrevoke);
+ GrouperUtilities::revokeSharingOfResourceFromUsers($projectId, ResourceType::Project, $rrevoke);
}
}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/2f58f919/app/resources/assets/Profile_avatar_placeholder_large.png
----------------------------------------------------------------------
diff --git a/app/resources/assets/Profile_avatar_placeholder_large.png b/app/resources/assets/Profile_avatar_placeholder_large.png
new file mode 100644
index 0000000..0989209
Binary files /dev/null and b/app/resources/assets/Profile_avatar_placeholder_large.png differ
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/2f58f919/app/views/experiment/create.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/create.blade.php b/app/views/experiment/create.blade.php
index ca857a2..36de03d 100755
--- a/app/views/experiment/create.blade.php
+++ b/app/views/experiment/create.blade.php
@@ -52,10 +52,10 @@
<label for="project-share">Sharing Settings</label><br />
<button class="btn btn-default" name="project-share" id="project-share">Share With Other Users</button> <br />
<label>Show</label>
- <div id="show-results-group" class="btn-group" role="group" aria-label="Show Groups or Users">
+ <!-- <div id="show-results-group" class="btn-group" role="group" aria-label="Show Groups or Users">
<button type="button" class="show-groups show-results-btn btn btn-primary">Groups</button>
<button type="button" class="show-users show-results-btn btn btn-default">Users</button>
- </div>
+ </div> -->
<label>Order By</label>
<select class="order-results-selector">
<option value="username">Username</option>
@@ -83,6 +83,9 @@
@section('scripts')
@parent
+<script>
+var users = {{ $users }};
+</script>
{{ HTML::script('js/sharing/sharing_utils.js') }}
{{ HTML::script('js/sharing/share.js') }}
@stop