예제 #1
0
        public async Task <ActionResult> SetUser(Guid guid)
        {
            using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
                int            adminRole = Resource.ResourceAccess.GetAdministratorRoleId();
                int            userRole  = Resource.ResourceAccess.GetUserRoleId();
                PageDefinition page      = await PageDefinition.LoadAsync(guid);

                if (page == null)
                {
                    throw new InternalError($"Page with Guid {0} not found", guid);
                }
                page.AllowedRoles = new SerializableList <PageDefinition.AllowedRole>();
                page.AllowedUsers = new SerializableList <PageDefinition.AllowedUser>();
                page.AllowedRoles.Add(new PageDefinition.AllowedRole {
                    RoleId = userRole, View = PageDefinition.AllowedEnum.Yes
                });

                foreach (PageDefinition.ModuleEntry modEntry in page.ModuleDefinitions)
                {
                    ModuleDefinition module = await modEntry.GetModuleAsync();

                    if (module != null)
                    {
                        module.AllowedRoles = new SerializableList <ModuleDefinition.AllowedRole>();
                        module.AllowedUsers = new SerializableList <ModuleDefinition.AllowedUser>();
                        module.AllowedRoles.Add(new ModuleDefinition.AllowedRole {
                            RoleId = userRole, View = ModuleDefinition.AllowedEnum.Yes
                        });
                    }
                }
                await page.SaveAsync();
            }
            return(Reload(null, Reload: ReloadEnum.ModuleParts));
        }
예제 #2
0
        private GridDefinition GetGridModel()
        {
            return(new GridDefinition {
                ModuleGuid = Module.ModuleGuid,
                SettingsModuleGuid = Module.PermanentGuid,
                InitialPageSize = 20,
                RecordType = typeof(PageItem),
                AjaxUrl = GetActionUrl(nameof(PagesBrowse_GridData)),
                DirectDataAsync = async(int skip, int take, List <DataProviderSortInfo> sort, List <DataProviderFilterInfo> filters) => {
                    // page editing services
                    ModuleDefinition pageSettings = await ModuleDefinition.LoadAsync(Manager.CurrentSite.PageEditingServices, AllowNone : true);

                    //if (pageSettings == null)
                    //    throw new InternalError("No page edit services available - no module has been defined in Site Properties");

                    using (PageDefinitionDataProvider dataProvider = new PageDefinitionDataProvider()) {
                        DataProviderGetRecords <PageDefinition> pages = await dataProvider.GetItemsAsync(skip, take, sort, filters);

                        return new DataSourceResult {
                            Data = (from s in pages.Data select new PageItem(Module, s, pageSettings)).ToList <object>(),
                            Total = pages.Total
                        };
                    }
                },
            });
        }
예제 #3
0
        public async Task <ActionResult> UpdateAdminAndEditorAuthorization()
        {
            using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
                int adminRole  = Resource.ResourceAccess.GetAdministratorRoleId();
                int editorRole = Resource.ResourceAccess.GetEditorRoleId();
                DataProviderGetRecords <PageDefinition> pages = await pageDP.GetItemsAsync(0, 0, null, null);

                foreach (PageDefinition genericPage in pages.Data)
                {
                    PageDefinition page = await PageDefinition.LoadAsync(genericPage.PageGuid);

                    if (page != null)
                    {
                        PageDefinition.AllowedRole role;
                        while ((role = PageDefinition.AllowedRole.Find(page.AllowedRoles, adminRole)) != null)
                        {
                            page.AllowedRoles.Remove(role);
                        }
                        page.AllowedRoles.Add(new PageDefinition.AllowedRole {
                            RoleId = adminRole, View = PageDefinition.AllowedEnum.Yes, Edit = PageDefinition.AllowedEnum.Yes, Remove = PageDefinition.AllowedEnum.Yes,
                        });
                        while ((role = PageDefinition.AllowedRole.Find(page.AllowedRoles, editorRole)) != null)
                        {
                            page.AllowedRoles.Remove(role);
                        }
                        page.AllowedRoles.Add(new PageDefinition.AllowedRole {
                            RoleId = editorRole, View = PageDefinition.AllowedEnum.Yes, Edit = PageDefinition.AllowedEnum.Yes,
                        });
                        await page.SaveAsync();
                    }
                }
            }
            return(Reload(null, Reload: ReloadEnum.ModuleParts));
        }
예제 #4
0
        internal static GridDefinition GetGridAllUsersModel()
        {
            return(new GridDefinition()
            {
                RecordType = typeof(AllEntry),
                InitialPageSize = 10,
                AjaxUrl = Utility.UrlFor(typeof(ListOfLocalPagesController), nameof(ListOfLocalPagesController.ListOfLocalPagesBrowse_GridData)),
                DirectDataAsync = async(int skip, int take, List <DataProviderSortInfo> sort, List <DataProviderFilterInfo> filters) => {
                    using (PageDefinitionDataProvider pagesDP = new PageDefinitionDataProvider()) {
                        DataProviderGetRecords <PageDefinition> browseItems = await pagesDP.GetItemsAsync(skip, take, sort, filters);

                        return new DataSourceResult {
                            Data = (from s in browseItems.Data select new AllEntry(s)).ToList <object>(),
                            Total = browseItems.Total
                        };
                    }
                },
            });
        }