Name

sn_collab_request.UserDelegatedDevPermissions

Description

No description available

Script

var UserDelegatedDevPermissions = (function() {
  return {
  	
  	// Returns list of permission sets and roles for a given scopeId
  	getPermissionSetsGrantedToUserFromScope: function(scopeId) {
  		var currentUserSysId = gs.getUserID();
  		var collabReqUtils = new CollabReqUtils();
  		var permSetRoleList = [];
  		var scopePermSetRoleAssignmentTable = new GlideRecord('sys_scope_permission_set_role_assignment');
  		var userHasRoleJoinQueryCondition = scopePermSetRoleAssignmentTable.addJoinQuery('sys_user_has_role', "role", "role");
  		
  		userHasRoleJoinQueryCondition.addCondition("user", currentUserSysId);
  		scopePermSetRoleAssignmentTable.addQuery("scope", scopeId);
  		scopePermSetRoleAssignmentTable.query();
  		
  		while(scopePermSetRoleAssignmentTable.next()) {
  			var permSetRoleObj = collabReqUtils.getObjectFromGlideRecord(scopePermSetRoleAssignmentTable, ['role', 'permission_set']);
  			var permissionName = "";
  			var developmentPermSetTable = scopePermSetRoleAssignmentTable.permission_set.getRefRecord();
  			if (developmentPermSetTable.isValidRecord()) {
  				permissionName = developmentPermSetTable.getValue("name");
  				permSetRoleObj["permission_name"] = permissionName;
  				permSetRoleList.push(permSetRoleObj);
  			}
  		}

  		return permSetRoleList;
  	},
  	getPermSetNamesAndIdsFromObj: function(permissionsGranted) {
  		var grantedPermSetNameAndId = {};
  		permissionsGranted.forEach( function(permSetAndRole) {
  			var permSetId = permSetAndRole["permission_set"];
  			grantedPermSetNameAndId[permSetId] = permSetAndRole["permission_name"];
  		});
  		
  		return grantedPermSetNameAndId;
  	},
  	
  	throwAppNotFound: function(appId) {
  		throw new sn_ws_err.ServiceError()
  			.setStatus(404)
  			.setMessage(appId ? gs.getMessage("Could not find the application {0}", appId) : gs.getMessage("Could not find the application"));
  	},
  	
  	isScopeValid: function(scopeId) {
  		var appTable = new GlideRecord("sys_app");
  		
  		if(appTable.get(scopeId)) {
  			return appTable.isValid();
  		} else {
  			var storeAppTable = new GlideRecord("sys_store_app");
  			storeAppTable.get(scopeId);
  			
  			return storeAppTable.isValid();
  		}
  	},
  	
  	canUserReadApp: function(appId) {
  		var apps = new GlideRecord('sys_app');
  		apps.get(appId);
  		
  		var storeAppTable = new GlideRecord("sys_store_app");
  		storeAppTable.get(appId);

          return apps.canRead() || storeAppTable.canRead();
  	}
  };
})();

Sys ID

27eba094c300301085c091294440dd89

Offical Documentation

Official Docs: