public async Task LoadAsync(IConfigurationContext context)
        {
            IConfigurationContext permissionsContext = context.CreateChildConfigurationContext("Permissions");
            IConfigurationContext groupsContext      = permissionsContext.CreateChildConfigurationContext("Groups");

            GroupsConfig.ConfigurationContext = groupsContext;
            await GroupsConfig.LoadAsync(new
            {
                Groups = new object[]
                {
                    new GroupPermissionSection
                    {
                        Id          = "Default",
                        Name        = "Default Group",
                        Priority    = 0,
                        Permissions = new[]
                        {
                            "SomePermission",
                            "SomePermission.Other"
                        },
                        AutoAssign = true
                    }
                }
            });

            IConfigurationContext playersContext = permissionsContext.CreateChildConfigurationContext("Players");

            PlayersConfig.ConfigurationContext = playersContext;
            await PlayersConfig.LoadAsync();
        }
Пример #2
0
        public override void Bootstrap()
        {
            base.Bootstrap();

            object sampleGroupsPermissions = new
            {
                Groups = new object[]
                {
                    new GroupPermissionSection
                    {
                        Id          = "TestGroup1",
                        Name        = "TestGroup",
                        Priority    = 2,
                        Permissions = new[]
                        {
                            "GroupPermission1"
                        }
                    },
                    new GroupPermissionSection
                    {
                        Id          = "TestGroup2",
                        Name        = "TestGroup2",
                        Priority    = 1,
                        Permissions = new[]
                        {
                            "GroupPermission2",
                            "GroupPermission2.Child",
                            "!GroupPermission3"
                        }
                    },
                    new GroupPermissionSection
                    {
                        Id       = "TestGroup3",
                        Name     = "PrimaryGroup",
                        Priority = 3
                    }
                }
            };

            object samplePlayers = new
            {
                Users = new object[]
                {
                    new PlayerPermissionSection
                    {
                        Id     = "TestPlayerId",
                        Groups = new[]
                        {
                            "TestGroup3", "TestGroup2",
                            "TestGroup4" /* doesn't exist, shouldn't be exposed by GetGroups */
                        },
                        Permissions = new[]
                        {
                            "PlayerPermission.Test",
                            "PlayerPermission.Test2.*",
                            "!PlayerPermission.Test3"
                        }
                    }
                }
            };

            PlayersConfig = GetConfigurationProvider();
            PlayersConfig.LoadFromObject(samplePlayers);

            GroupsConfig = GetConfigurationProvider();
            GroupsConfig.LoadFromObject(sampleGroupsPermissions);

            TestPlayer = new TestPlayer(Runtime.Container, null).User;
        }