app/libraries/GrouperUtilities.php (62 lines of code) (raw):

<?php use Airavata\Model\Group\ResourcePermissionType; class GrouperUtilities { /** * @return mixed array of usernames of the users in the gateway */ public static function getAllGatewayUsers() { return Airavata::getAllUsersInGateway(Session::get('authz-token'), Config::get('pga_config.airavata')['gateway-id']); } /** * @param $resourceId Experiment or Project ID * @param $userPermissionMap A map of map<username,Airavata\Model\Group\ResourcePermissionType> */ public static function shareResourceWithUsers($resourceId, $userPermissionMap) { $newUserPermissionsMap = []; foreach($userPermissionMap as $key=> $value){ $key = $key . "@" . Config::get('pga_config.airavata')['gateway-id']; $newUserPermissionsMap[$key] = $value; } Airavata::shareResourceWithUsers(Session::get('authz-token'), $resourceId, $newUserPermissionsMap); } /** * @param $resourceId Experiment or Project ID * @param $userPermissionMap A map of map<username,Airavata\Model\Group\ResourcePermissionType> */ public static function revokeSharingOfResourceFromUsers($resourceId, $userPermissionMap) { $newUserPermissionsMap = []; foreach($userPermissionMap as $key=> $value){ $key = $key . "@" . Config::get('pga_config.airavata')['gateway-id']; $newUserPermissionsMap[$key] = $value; } Airavata::revokeSharingOfResourceFromUsers(Session::get('authz-token'), $resourceId, $newUserPermissionsMap); } /** * @param $resourceId Experiment or Project ID * @param $permissionType e.g Airavata\Model\Group\ResourcePermissionType::READ, Airavata\Model\Group\ResourcePermissionType::WRITE * @return array array of usernames */ public static function getAllAccessibleUsers($resourceId, $permissionType) { $temp = Airavata::getAllAccessibleUsers(Session::get('authz-token'), $resourceId, $permissionType); $userList = []; foreach ($temp as $key => $u) { if (strpos($u, '@') !== false) { $parts = explode('@', $u); $u = $key = join('@', array_slice($parts, 0, -1)); } $userList[] = $u; } return $userList; } /** * @param $group Airavata/Model/Group/GrouoModel */ public static function createGroup($group){ $group->ownerId = $group->ownerId . "@" . Config::get('pga_config.airavata')['gateway-id']; Airavata::createGroup(Session::get('authz-token'),$group); } /** * @param $group Airavata/Model/Group/GrouoModel */ public static function updateGroup($group){ $group->ownerId = $group->ownerId . "@" . Config::get('pga_config.airavata')['gateway-id']; Airavata::updateGroup(Session::get('authz-token'),$group); } /** * @param $groupId * @param $ownerName */ public static function deleteGroup($groupId, $ownerName){ Airavata::deleteGroup(Session::get('authz-token'), $groupId, $ownerName, Config::get('pga_config.airavata')['gateway-id']); } /** * @param $groupId */ public static function getGroup($groupId){ return Airavata::getGroup(Session::get('authz-token'),$groupId); } /** * @param $userName * @return mixed */ public static function getAllGroupsUserBelongs($userName){ if (strpos($userName, '@') !== false) { $parts = explode('@', $userName); $userName = join('@', array_slice($parts, 0, -1)); } return Airavata::getAllGroupsUserBelongs(Session::get('authz-token'), $userName, Config::get('pga_config.airavata')['gateway-id']); } }