コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
        }