/// <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); }
public void CapabilityName_Will_Be_Replaced_In_Document() { // Arrange var name = "foo"; var document = "foo capabilityName"; var policyTemplate = new PolicyTemplate(name, document); var capabilityName = new CapabilityName("baaa"); Func <PolicyTemplate, string> policyTemplateFormatter = (template) => { return(template.Document.Replace("capabilityName", capabilityName.ToString().ToLower())); }; // Act var policy = Policy.Create(policyTemplate, policyTemplateFormatter); // Assert var expectedDocument = "foo baaa"; Assert.Equal(expectedDocument, policy.Document); }