コード例 #1
0
        public CategoriesPresenter(IRolesCache rolesCache,
                                   ICategoriesCache categoriesCache,
                                   IAuthorizationService authorizationService,
                                   OperationKeysContainer operationKeysContainer)
        {
            OperationKeys = operationKeysContainer;

            this.authorizationService = authorizationService;
            this.categoriesCache      = categoriesCache;
            this.rolesCache           = rolesCache;
        }
コード例 #2
0
 public ActivitiesController(
     OperationKeysContainer operationKeysContainer,
     ICategoriesCache categoriesCache,
     IAuthorizationService authorizationService,
     IActivitiesPresenter activitiesPresenter,
     IServiceProvider serviceProvider) : base(serviceProvider)
 {
     OperationKeys             = operationKeysContainer;
     this.categoriesCache      = categoriesCache;
     this.authorizationService = authorizationService;
     this.activitiesPresenter  = activitiesPresenter;
 }
コード例 #3
0
ファイル: BlogController.cs プロジェクト: artemzn/SunEngine
        public BlogController(IOptions <BlogOptions> blogOptions,
                              IAuthorizationService authorizationService,
                              ICategoriesCache categoriesCache,
                              OperationKeysContainer operationKeysContainer,
                              IBlogPresenter blogPresenter,
                              IServiceProvider serviceProvider) : base(serviceProvider)
        {
            OperationKeys = operationKeysContainer;

            this.blogOptions          = blogOptions.Value;
            this.authorizationService = authorizationService;
            this.categoriesCache      = categoriesCache;
            this.blogPresenter        = blogPresenter;
        }
コード例 #4
0
        public CategoriesPresenter(
            IRolesCache rolesCache,
            ICategoriesCache categoriesCache,
            IOptionsMonitor <GlobalOptions> globalOptions,
            IAuthorizationService authorizationService,
            OperationKeysContainer operationKeysContainer)
        {
            OperationKeys = operationKeysContainer;

            this.authorizationService = authorizationService;
            this.categoriesCache      = categoriesCache;
            this.rolesCache           = rolesCache;
            this.globalOptions        = globalOptions;
        }
コード例 #5
0
        public ForumController(IOptions <ForumOptions> forumOptions,
                               IAuthorizationService authorizationService,
                               ICategoriesCache categoriesCache,
                               IContentCache contentCache,
                               OperationKeysContainer operationKeysContainer,
                               IForumPresenter forumPresenter,
                               IServiceProvider serviceProvider) : base(serviceProvider)
        {
            OperationKeys = operationKeysContainer;

            this.forumPresenter       = forumPresenter;
            this.forumOptions         = forumOptions.Value;
            this.authorizationService = authorizationService;
            this.categoriesCache      = categoriesCache;
        }
コード例 #6
0
        public ArticlesController(
            IOptions <ArticlesOptions> articlesOptions,
            IAuthorizationService authorizationService,
            ICategoriesCache categoriesCache,
            OperationKeysContainer operationKeysContainer,
            IArticlesPresenter articlesPresenter,
            IServiceProvider serviceProvider) : base(serviceProvider)
        {
            OperationKeys = operationKeysContainer;

            this.articlesOptions      = articlesOptions.Value;
            this.authorizationService = authorizationService;
            this.categoriesCache      = categoriesCache;
            this.articlesPresenter    = articlesPresenter;
        }
コード例 #7
0
 public CommentsController(
     IMaterialsManager materialsManager,
     CommentsAuthorization commentsAuthorization,
     OperationKeysContainer operationKeys,
     ICommentsManager commentsManager,
     IAuthorizationService authorizationService,
     ICommentsPresenter commentsPresenter,
     IServiceProvider serviceProvider) : base(serviceProvider)
 {
     OperationKeys = operationKeys;
     this.commentsAuthorization = commentsAuthorization;
     this.materialsManager      = materialsManager;
     this.commentsManager       = commentsManager;
     this.authorizationService  = authorizationService;
     this.commentsPresenter     = commentsPresenter;
 }
コード例 #8
0
        private void SeedOperationKeys()
        {
            Console.WriteLine("OperationKeys");

            var keys = OperationKeysContainer.GetAllOperationKeys();

            foreach (var key in keys)
            {
                var operationKey = new OperationKey
                {
                    OperationKeyId = dataContainer.NextOperationKeyId(),
                    Name           = key
                };

                dataContainer.OperationKeys.Add(operationKey);
            }
        }
