Merge pull request #298 from chlupac/SiteTemplate

Site repository refactoring
This commit is contained in:
Shaun Walker 2020-03-20 12:58:09 -04:00 committed by GitHub
commit 0d11f72083
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,11 +25,14 @@ namespace Oqtane.Repository
private readonly IPageModuleRepository _pageModuleRepository; private readonly IPageModuleRepository _pageModuleRepository;
private readonly IModuleDefinitionRepository _moduleDefinitionRepository; private readonly IModuleDefinitionRepository _moduleDefinitionRepository;
private readonly IPermissionRepository _permissionRepository; private readonly IPermissionRepository _permissionRepository;
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
private readonly List<PageTemplate> _pageTemplates;
private readonly IConfigurationRoot _config; private readonly IConfigurationRoot _config;
public SiteRepository(TenantDBContext context, IRoleRepository roleRepository, IProfileRepository profileRepository, IFolderRepository folderRepository, IFileRepository fileRepository, IPageRepository pageRepository, IModuleRepository moduleRepository, IPageModuleRepository pageModuleRepository, IModuleDefinitionRepository moduleDefinitionRepository, IPermissionRepository permissionRepository, IServiceProvider serviceProvider, IConfigurationRoot config) public SiteRepository(TenantDBContext context, IRoleRepository roleRepository, IProfileRepository profileRepository, IFolderRepository folderRepository, IFileRepository fileRepository, IPageRepository pageRepository,
IModuleRepository moduleRepository, IPageModuleRepository pageModuleRepository, IModuleDefinitionRepository moduleDefinitionRepository, IPermissionRepository permissionRepository, IServiceProvider serviceProvider,
IConfigurationRoot config)
{ {
_db = context; _db = context;
_roleRepository = roleRepository; _roleRepository = roleRepository;
@ -43,264 +46,440 @@ namespace Oqtane.Repository
_permissionRepository = permissionRepository; _permissionRepository = permissionRepository;
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_config = config; _config = config;
}
// define the default site template ( admin pages ) private List<PageTemplate> CreateAdminPages(List<PageTemplate> pageTemplates = null)
_pageTemplates = new List<PageTemplate>(); {
_pageTemplates.Add(new PageTemplate { Name = "Admin", Parent = "", Path = "admin", Icon = "", IsNavigation = false, IsPersonalizable = false, EditMode = true, if (pageTemplates == null) pageTemplates = new List<PageTemplate>();
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> {
pageTemplates.Add(new PageTemplate
{
Name = "Admin", Parent = "", Path = "admin", Icon = "", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Dashboard, Oqtane.Client", Title = "Admin Dashboard", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Dashboard, Oqtane.Client", Title = "Admin Dashboard", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
}}); {
_pageTemplates.Add(new PageTemplate { Name = "Site Management", Parent = "Admin", Path = "admin/sites", Icon = "globe", IsNavigation = false, IsPersonalizable = false, EditMode = true, new Permission(PermissionNames.View, Constants.AdminRole, true),
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { new Permission(PermissionNames.Edit, Constants.AdminRole, true)
new Permission(PermissionNames.View, Constants.AdminRole, true), }),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) Content = ""
}), }
PageTemplateModules = new List<PageTemplateModule> { }
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Sites, Oqtane.Client", Title = "Site Management", Pane = "Content",
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), Content = "" }
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Site Settings", Parent = "Admin", Path = "admin/site", Icon = "home", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Site Management", Parent = "Admin", Path = "admin/sites", Icon = "globe", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Site, Oqtane.Client", Title = "Site Settings", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Sites, Oqtane.Client", Title = "Site Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Page Management", Parent = "Admin", Path = "admin/pages", Icon = "layers", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Site Settings", Parent = "Admin", Path = "admin/site", Icon = "home", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Pages, Oqtane.Client", Title = "Page Management", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Site, Oqtane.Client", Title = "Site Settings", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "User Management", Parent = "Admin", Path = "admin/users", Icon = "people", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Page Management", Parent = "Admin", Path = "admin/pages", Icon = "layers", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Users, Oqtane.Client", Title = "User Management", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Pages, Oqtane.Client", Title = "Page Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Profile Management", Parent = "Admin", Path = "admin/profiles", Icon = "person", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "User Management", Parent = "Admin", Path = "admin/users", Icon = "people", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Profiles, Oqtane.Client", Title = "Profile Management", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Users, Oqtane.Client", Title = "User Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Role Management", Parent = "Admin", Path = "admin/roles", Icon = "lock-locked", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Profile Management", Parent = "Admin", Path = "admin/profiles", Icon = "person", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Roles, Oqtane.Client", Title = "Role Management", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Profiles, Oqtane.Client", Title = "Profile Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Event Log", Parent = "Admin", Path = "admin/log", Icon = "magnifying-glass", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Role Management", Parent = "Admin", Path = "admin/roles", Icon = "lock-locked", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Logs, Oqtane.Client", Title = "Event Log", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Roles, Oqtane.Client", Title = "Role Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "File Management", Parent = "Admin", Path = "admin/files", Icon = "file", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Event Log", Parent = "Admin", Path = "admin/log", Icon = "magnifying-glass", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Files, Oqtane.Client", Title = "File Management", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Logs, Oqtane.Client", Title = "Event Log", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Recycle Bin", Parent = "Admin", Path = "admin/recyclebin", Icon = "trash", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "File Management", Parent = "Admin", Path = "admin/files", Icon = "file", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.RecycleBin, Oqtane.Client", Title = "Recycle Bin", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Files, Oqtane.Client", Title = "File Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Tenant Management", Parent = "Admin", Path = "admin/tenants", Icon = "list", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Recycle Bin", Parent = "Admin", Path = "admin/recyclebin", Icon = "trash", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Tenants, Oqtane.Client", Title = "Tenant Management", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.RecycleBin, Oqtane.Client", Title = "Recycle Bin", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Module Management", Parent = "Admin", Path = "admin/modules", Icon = "browser", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Tenant Management", Parent = "Admin", Path = "admin/tenants", Icon = "list", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.ModuleDefinitions, Oqtane.Client", Title = "Module Management", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Tenants, Oqtane.Client", Title = "Tenant Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Theme Management", Parent = "Admin", Path = "admin/themes", Icon = "brush", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Module Management", Parent = "Admin", Path = "admin/modules", Icon = "browser", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Themes, Oqtane.Client", Title = "Theme Management", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.ModuleDefinitions, Oqtane.Client", Title = "Module Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Scheduled Jobs", Parent = "Admin", Path = "admin/jobs", Icon = "timer", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Theme Management", Parent = "Admin", Path = "admin/themes", Icon = "brush", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Jobs, Oqtane.Client", Title = "Scheduled Jobs", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Themes, Oqtane.Client", Title = "Theme Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Upgrade Service", Parent = "Admin", Path = "admin/upgrade", Icon = "aperture", IsNavigation = false, IsPersonalizable = false, EditMode = true, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Scheduled Jobs", Parent = "Admin", Path = "admin/jobs", Icon = "timer", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Upgrade, Oqtane.Client", Title = "Upgrade Service", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModuleDefinitionName = "Oqtane.Modules.Admin.Jobs, Oqtane.Client", Title = "Scheduled Jobs", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Login", Parent = "", Path = "login", Icon = "lock-locked", IsNavigation = false, IsPersonalizable = false, EditMode = false, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Upgrade Service", Parent = "Admin", Path = "admin/upgrade", Icon = "aperture", IsNavigation = false, IsPersonalizable = false, EditMode = true,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
PageTemplateModules = new List<PageTemplateModule>
{
new PageTemplateModule
{
ModuleDefinitionName = "Oqtane.Modules.Admin.Upgrade, Oqtane.Client", Title = "Upgrade Service", Pane = "Content",
ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
});
pageTemplates.Add(new PageTemplate
{
Name = "Login", Parent = "", Path = "login", Icon = "lock-locked", IsNavigation = false, IsPersonalizable = false, EditMode = false,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.View, Constants.AllUsersRole, true), new Permission(PermissionNames.View, Constants.AllUsersRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Login, Oqtane.Client", Title = "User Login", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.View, Constants.AllUsersRole, true), ModuleDefinitionName = "Oqtane.Modules.Admin.Login, Oqtane.Client", Title = "User Login", Pane = "Content",
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
}), Content = "" } {
} new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.View, Constants.AllUsersRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Register", Parent = "", Path = "register", Icon = "person", IsNavigation = false, IsPersonalizable = false, EditMode = false, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Register", Parent = "", Path = "register", Icon = "person", IsNavigation = false, IsPersonalizable = false, EditMode = false,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.View, Constants.AllUsersRole, true), new Permission(PermissionNames.View, Constants.AllUsersRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Register, Oqtane.Client", Title = "User Registration", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.View, Constants.AllUsersRole, true), ModuleDefinitionName = "Oqtane.Modules.Admin.Register, Oqtane.Client", Title = "User Registration", Pane = "Content",
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
}), Content = "" } {
} new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.View, Constants.AllUsersRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Reset", Parent = "", Path = "reset", Icon = "person", IsNavigation = false, IsPersonalizable = false, EditMode = false, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Reset", Parent = "", Path = "reset", Icon = "person", IsNavigation = false, IsPersonalizable = false, EditMode = false,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.View, Constants.AllUsersRole, true), new Permission(PermissionNames.View, Constants.AllUsersRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Reset, Oqtane.Client", Title = "Password Reset", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.View, Constants.AllUsersRole, true), ModuleDefinitionName = "Oqtane.Modules.Admin.Reset, Oqtane.Client", Title = "Password Reset", Pane = "Content",
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
}), Content = "" } {
} new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.View, Constants.AllUsersRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
_pageTemplates.Add(new PageTemplate { Name = "Profile", Parent = "", Path = "profile", Icon = "person", IsNavigation = false, IsPersonalizable = false, EditMode = false, pageTemplates.Add(new PageTemplate
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission> { {
Name = "Profile", Parent = "", Path = "profile", Icon = "person", IsNavigation = false, IsPersonalizable = false, EditMode = false,
PagePermissions = _permissionRepository.EncodePermissions(new List<Permission>
{
new Permission(PermissionNames.View, Constants.AdminRole, true), new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.View, Constants.RegisteredRole, true), new Permission(PermissionNames.View, Constants.RegisteredRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true) new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}), }),
PageTemplateModules = new List<PageTemplateModule> { PageTemplateModules = new List<PageTemplateModule>
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.UserProfile, Oqtane.Client", Title = "User Profile", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
new Permission(PermissionNames.View, Constants.AdminRole, true), {
new Permission(PermissionNames.View, Constants.RegisteredRole, true), ModuleDefinitionName = "Oqtane.Modules.Admin.UserProfile, Oqtane.Client", Title = "User Profile", Pane = "Content",
new Permission(PermissionNames.Edit, Constants.AdminRole, true) ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
}), Content = "" } {
} new Permission(PermissionNames.View, Constants.AdminRole, true),
new Permission(PermissionNames.View, Constants.RegisteredRole, true),
new Permission(PermissionNames.Edit, Constants.AdminRole, true)
}),
Content = ""
}
}
}); });
return pageTemplates;
} }
public IEnumerable<Site> GetSites() public IEnumerable<Site> GetSites()
@ -329,7 +508,7 @@ namespace Oqtane.Repository
} }
public void DeleteSite(int siteId) public void DeleteSite(int siteId)
{ {
var site = _db.Site.Find(siteId); var site = _db.Site.Find(siteId);
_db.Site.Remove(site); _db.Site.Remove(site);
_db.SaveChanges(); _db.SaveChanges();
@ -341,28 +520,46 @@ namespace Oqtane.Repository
List<Role> roles = _roleRepository.GetRoles(site.SiteId, true).ToList(); List<Role> roles = _roleRepository.GetRoles(site.SiteId, true).ToList();
if (!roles.Where(item => item.Name == Constants.AllUsersRole).Any()) if (!roles.Where(item => item.Name == Constants.AllUsersRole).Any())
{ {
_roleRepository.AddRole(new Role { SiteId = null, Name = Constants.AllUsersRole, Description = "All Users", IsAutoAssigned = false, IsSystem = true }); _roleRepository.AddRole(new Role {SiteId = null, Name = Constants.AllUsersRole, Description = "All Users", IsAutoAssigned = false, IsSystem = true});
} }
if (!roles.Where(item => item.Name == Constants.HostRole).Any()) if (!roles.Where(item => item.Name == Constants.HostRole).Any())
{ {
_roleRepository.AddRole(new Role { SiteId = null, Name = Constants.HostRole, Description = "Application Administrators", IsAutoAssigned = false, IsSystem = true }); _roleRepository.AddRole(new Role {SiteId = null, Name = Constants.HostRole, Description = "Application Administrators", IsAutoAssigned = false, IsSystem = true});
} }
_roleRepository.AddRole(new Role { SiteId = site.SiteId, Name = Constants.RegisteredRole, Description = "Registered Users", IsAutoAssigned = true, IsSystem = true }); _roleRepository.AddRole(new Role {SiteId = site.SiteId, Name = Constants.RegisteredRole, Description = "Registered Users", IsAutoAssigned = true, IsSystem = true});
_roleRepository.AddRole(new Role { SiteId = site.SiteId, Name = Constants.AdminRole, Description = "Site Administrators", IsAutoAssigned = false, IsSystem = true }); _roleRepository.AddRole(new Role {SiteId = site.SiteId, Name = Constants.AdminRole, Description = "Site Administrators", IsAutoAssigned = false, IsSystem = true});
_profileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "FirstName", Title = "First Name", Description = "Your First Or Given Name", Category = "Name", ViewOrder = 1, MaxLength = 50, DefaultValue = "", IsRequired = true, IsPrivate = false }); _profileRepository.AddProfile(new Profile
_profileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "LastName", Title = "Last Name", Description = "Your Last Or Family Name", Category = "Name", ViewOrder = 2, MaxLength = 50, DefaultValue = "", IsRequired = true, IsPrivate = false }); {SiteId = site.SiteId, Name = "FirstName", Title = "First Name", Description = "Your First Or Given Name", Category = "Name", ViewOrder = 1, MaxLength = 50, DefaultValue = "", IsRequired = true, IsPrivate = false});
_profileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "Street", Title = "Street", Description = "Street Or Building Address", Category = "Address", ViewOrder = 3, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false }); _profileRepository.AddProfile(new Profile
_profileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "City", Title = "City", Description = "City", Category = "Address", ViewOrder = 4, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false }); {SiteId = site.SiteId, Name = "LastName", Title = "Last Name", Description = "Your Last Or Family Name", Category = "Name", ViewOrder = 2, MaxLength = 50, DefaultValue = "", IsRequired = true, IsPrivate = false});
_profileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "Region", Title = "Region", Description = "State Or Province", Category = "Address", ViewOrder = 5, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false }); _profileRepository.AddProfile(new Profile
_profileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "Country", Title = "Country", Description = "Country", Category = "Address", ViewOrder = 6, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false }); {SiteId = site.SiteId, Name = "Street", Title = "Street", Description = "Street Or Building Address", Category = "Address", ViewOrder = 3, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false});
_profileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "PostalCode", Title = "Postal Code", Description = "Postal Code Or Zip Code", Category = "Address", ViewOrder = 7, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false }); _profileRepository.AddProfile(
_profileRepository.AddProfile(new Profile { SiteId = site.SiteId, Name = "Phone", Title = "Phone Number", Description = "Phone Number", Category = "Contact", ViewOrder = 8, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false }); new Profile {SiteId = site.SiteId, Name = "City", Title = "City", Description = "City", Category = "Address", ViewOrder = 4, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false});
_profileRepository.AddProfile(new Profile
{SiteId = site.SiteId, Name = "Region", Title = "Region", Description = "State Or Province", Category = "Address", ViewOrder = 5, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false});
_profileRepository.AddProfile(new Profile
{SiteId = site.SiteId, Name = "Country", Title = "Country", Description = "Country", Category = "Address", ViewOrder = 6, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false});
_profileRepository.AddProfile(new Profile
{SiteId = site.SiteId, Name = "PostalCode", Title = "Postal Code", Description = "Postal Code Or Zip Code", Category = "Address", ViewOrder = 7, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false});
_profileRepository.AddProfile(new Profile
{SiteId = site.SiteId, Name = "Phone", Title = "Phone Number", Description = "Phone Number", Category = "Contact", ViewOrder = 8, MaxLength = 50, DefaultValue = "", IsRequired = false, IsPrivate = false});
Folder folder = _folderRepository.AddFolder(new Folder { SiteId = site.SiteId, ParentId = null, Name = "Root", Path = "", Order = 1, IsSystem = true, Permissions = "[{\"PermissionName\":\"Browse\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"View\",\"Permissions\":\"All Users\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]" }); Folder folder = _folderRepository.AddFolder(new Folder
_folderRepository.AddFolder(new Folder { SiteId = site.SiteId, ParentId = folder.FolderId, Name = "Users", Path = "Users\\", Order = 1, IsSystem = true, Permissions = "[{\"PermissionName\":\"Browse\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]" }); {
SiteId = site.SiteId, ParentId = null, Name = "Root", Path = "", Order = 1, IsSystem = true,
Permissions = "[{\"PermissionName\":\"Browse\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"View\",\"Permissions\":\"All Users\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]"
});
_folderRepository.AddFolder(new Folder
{
SiteId = site.SiteId, ParentId = folder.FolderId, Name = "Users", Path = "Users\\", Order = 1, IsSystem = true,
Permissions = "[{\"PermissionName\":\"Browse\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]"
});
var _pageTemplates = CreateAdminPages();
CreatePages(site, _pageTemplates); CreatePages(site, _pageTemplates);
// process site template // process site template
@ -378,11 +575,12 @@ namespace Oqtane.Repository
site.SiteTemplateType = Constants.DefaultSiteTemplate; site.SiteTemplateType = Constants.DefaultSiteTemplate;
} }
} }
Type siteTemplateType = Type.GetType(site.SiteTemplateType); Type siteTemplateType = Type.GetType(site.SiteTemplateType);
if (siteTemplateType != null) if (siteTemplateType != null)
{ {
var siteTemplateObject = ActivatorUtilities.CreateInstance(_serviceProvider, siteTemplateType); var siteTemplateObject = ActivatorUtilities.CreateInstance(_serviceProvider, siteTemplateType);
List<PageTemplate> pageTemplates = ((ISiteTemplate)siteTemplateObject).CreateSite(site); List<PageTemplate> pageTemplates = ((ISiteTemplate) siteTemplateObject).CreateSite(site);
if (pageTemplates != null && pageTemplates.Count > 0) if (pageTemplates != null && pageTemplates.Count > 0)
{ {
CreatePages(site, pageTemplates); CreatePages(site, pageTemplates);
@ -449,7 +647,7 @@ namespace Oqtane.Repository
if (moduletype != null) if (moduletype != null)
{ {
var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype); var moduleobject = ActivatorUtilities.CreateInstance(_serviceProvider, moduletype);
((IPortable)moduleobject).ImportModule(module, pagetemplatemodule.Content, moduledefinition.Version); ((IPortable) moduleobject).ImportModule(module, pagetemplatemodule.Content, moduledefinition.Version);
} }
} }
} }