using System.Collections.Generic; using Microsoft.Extensions.Localization; using Oqtane.Documentation; using Oqtane.Infrastructure; using Oqtane.Models; using Oqtane.Shared; namespace Oqtane.Infrastructure.SiteTemplates { [PrivateApi("Mark Site-Template classes as private, since it's not very useful in the public docs")] public class AdminSiteTemplate : ISiteTemplate { private readonly IStringLocalizer _localizer; public AdminSiteTemplate(IStringLocalizer localizer) { _localizer = localizer; } public string Name { get { return "Admin Site Template"; } } public List CreateSite(Site site) { var pageTemplates = new List(); var seed = 1000; // order // user pages pageTemplates.Add(new PageTemplate { Name = "Login", Parent = "", Path = "login", Order = seed + 1, Icon = Icons.LockLocked, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Login.Index).ToModuleDefinitionName(), Title = "User Login", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Register", Parent = "", Path = "register", Order = seed + 3, Icon = Icons.Person, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Register.Index).ToModuleDefinitionName(), Title = "User Registration", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Reset", Parent = "", Path = "reset", Order = seed + 5, Icon = Icons.Person, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Reset.Index).ToModuleDefinitionName(), Title = "Password Reset", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Profile", Parent = "", Path = "profile", Order = seed + 7, Icon = Icons.Person, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Registered, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.UserProfile.Index).ToModuleDefinitionName(), Title = "User Profile", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Registered, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Search", Parent = "", Path = "search", Order = seed + 9, Icon = Icons.MagnifyingGlass, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.SearchResults.Index).ToModuleDefinitionName(), Title = "Search", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) } } } }); pageTemplates.Add(new PageTemplate { Name = "Privacy", Parent = "", Path = "privacy", Icon = Icons.Eye, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.HtmlText, Oqtane.Client", Title = "Privacy Policy", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = _localizer["Privacy"] } } }); pageTemplates.Add(new PageTemplate { Name = "Terms", Parent = "", Path = "terms", Icon = Icons.List, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.HtmlText, Oqtane.Client", Title = "Terms of Use", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = _localizer["Terms"] } } }); pageTemplates.Add(new PageTemplate { Name = "Not Found", Parent = "", Path = "404", Order = seed + 11, Icon = Icons.X, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.HtmlText, Oqtane.Client", Title = "Not Found", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "

The page you requested does not exist or you do not have sufficient rights to view it.

" } } }); // admin pages pageTemplates.Add(new PageTemplate { Name = "Admin", Parent = "", Path = "admin", Order = seed + 51, Icon = "", IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Dashboard.Index).ToModuleDefinitionName(), Title = "Admin Dashboard", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Site Settings", Parent = "Admin", Order = 1, Path = "admin/site", Icon = Icons.Home, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Site.Index).ToModuleDefinitionName(), Title = "Site Settings", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Page Management", Parent = "Admin", Order = 3, Path = "admin/pages", Icon = Icons.Layers, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Registered, true), // required to support personalized pages new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Pages.Index).ToModuleDefinitionName(), Title = "Page Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.View, RoleNames.Registered, true), // required to support personalized pages new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "User Management", Parent = "Admin", Order = 5, Path = "admin/users", Icon = Icons.People, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Users.Index).ToModuleDefinitionName(), Title = "User Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Profile Management", Parent = "Admin", Order = 7, Path = "admin/profiles", Icon = Icons.Person, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Profiles.Index).ToModuleDefinitionName(), Title = "Profile Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Role Management", Parent = "Admin", Order = 9, Path = "admin/roles", Icon = Icons.LockLocked, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Roles.Index).ToModuleDefinitionName(), Title = "Role Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "File Management", Parent = "Admin", Order = 11, Path = "admin/files", Icon = Icons.File, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Files.Index).ToModuleDefinitionName(), Title = "File Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Recycle Bin", Parent = "Admin", Order = 13, Path = "admin/recyclebin", Icon = Icons.Trash, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.RecycleBin.Index).ToModuleDefinitionName(), Title = "Recycle Bin", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Url Mappings", Parent = "Admin", Order = 15, Path = "admin/urlmappings", Icon = Icons.LinkBroken, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.UrlMappings.Index).ToModuleDefinitionName(), Title = "Url Mappings", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Visitor Management", Parent = "Admin", Order = 17, Path = "admin/visitors", Icon = Icons.Eye, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Visitors.Index).ToModuleDefinitionName(), Title = "Visitor Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Search Settings", Parent = "Admin", Order = 19, Path = "admin/search", Icon = Icons.MagnifyingGlass, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Search.Index).ToModuleDefinitionName(), Title = "Search Settings", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); // host pages (order starts at 51) pageTemplates.Add(new PageTemplate { Name = "Event Log", Parent = "Admin", Order = 51, Path = "admin/log", Icon = Icons.List, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Logs.Index).ToModuleDefinitionName(), Title = "Event Log", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Site Management", Parent = "Admin", Order = 53, Path = "admin/sites", Icon = Icons.Globe, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Sites.Index).ToModuleDefinitionName(), Title = "Site Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Module Management", Parent = "Admin", Order = 55, Path = "admin/modules", Icon = Icons.Browser, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.ModuleDefinitions.Index).ToModuleDefinitionName(), Title = "Module Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Theme Management", Parent = "Admin", Order = 57, Path = "admin/themes", Icon = Icons.Brush, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Themes.Index).ToModuleDefinitionName(), Title = "Theme Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Language Management", Parent = "Admin", Order = 59, Path = "admin/languages", Icon = Icons.Text, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true), new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Languages.Index).ToModuleDefinitionName(), Title = "Language Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true), new Permission(PermissionNames.View, RoleNames.Admin, true), new Permission(PermissionNames.Edit, RoleNames.Admin, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Scheduled Jobs", Parent = "Admin", Order = 61, Path = "admin/jobs", Icon = Icons.Timer, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Jobs.Index).ToModuleDefinitionName(), Title = "Scheduled Jobs", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "Sql Management", Parent = "Admin", Order = 63, Path = "admin/sql", Icon = Icons.Spreadsheet, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Sql.Index).ToModuleDefinitionName(), Title = "Sql Management", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "System Info", Parent = "Admin", Order = 65, Path = "admin/system", Icon = Icons.MedicalCross, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.SystemInfo.Index).ToModuleDefinitionName(), Title = "System Info", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, Content = "" } } }); pageTemplates.Add(new PageTemplate { Name = "System Update", Parent = "Admin", Order = 67, Path = "admin/update", Icon = Icons.Aperture, IsNavigation = false, IsPersonalizable = false, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, PageTemplateModules = new List { new PageTemplateModule { ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Upgrade.Index).ToModuleDefinitionName(), Title = "System Update", Pane = PaneNames.Default, PermissionList = new List { new Permission(PermissionNames.View, RoleNames.Host, true), new Permission(PermissionNames.Edit, RoleNames.Host, true) }, Content = "" } } }); return pageTemplates; } } }