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,
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> { Content = ""
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>
} {
});
_pageTemplates.Add(new PageTemplate { 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> { Content = ""
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Pages, Oqtane.Client", Title = "Page 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 = "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 = "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.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.Site, Oqtane.Client", Title = "Site Settings", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
});
_pageTemplates.Add(new PageTemplate { 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> { Content = ""
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Profiles, Oqtane.Client", Title = "Profile 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 = "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 = "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.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.Pages, Oqtane.Client", Title = "Page Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
});
_pageTemplates.Add(new PageTemplate { 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> { Content = ""
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Logs, Oqtane.Client", Title = "Event Log", 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 = "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 = "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.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.Users, Oqtane.Client", Title = "User Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
});
_pageTemplates.Add(new PageTemplate { 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> { Content = ""
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.RecycleBin, Oqtane.Client", Title = "Recycle Bin", 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 = "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 = "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.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.Profiles, Oqtane.Client", Title = "Profile Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
});
_pageTemplates.Add(new PageTemplate { 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> { Content = ""
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.ModuleDefinitions, Oqtane.Client", Title = "Module 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 = "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 = "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.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.Roles, Oqtane.Client", Title = "Role Management", Pane = "Content",
}), Content = "" } ModulePermissions = _permissionRepository.EncodePermissions(new List<Permission>
} {
});
_pageTemplates.Add(new PageTemplate { 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> { Content = ""
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Jobs, Oqtane.Client", Title = "Scheduled Jobs", 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 = "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 = "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.Upgrade, Oqtane.Client", Title = "Upgrade Service", Pane = "Content", {
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { new PageTemplateModule
{
ModuleDefinitionName = "Oqtane.Modules.Admin.Logs, Oqtane.Client", Title = "Event Log", Pane = "Content",
ModulePermissions = _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)
}), Content = "" } }),
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 = "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.Edit, Constants.AdminRole, true)
}),
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 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,
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.RecycleBin, Oqtane.Client", Title = "Recycle Bin", 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 = "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.Edit, Constants.AdminRole, true)
}),
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 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,
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.ModuleDefinitions, Oqtane.Client", Title = "Module 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 = "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.Edit, Constants.AdminRole, true)
}),
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 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,
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.Jobs, Oqtane.Client", Title = "Scheduled Jobs", 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 = "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 = "" } {
}
});
_pageTemplates.Add(new PageTemplate { 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> { Content = ""
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Register, Oqtane.Client", Title = "User Registration", Pane = "Content", }
ModulePermissions = _permissionRepository.EncodePermissions( new List<Permission> { }
});
pageTemplates.Add(new PageTemplate
{
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)
}), Content = "" } }),
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 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
{
ModuleDefinitionName = "Oqtane.Modules.Admin.Reset, Oqtane.Client", Title = "Password Reset", Pane = "Content",
ModulePermissions = _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)
}), Content = "" } }),
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
{
ModuleDefinitionName = "Oqtane.Modules.Admin.UserProfile, Oqtane.Client", Title = "User Profile", Pane = "Content",
ModulePermissions = _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)
}), Content = "" } }),
Content = ""
}
} }
}); });
return pageTemplates;
} }
public IEnumerable<Site> GetSites() public IEnumerable<Site> GetSites()
@ -343,6 +522,7 @@ namespace Oqtane.Repository
{ {
_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});
@ -351,18 +531,35 @@ namespace Oqtane.Repository
_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,6 +575,7 @@ 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)
{ {