diff --git a/Oqtane.Client/Modules/Admin/Logs/Detail.razor b/Oqtane.Client/Modules/Admin/Logs/Detail.razor index 02d4c804..fd484889 100644 --- a/Oqtane.Client/Modules/Admin/Logs/Detail.razor +++ b/Oqtane.Client/Modules/Admin/Logs/Detail.razor @@ -152,7 +152,7 @@ private string _properties = string.Empty; private string _server = string.Empty; - public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; + public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { diff --git a/Oqtane.Client/Modules/Admin/Logs/Index.razor b/Oqtane.Client/Modules/Admin/Logs/Index.razor index e87450bd..730c6d13 100644 --- a/Oqtane.Client/Modules/Admin/Logs/Index.razor +++ b/Oqtane.Client/Modules/Admin/Logs/Index.razor @@ -76,7 +76,7 @@ else private string _rows = "10"; private List _logs; - public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; + public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { diff --git a/Oqtane.Client/Modules/Admin/Roles/Index.razor b/Oqtane.Client/Modules/Admin/Roles/Index.razor index 0acfa614..881a9348 100644 --- a/Oqtane.Client/Modules/Admin/Roles/Index.razor +++ b/Oqtane.Client/Modules/Admin/Roles/Index.razor @@ -12,6 +12,7 @@ else
+       Name @@ -19,6 +20,7 @@ else + @context.Name diff --git a/Oqtane.Client/Modules/Admin/Roles/Users.razor b/Oqtane.Client/Modules/Admin/Roles/Users.razor new file mode 100644 index 00000000..c292d3d5 --- /dev/null +++ b/Oqtane.Client/Modules/Admin/Roles/Users.razor @@ -0,0 +1,201 @@ +@namespace Oqtane.Modules.Admin.Roles +@inherits ModuleBase +@inject IRoleService RoleService +@inject IUserRoleService UserRoleService + +@if (userroles == null) +{ +

Loading...

+} +else +{ + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + Cancel + +
+

+ +

+ Users +   +
+ + @context.User.DisplayName + + + + + +

+} + +@code { + private int roleid; + private string name = string.Empty; + private List users; + private int userid = -1; + private string effectivedate = string.Empty; + private string expirydate = string.Empty; + private List userroles; + + public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; + + protected override async Task OnInitializedAsync() + { + try + { + roleid = Int32.Parse(PageState.QueryString["id"]); + Role role = await RoleService.GetRoleAsync(roleid); + name = role.Name; + users = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId); + users = users.Where(item => item.Role.Name == Constants.RegisteredRole).ToList(); + await GetUserRoles(); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Loading Users {Error}", ex.Message); + AddModuleMessage("Error Loading Users", MessageType.Error); + } + } + + private async Task GetUserRoles() + { + try + { + userroles = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId); + userroles = userroles.Where(item => item.RoleId == roleid).ToList(); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Loading User Roles {RoleId} {Error}", roleid, ex.Message); + AddModuleMessage("Error Loading User Roles", MessageType.Error); + } + } + + private async Task SaveUserRole() + { + try + { + if (userid != -1) + { + var userrole = userroles.Where(item => item.UserId == userid && item.RoleId == roleid).FirstOrDefault(); + if (userrole != null) + { + if (string.IsNullOrEmpty(effectivedate)) + { + userrole.EffectiveDate = null; + } + else + { + userrole.EffectiveDate = DateTime.Parse(effectivedate); + } + + if (string.IsNullOrEmpty(expirydate)) + { + userrole.ExpiryDate = null; + } + else + { + userrole.ExpiryDate = DateTime.Parse(expirydate); + } + await UserRoleService.UpdateUserRoleAsync(userrole); + } + else + { + userrole = new UserRole(); + userrole.UserId = userid; + userrole.RoleId = roleid; + + if (string.IsNullOrEmpty(effectivedate)) + { + userrole.EffectiveDate = null; + } + else + { + userrole.EffectiveDate = DateTime.Parse(effectivedate); + } + + if (string.IsNullOrEmpty(expirydate)) + { + userrole.ExpiryDate = null; + } + else + { + userrole.ExpiryDate = DateTime.Parse(expirydate); + } + + await UserRoleService.AddUserRoleAsync(userrole); + } + + await GetUserRoles(); + await logger.LogInformation("User Assigned To Role {UserRole}", userrole); + AddModuleMessage("User Assigned To Role", MessageType.Success); + } + else + { + AddModuleMessage("You Must Select A User", MessageType.Warning); + } + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Saving User Roles {RoleId} {Error}", roleid, ex.Message); + AddModuleMessage("Error Saving User Roles", MessageType.Error); + } + } + + private async Task DeleteUserRole(int UserRoleId) + { + try + { + await UserRoleService.DeleteUserRoleAsync(UserRoleId); + await GetUserRoles(); + await logger.LogInformation("User Removed From Role {UserRoleId}", UserRoleId); + AddModuleMessage("User Removed From Role", MessageType.Success); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Removing User From Role {UserRoleId} {Error}", UserRoleId, ex.Message); + AddModuleMessage("Error Removing User From Role", MessageType.Error); + } + } +} diff --git a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor index 0758e80d..6f3ab545 100644 --- a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor +++ b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor @@ -6,18 +6,18 @@ @inject ISettingService SettingService @inject INotificationService NotificationService +@if (PageState.User != null && photofileid != -1) +{ + @displayname +} +else +{ +
+} @if (PageState.User != null) { - @if (photofileid != -1) - { - @displayname - } - else - { -
- }
diff --git a/Oqtane.Client/Modules/Admin/Users/Add.razor b/Oqtane.Client/Modules/Admin/Users/Add.razor index 561185f6..b6aa116a 100644 --- a/Oqtane.Client/Modules/Admin/Users/Add.razor +++ b/Oqtane.Client/Modules/Admin/Users/Add.razor @@ -5,75 +5,86 @@ @inject IProfileService ProfileService @inject ISettingService SettingService -@if (profiles != null) -{ - - - - - - - - - - - - - - - - - - - - - - - @foreach (Profile profile in profiles) + + + @if (profiles != null) { - var p = profile; - if (p.Category != category) - { +
- - - -
- - - -
- - - -
- - - -
- - - -
- + + - category = p.Category; - } - - - - + + + + + + + + + + + + + + + + +
- @p.Category - + + + +
- - - -
+ + + +
+ + + +
+ + + +
+ + + +
} -
- - Cancel -} +
+ + @if (profiles != null) + { + + @foreach (Profile profile in profiles) + { + var p = profile; + if (p.Category != category) + { + + + + category = p.Category; + } + + + + + } +
+ @p.Category +
+ + + +
+ } +
+
+ + +Cancel @code { private string username = string.Empty; diff --git a/Oqtane.Client/Modules/Admin/Users/Edit.razor b/Oqtane.Client/Modules/Admin/Users/Edit.razor index 02fcf751..3aa30e1b 100644 --- a/Oqtane.Client/Modules/Admin/Users/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Users/Edit.razor @@ -5,105 +5,115 @@ @inject IProfileService ProfileService @inject ISettingService SettingService -@if (profiles != null) +@if (PageState.User != null && photofileid != -1) { - @if (photofileid != -1) - { - @displayname - } - else - { -
- } - - - - - - - - - - - - - - - - - - - - - - - - - - - @foreach (Profile profile in profiles) - { - var p = profile; - if (p.Category != category) - { - - - - category = p.Category; - } - - - - - } - - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- @p.Category -
- - - -
- - - -
- - Cancel -
-
- + @displayname } +else +{ +
+} + + + @if (profiles != null) + { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ } +
+ + @if (profiles != null) + { + + @foreach (Profile profile in profiles) + { + var p = profile; + if (p.Category != category) + { + + + + category = p.Category; + } + + + + + } +
+ @p.Category +
+ + + +
+ } +
+
+ + +Cancel +

+ @code { private int userid; @@ -140,12 +150,12 @@ username = user.Username; email = user.Email; displayname = user.DisplayName; - + if (user.PhotoFileId != null) { photofileid = user.PhotoFileId.Value; } - + settings = await SettingService.GetUserSettingsAsync(user.UserId); createdby = user.CreatedBy; createdon = user.CreatedOn; @@ -170,7 +180,7 @@ { try { - if (username != string.Empty && password != string.Empty && confirm != string.Empty && email != string.Empty) + if (username != string.Empty && email != string.Empty) { if (password == confirm) { @@ -182,12 +192,12 @@ user.DisplayName = string.IsNullOrWhiteSpace(displayname) ? username : displayname; user.PhotoFileId = null; photofileid = filemanager.GetFileId(); - + if (photofileid != -1) { user.PhotoFileId = photofileid; } - + user.IsDeleted = (isdeleted == null ? true : Boolean.Parse(isdeleted)); user = await UserService.UpdateUserAsync(user); diff --git a/Oqtane.Client/Modules/Admin/Users/Roles.razor b/Oqtane.Client/Modules/Admin/Users/Roles.razor index 82662442..a4e946df 100644 --- a/Oqtane.Client/Modules/Admin/Users/Roles.razor +++ b/Oqtane.Client/Modules/Admin/Users/Roles.razor @@ -1,6 +1,7 @@ @namespace Oqtane.Modules.Admin.Users @inherits ModuleBase @inject IRoleService RoleService +@inject IUserService UserService @inject IUserRoleService UserRoleService @if (userroles == null) @@ -12,7 +13,15 @@ else + + + + + @@ -66,6 +75,7 @@ else @code { private int userid; + private string name = string.Empty; private List roles; private int roleid = -1; private string effectivedate = string.Empty; @@ -79,6 +89,8 @@ else try { userid = Int32.Parse(PageState.QueryString["id"]); + User user = await UserService.GetUserAsync(userid, PageState.Site.SiteId); + name = user.DisplayName; roles = await RoleService.GetRolesAsync(PageState.Site.SiteId); await GetUserRoles(); } @@ -120,7 +132,7 @@ else { userrole.EffectiveDate = DateTime.Parse(effectivedate); } - + if (string.IsNullOrEmpty(expirydate)) { userrole.ExpiryDate = null; @@ -136,7 +148,7 @@ else userrole = new UserRole(); userrole.UserId = userid; userrole.RoleId = roleid; - + if (string.IsNullOrEmpty(effectivedate)) { userrole.EffectiveDate = null; @@ -145,7 +157,7 @@ else { userrole.EffectiveDate = DateTime.Parse(effectivedate); } - + if (string.IsNullOrEmpty(expirydate)) { userrole.ExpiryDate = null; @@ -154,10 +166,10 @@ else { userrole.ExpiryDate = DateTime.Parse(expirydate); } - + await UserRoleService.AddUserRoleAsync(userrole); } - + await GetUserRoles(); await logger.LogInformation("User Assigned To Role {UserRole}", userrole); AddModuleMessage("User Assigned To Role", MessageType.Success); diff --git a/Oqtane.Client/Themes/Controls/ControlPanel.razor b/Oqtane.Client/Themes/Controls/ControlPanel.razor index d6fe191d..fe9e5486 100644 --- a/Oqtane.Client/Themes/Controls/ControlPanel.razor +++ b/Oqtane.Client/Themes/Controls/ControlPanel.razor @@ -205,7 +205,7 @@ @if (UserSecurity.IsAuthorized(PageState.User,PermissionNames.Edit, PageState.Page.Permissions)) { } diff --git a/Oqtane.Server/Controllers/SiteController.cs b/Oqtane.Server/Controllers/SiteController.cs index 1adfe517..bd24c994 100644 --- a/Oqtane.Server/Controllers/SiteController.cs +++ b/Oqtane.Server/Controllers/SiteController.cs @@ -70,7 +70,7 @@ namespace Oqtane.Controllers // PUT api//5 [HttpPut("{id}")] - [Authorize(Roles = Constants.HostRole)] + [Authorize(Roles = Constants.AdminRole)] public Site Put(int id, [FromBody] Site site) { if (ModelState.IsValid) diff --git a/Oqtane.Server/Controllers/TenantController.cs b/Oqtane.Server/Controllers/TenantController.cs index 03e4b1f4..bfacbd1c 100644 --- a/Oqtane.Server/Controllers/TenantController.cs +++ b/Oqtane.Server/Controllers/TenantController.cs @@ -23,7 +23,7 @@ namespace Oqtane.Controllers // GET: api/ [HttpGet] - [Authorize(Roles = Constants.HostRole)] + [Authorize(Roles = Constants.AdminRole)] public IEnumerable Get() { return _tenants.GetTenants(); @@ -31,7 +31,7 @@ namespace Oqtane.Controllers // GET api//5 [HttpGet("{id}")] - [Authorize(Roles = Constants.HostRole)] + [Authorize(Roles = Constants.AdminRole)] public Tenant Get(int id) { return _tenants.GetTenant(id); diff --git a/Oqtane.Server/Controllers/UserController.cs b/Oqtane.Server/Controllers/UserController.cs index c0cec6a8..dec2c5e4 100644 --- a/Oqtane.Server/Controllers/UserController.cs +++ b/Oqtane.Server/Controllers/UserController.cs @@ -93,14 +93,14 @@ namespace Oqtane.Controllers bool verified; bool allowregistration; - if (user.Username == Constants.HostUser) + if (user.Username == Constants.HostUser || User.IsInRole(Constants.AdminRole)) { verified = true; allowregistration = true; } else - { - verified = User.IsInRole(Constants.AdminRole); // only users created by administrators are verified + { + verified = false; allowregistration = _sites.GetSite(user.SiteId).AllowRegistration; } @@ -308,7 +308,7 @@ namespace Oqtane.Controllers public async Task Logout([FromBody] User user) { await HttpContext.SignOutAsync(IdentityConstants.ApplicationScheme); - _logger.Log(LogLevel.Information, this, LogFunction.Security, "User Logout {Username}", user.Username); + _logger.Log(LogLevel.Information, this, LogFunction.Security, "User Logout {Username}", (user != null) ? user.Username : ""); } // POST api//verify diff --git a/Oqtane.Server/Infrastructure/DatabaseManager.cs b/Oqtane.Server/Infrastructure/DatabaseManager.cs index dabe8c78..63186155 100644 --- a/Oqtane.Server/Infrastructure/DatabaseManager.cs +++ b/Oqtane.Server/Infrastructure/DatabaseManager.cs @@ -348,10 +348,10 @@ namespace Oqtane.Infrastructure var user = new User { SiteId = site.SiteId, - Username = GetInstallationConfig(SettingKeys.HostUserKey, Constants.HostUser), + Username = Constants.HostUser, Password = password, Email = email, - DisplayName = GetInstallationConfig(SettingKeys.HostUserKey, Constants.HostUser), + DisplayName = Constants.HostUser }; CreateHostUser(folders, userRoles, roles, users, identityUserManager, user); tenant.IsInitialized = true; diff --git a/Oqtane.Server/Repository/SiteRepository.cs b/Oqtane.Server/Repository/SiteRepository.cs index c726ccc7..f85294df 100644 --- a/Oqtane.Server/Repository/SiteRepository.cs +++ b/Oqtane.Server/Repository/SiteRepository.cs @@ -51,395 +51,16 @@ namespace Oqtane.Repository { if (pageTemplates == null) pageTemplates = new List(); + // user pages pageTemplates.Add(new PageTemplate { - Name = "Admin", Parent = "", Path = "admin", Icon = "", IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Dashboard.Index).ToModuleDefinitionName(), Title = "Admin Dashboard", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Site Management", Parent = "Admin", Path = "admin/sites", Icon = Icons.Globe, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Sites.Index).ToModuleDefinitionName(), Title = "Site Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Site Settings", Parent = "Admin", Path = "admin/site", Icon = Icons.Home, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Site.Index).ToModuleDefinitionName(), Title = "Site Settings", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Page Management", Parent = "Admin", Path = "admin/pages", Icon = Icons.Layers, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Pages.Index).ToModuleDefinitionName(), Title = "Page Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "User Management", Parent = "Admin", Path = "admin/users", Icon = Icons.People, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Users.Index).ToModuleDefinitionName(), Title = "User Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Profile Management", Parent = "Admin", Path = "admin/profiles", Icon = Icons.Person, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Profiles.Index).ToModuleDefinitionName(), Title = "Profile Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Role Management", Parent = "Admin", Path = "admin/roles", Icon = Icons.LockLocked, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Roles.Index).ToModuleDefinitionName(), Title = "Role Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Event Log", Parent = "Admin", Path = "admin/log", Icon = Icons.MagnifyingGlass, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Logs.Index).ToModuleDefinitionName(), Title = "Event Log", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "File Management", Parent = "Admin", Path = "admin/files", Icon = Icons.File, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Files.Index).ToModuleDefinitionName(), Title = "File Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Recycle Bin", Parent = "Admin", Path = "admin/recyclebin", Icon = Icons.Trash, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.RecycleBin.Index).ToModuleDefinitionName(), Title = "Recycle Bin", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Tenant Management", Parent = "Admin", Path = "admin/tenants", Icon = Icons.List, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Tenants.Index).ToModuleDefinitionName(), Title = "Tenant Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Module Management", Parent = "Admin", Path = "admin/modules", Icon = Icons.Browser, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.ModuleDefinitions.Index).ToModuleDefinitionName(), Title = "Module Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Theme Management", Parent = "Admin", Path = "admin/themes", Icon = Icons.Brush, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Themes.Index).ToModuleDefinitionName(), Title = "Theme Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Scheduled Jobs", Parent = "Admin", Path = "admin/jobs", Icon = Icons.Timer, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Jobs.Index).ToModuleDefinitionName(), Title = "Scheduled Jobs", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Sql Management", - Parent = "Admin", - Path = "admin/sql", - Icon = "spreadsheet", + Name = "Login", + Parent = "", + Path = "login", + Icon = Icons.LockLocked, IsNavigation = false, IsPersonalizable = false, - EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Sql.Index).ToModuleDefinitionName(), Title = "Sql Management", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "System Info", - Parent = "Admin", - Path = "admin/system", - Icon = "medical-cross", - IsNavigation = false, - IsPersonalizable = false, - EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.SystemInfo.Index).ToModuleDefinitionName(), Title = "System Info", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Upgrade Service", Parent = "Admin", Path = "admin/upgrade", Icon = Icons.Aperture, IsNavigation = false, IsPersonalizable = false, EditMode = true, - PagePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - PageTemplateModules = new List - { - new PageTemplateModule - { - ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Upgrade.Index).ToModuleDefinitionName(), Title = "Upgrade Service", Pane = "Content", - ModulePermissions = new List - { - new Permission(PermissionNames.View, Constants.AdminRole, true), - new Permission(PermissionNames.Edit, Constants.AdminRole, true) - }.EncodePermissions(), - Content = "" - } - } - }); - pageTemplates.Add(new PageTemplate - { - Name = "Login", Parent = "", Path = "login", Icon = Icons.LockLocked, IsNavigation = false, IsPersonalizable = false, EditMode = false, + EditMode = false, PagePermissions = new List { new Permission(PermissionNames.View, Constants.AdminRole, true), @@ -463,7 +84,13 @@ namespace Oqtane.Repository }); pageTemplates.Add(new PageTemplate { - Name = "Register", Parent = "", Path = "register", Icon = Icons.Person, IsNavigation = false, IsPersonalizable = false, EditMode = false, + Name = "Register", + Parent = "", + Path = "register", + Icon = Icons.Person, + IsNavigation = false, + IsPersonalizable = false, + EditMode = false, PagePermissions = new List { new Permission(PermissionNames.View, Constants.AdminRole, true), @@ -488,7 +115,13 @@ namespace Oqtane.Repository pageTemplates.Add(new PageTemplate { - Name = "Reset", Parent = "", Path = "reset", Icon = Icons.Person, IsNavigation = false, IsPersonalizable = false, EditMode = false, + Name = "Reset", + Parent = "", + Path = "reset", + Icon = Icons.Person, + IsNavigation = false, + IsPersonalizable = false, + EditMode = false, PagePermissions = new List { new Permission(PermissionNames.View, Constants.AdminRole, true), @@ -512,7 +145,13 @@ namespace Oqtane.Repository }); pageTemplates.Add(new PageTemplate { - Name = "Profile", Parent = "", Path = "profile", Icon = Icons.Person, IsNavigation = false, IsPersonalizable = false, EditMode = false, + Name = "Profile", + Parent = "", + Path = "profile", + Icon = Icons.Person, + IsNavigation = false, + IsPersonalizable = false, + EditMode = false, PagePermissions = new List { new Permission(PermissionNames.View, Constants.AdminRole, true), @@ -534,6 +173,450 @@ namespace Oqtane.Repository } } }); + + // admin pages + pageTemplates.Add(new PageTemplate + { + Name = "Admin", Parent = "", Path = "admin", Icon = "", IsNavigation = false, IsPersonalizable = false, EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Dashboard.Index).ToModuleDefinitionName(), Title = "Admin Dashboard", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Site Settings", + Parent = "Admin", + Path = "admin/site", + Icon = Icons.Home, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Site.Index).ToModuleDefinitionName(), Title = "Site Settings", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Page Management", + Parent = "Admin", + Path = "admin/pages", + Icon = Icons.Layers, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Pages.Index).ToModuleDefinitionName(), Title = "Page Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "User Management", + Parent = "Admin", + Path = "admin/users", + Icon = Icons.People, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Users.Index).ToModuleDefinitionName(), Title = "User Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Profile Management", + Parent = "Admin", + Path = "admin/profiles", + Icon = Icons.Person, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Profiles.Index).ToModuleDefinitionName(), Title = "Profile Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Role Management", + Parent = "Admin", + Path = "admin/roles", + Icon = Icons.LockLocked, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Roles.Index).ToModuleDefinitionName(), Title = "Role Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "File Management", + Parent = "Admin", + Path = "admin/files", + Icon = Icons.File, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Files.Index).ToModuleDefinitionName(), Title = "File Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Recycle Bin", + Parent = "Admin", + Path = "admin/recyclebin", + Icon = Icons.Trash, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.RecycleBin.Index).ToModuleDefinitionName(), Title = "Recycle Bin", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.AdminRole, true), + new Permission(PermissionNames.Edit, Constants.AdminRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + + // host pages + pageTemplates.Add(new PageTemplate + { + Name = "Event Log", + Parent = "Admin", + Path = "admin/log", + Icon = Icons.MagnifyingGlass, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Logs.Index).ToModuleDefinitionName(), Title = "Event Log", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); pageTemplates.Add(new PageTemplate + { + Name = "Tenant Management", + Parent = "Admin", + Path = "admin/tenants", + Icon = Icons.List, + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Tenants.Index).ToModuleDefinitionName(), Title = "Tenant Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Site Management", Parent = "Admin", Path = "admin/sites", Icon = Icons.Globe, IsNavigation = false, IsPersonalizable = false, EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Sites.Index).ToModuleDefinitionName(), Title = "Site Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Module Management", Parent = "Admin", Path = "admin/modules", Icon = Icons.Browser, IsNavigation = false, IsPersonalizable = false, EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.ModuleDefinitions.Index).ToModuleDefinitionName(), Title = "Module Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Theme Management", Parent = "Admin", Path = "admin/themes", Icon = Icons.Brush, IsNavigation = false, IsPersonalizable = false, EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Themes.Index).ToModuleDefinitionName(), Title = "Theme Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Scheduled Jobs", Parent = "Admin", Path = "admin/jobs", Icon = Icons.Timer, IsNavigation = false, IsPersonalizable = false, EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Jobs.Index).ToModuleDefinitionName(), Title = "Scheduled Jobs", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "Sql Management", + Parent = "Admin", + Path = "admin/sql", + Icon = "spreadsheet", + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Sql.Index).ToModuleDefinitionName(), Title = "Sql Management", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "System Info", + Parent = "Admin", + Path = "admin/system", + Icon = "medical-cross", + IsNavigation = false, + IsPersonalizable = false, + EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.SystemInfo.Index).ToModuleDefinitionName(), Title = "System Info", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + pageTemplates.Add(new PageTemplate + { + Name = "System Update", Parent = "Admin", Path = "admin/update", Icon = Icons.Aperture, IsNavigation = false, IsPersonalizable = false, EditMode = true, + PagePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule + { + ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Upgrade.Index).ToModuleDefinitionName(), Title = "System Update", Pane = "Content", + ModulePermissions = new List + { + new Permission(PermissionNames.View, Constants.HostRole, true), + new Permission(PermissionNames.Edit, Constants.HostRole, true) + }.EncodePermissions(), + Content = "" + } + } + }); + return pageTemplates; } @@ -615,10 +698,7 @@ namespace Oqtane.Repository Permissions = "[{\"PermissionName\":\"Browse\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]" }); - var _pageTemplates = CreateAdminPages(); - CreatePages(site, _pageTemplates); - - // process site template + // process site template first if (string.IsNullOrEmpty(site.SiteTemplateType)) { var section = _config.GetSection("Installation:SiteTemplate"); @@ -648,6 +728,9 @@ namespace Oqtane.Repository CreatePages(site, pageTemplates); } } + + // create admin pages + CreatePages(site, CreateAdminPages()); } private void CreatePages(Site site, List pageTemplates) diff --git a/Oqtane.Shared/Shared/SettingKeys.cs b/Oqtane.Shared/Shared/SettingKeys.cs index 7db38bac..6524e333 100644 --- a/Oqtane.Shared/Shared/SettingKeys.cs +++ b/Oqtane.Shared/Shared/SettingKeys.cs @@ -4,7 +4,6 @@ { public const string InstallationSection = "Installation"; public const string DefaultAliasKey = "DefaultAlias"; - public const string HostUserKey = "HostUser"; public const string HostPasswordKey = "HostPassword"; public const string HostEmailKey = "HostEmail"; public const string SiteTemplateKey = "SiteTemplate";
- + + + +
+
- + @@ -34,7 +43,7 @@ else
- + @@ -48,16 +57,16 @@ else

-
RoleRoles   @context.Role.Name - @if (!context.Role.IsSystem) - { + @if (context.Role.Name != Constants.RegisteredRole) + { - } + }