コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="permission"></param>
        /// <param name="principal"></param>
        public PermissionGrantingContext(PermissionDefinition permission, IPrincipal principal)
        {
            Check.NotNull(permission, nameof(permission));

            Permission = permission;
            Principal  = principal;
        }
コード例 #2
0
        public void Name()
        {
            var def = new PermissionDefinition("Test");

            def.Name.ShouldBe("Test");
            def.ToString().ShouldBe("[PermissionDefinition Test]");
        }
コード例 #3
0
        public void AddPermission()
        {
            var def = new PermissionDefinition("Test");

            def.Children.ShouldBeEmpty();
            def.AddChild("TestPermission");
            def.Children.ShouldHaveSingleItem().FullName.ShouldBe("Test.TestPermission");
        }
コード例 #4
0
        public void Properties()
        {
            var def = new PermissionDefinition("Test");

            def.Properties.ShouldBeEmpty();
            def.Properties.Add("TestKey", "TestValue");
            def.Properties.ShouldHaveSingleItem().Key.ShouldBe("TestKey");
        }
コード例 #5
0
        public void This()
        {
            var def = new PermissionDefinition("Test");

            def.Properties.ShouldBeEmpty();
            def["TestKey"].ShouldBeNull();
            def["TestKey"] = "TestValue";
            def.Properties.ShouldHaveSingleItem().Key.ShouldBe("TestKey");
        }
コード例 #6
0
        public void DisplayName()
        {
            var def = new PermissionDefinition("Test", "DisplayName");

            def.DisplayName.ShouldBe("DisplayName");
            Should.Throw <ArgumentNullException>(() => def.DisplayName = null);
            Should.NotThrow(() => def.DisplayName = "TestDisplay");
            def.DisplayName.ShouldBe("TestDisplay");
        }
コード例 #7
0
        public void GetPermissionsWithChildren()
        {
            var def = new PermissionDefinition("Test");

            def.Children.ShouldBeEmpty();
            def
            .AddChild("TestPermission",
                      p => p.AddChild("TestChild"));
            def.Children.ShouldHaveSingleItem().Children.ShouldHaveSingleItem().FullName.ShouldBe("Test.TestPermission.TestChild");
        }
コード例 #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="permissions"></param>
        /// <param name="permission"></param>
        protected virtual void AddPermissionToDictionaryRecursively(Dictionary <string, PermissionDefinition> permissions, PermissionDefinition permission)
        {
            permissions.Add(permission.FullName, permission);

            foreach (var child in permission.Children)
            {
                AddPermissionToDictionaryRecursively(permissions, child);
            }
        }
コード例 #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="permissions"></param>
        /// <param name="permission"></param>
        protected virtual void AddPermissionToDictionaryRecursively(Dictionary <string, PermissionDefinition> permissions, PermissionDefinition permission)
        {
            if (permissions.ContainsKey(permission.Name))
            {
                throw new ScorpioException("Duplicate permission name: " + permission.Name);
            }

            permissions[permission.Name] = permission;

            foreach (var child in permission.Children)
            {
                AddPermissionToDictionaryRecursively(permissions, child);
            }
        }