blob: a167a3d66a7fc53a5088aa7a51d70ed178503c21 [file] [log] [blame]
<?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']);
}
}