コード例 #9
0
        public ArticlesController(
            IOptionsMonitor <ArticlesOptions> articlesOptions,
            IAuthorizationService authorizationService,
            ICategoriesCache categoriesCache,
            OperationKeysContainer operationKeysContainer,
            IArticlesPresenter articlesPresenter,
            IMaterialsManager materialManager,
            MaterialsAuthorization materialsAuthorization,
            IServiceProvider serviceProvider) : base(serviceProvider)
        {
            OperationKeys = operationKeysContainer;

            this.articlesOptions        = articlesOptions;
            this.authorizationService   = authorizationService;
            this.categoriesCache        = categoriesCache;
            this.articlesPresenter      = articlesPresenter;
            this.materialManager        = materialManager;
            this.materialsAuthorization = materialsAuthorization;
        }
コード例 #10
0
 public MaterialsController(
     MaterialsAuthorization materialsAuthorization,
     ICategoriesCache categoriesCache,
     IMaterialsManager materialsManager,
     IMaterialsPresenter materialsPresenter,
     IMaterialsVisitsCounterCache materialsVisitsCounterCache,
     ISectionsCache sectionsCache,
     IServiceProvider serviceProvider,
     OperationKeysContainer operationKeysContainer,
     IAuthorizationService authorizationService) : base(serviceProvider)
 {
     this.materialsAuthorization      = materialsAuthorization;
     this.categoriesCache             = categoriesCache;
     this.materialsManager            = materialsManager;
     this.materialsPresenter          = materialsPresenter;
     this.materialsVisitsCounterCache = materialsVisitsCounterCache;
     this.sectionsCache          = sectionsCache;
     this.serviceProvider        = serviceProvider;
     this.operationKeysContainer = operationKeysContainer;
     this.authorizationService   = authorizationService;
 }
コード例 #11
0
        public void Seed(string jsonText)
        {
            IList <string> allSuperKeys = OperationKeysContainer.GetAllSuperKeys();

            JObject rolesJson = JObject.Parse(jsonText);

            var errors = schema.Validate(rolesJson);

            if (errors != null && errors.Count > 0)
            {
                throw new Exception(string.Join(@"\n\n\n", errors));
            }


            int id = 0;
            int categoryAccessId = 0;

            foreach (JProperty jProp in rolesJson.Properties())
            {
                JObject userGroupJson = (JObject)jProp.Value;

                id++;

                if (!((IDictionary <string, JToken>)userGroupJson).ContainsKey("Title"))
                {
                    throw new Exception("Can not find category title");
                }

                var  roleName = jProp.Name;
                Role role     = new Role
                {
                    Id             = id,
                    Name           = roleName,
                    NormalizedName = Normalizer.Normalize(roleName),
                    Title          = (string)userGroupJson["Title"],
                    IsSuper        = ((IDictionary <string, JToken>)userGroupJson).ContainsKey("IsSuper") &&
                                     (bool)userGroupJson["IsSuper"],
                    SortNumber = id
                };

                roles.Add(role);

                if (!userGroupJson.TryGetValue("Categories", out var categoriesAccessJsonList))
                {
                    continue;
                }

                foreach (var categoriesAccessJson in categoriesAccessJsonList)
                {
                    string name = (string)categoriesAccessJson["Category"];

                    if (!categories.ContainsKey(name))
                    {
                        throw new Exception("No such category: " + name);
                    }

                    Category category = categories[name];

                    categoryAccessId++;

                    CategoryAccess categoryAccess = new CategoryAccess
                    {
                        Id         = categoryAccessId,
                        CategoryId = category.Id,
                        RoleId     = role.Id
                    };

                    if (role.CategoryAccesses == null)
                    {
                        role.CategoryAccesses = new List <CategoryAccess>();
                    }

                    role.CategoryAccesses.Add(categoryAccess);

                    categoryAccesses.Add(categoryAccess);

                    var operationKeysJsonObject = (JObject)categoriesAccessJson["OperationKeys"];

                    foreach (var operationKeyJson in operationKeysJsonObject.Properties())
                    {
                        string keyName = operationKeyJson.Name;

                        if (!role.IsSuper && allSuperKeys.Contains(keyName))
                        {
                            throw new Exception(
                                      $"Ordinary UserGroup '{role.Name}' can not contain IsSuper key '{keyName}'");
                        }

                        if (!operationKeys.ContainsKey(keyName))
                        {
                            throw new Exception($"No such key in registered keys '{keyName}'");
                        }

                        var operationKey = operationKeys[keyName];

                        CategoryOperationAccess categoryOperationAccess = new CategoryOperationAccess
                        {
                            CategoryAccessId = categoryAccess.Id,
                            OperationKeyId   = operationKey.OperationKeyId,
                            Access           = (bool)operationKeyJson.Value
                        };

                        categoryOperationAccesses.Add(categoryOperationAccess);
                    }
                }
            }
        }