// Group-specific capability public GroupCapability(CapabilityMode mode) { Name = "Group"; Value = 1; Type = CapabilityType.Control; Mode = mode; }
public AccountCapability(CapabilityMode mode) { Name = "Account"; Value = 2; Type = CapabilityType.Control; Mode = mode; }
public DialogCapability(CapabilityMode mode) { Name = "Dialog"; Value = 0; Type = CapabilityType.View; Mode = mode; }
/// <summary> /// <see cref="ITableauPermissionService.DeleteDefaultCapabilityAsync"/> /// </summary> public async Task DeleteDefaultCapabilityAsync( string projectId, ResourceType resourceType, GranteeType granteeType, string granteeId, CapabilityName capabilityName, CapabilityMode capabilityMode ) { await DeleteDefaultPermissionAsync( projectId, resourceType, BuildDefaultPermission(granteeType, granteeId, capabilityName, capabilityMode) ).ConfigureAwait(false); }
/// <summary> /// <see cref="ITableauPermissionService.AddDefaultCapabilityAsync"/> /// </summary> public async Task <TableauPermission> AddDefaultCapabilityAsync( string projectId, ResourceType resourceType, GranteeType granteeType, string granteeId, CapabilityName capabilityName, CapabilityMode capabilityMode ) { return(await AddDefaultPermissionAsync( projectId, resourceType, BuildDefaultPermission(granteeType, granteeId, capabilityName, capabilityMode) ).ConfigureAwait(false)); }
/// <summary> /// Build permission for specified resource (e.g. datasource, project, workbook), user/group, and capability /// </summary> /// <param name="granteeType"></param> /// <param name="granteeId"></param> /// <param name="capabilityName"></param> /// <param name="capabilityMode"></param> public static TableauPermission BuildDefaultPermission( GranteeType granteeType, string granteeId, CapabilityName capabilityName, CapabilityMode capabilityMode ) { var permission = new TableauPermission(); var granteeCapabilities = new TableauGranteeCapabilities(); switch (granteeType) { case GranteeType.Group: granteeCapabilities.Group = new TableauGroup() { Id = granteeId }; break; case GranteeType.User: granteeCapabilities.User = new TableauUser() { Id = granteeId }; break; default: throw new Exception("Unsupported user/group type"); } granteeCapabilities.Capabilities = new TableauCapabilities() { Capability = new TableauCapability[] { new TableauCapability() { Name = capabilityName.ToString(), Mode = capabilityMode.ToString() } } }; permission.GranteeCapabilities = new TableauGranteeCapabilities[] { granteeCapabilities }; return(permission); }
/// <summary> /// <see cref="ITableauPermissionService.DeleteCapabilityAsync"/> /// </summary> public async Task DeleteCapabilityAsync( ResourceType resourceType, string resourceId, GranteeType userGroupType, string userGroupId, CapabilityName capabilityName, CapabilityMode capabilityMode ) { await DeletePermissionAsync( BuildPermission( resourceType, resourceId, userGroupType, userGroupId, capabilityName, capabilityMode ) ).ConfigureAwait(false); }
/// <summary> /// <see cref="ITableauPermissionService.AddCapabilityAsync"/> /// </summary> public async Task <TableauPermission> AddCapabilityAsync( ResourceType resourceType, string resourceId, GranteeType userGroupType, string userGroupId, CapabilityName capabilityName, CapabilityMode capabilityMode ) { return(await AddPermissionAsync( BuildPermission( resourceType, resourceId, userGroupType, userGroupId, capabilityName, capabilityMode ) ).ConfigureAwait(false)); }
/// <summary> /// Build permission for specified resource (e.g. datasource, project, workbook), user/group, and capability /// </summary> /// <param name="resourceType"></param> /// <param name="resourceId"></param> /// <param name="granteeType"></param> /// <param name="granteeId"></param> /// <param name="capabilityName"></param> /// <param name="capabilityMode"></param> public static TableauPermission BuildPermission( ResourceType resourceType, string resourceId, GranteeType granteeType, string granteeId, CapabilityName capabilityName, CapabilityMode capabilityMode ) { var permission = BuildDefaultPermission(granteeType, granteeId, capabilityName, capabilityMode); switch (resourceType) { case ResourceType.Datasource: permission.Datasource = new TableauDatasource() { Id = resourceId }; break; case ResourceType.Project: permission.Project = new TableauProject() { Id = resourceId }; break; case ResourceType.Workbook: permission.Workbook = new TableauWorkbook() { Id = resourceId }; break; default: // default permission break; } return(permission); }