@@ -31,7 +36,7 @@ else
|
-
+
|
@@ -57,19 +62,19 @@ else
private List Search(string search)
{
+ var results = allroles.Where(item => item.Role.Name == RoleNames.Registered || (item.Role.Name == RoleNames.Host && UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)));
+
if (string.IsNullOrEmpty(_search))
{
- return allroles.Where(item => item.Role.Name == RoleNames.Registered).ToList();
+ results = results.Where(item =>
+ (
+ item.User.Username.Contains(search, StringComparison.OrdinalIgnoreCase) ||
+ item.User.Email.Contains(search, StringComparison.OrdinalIgnoreCase) ||
+ item.User.DisplayName.Contains(search, StringComparison.OrdinalIgnoreCase)
+ )
+ );
}
- return allroles
- .Where(item => item.Role.Name == RoleNames.Registered &&
- (
- item.User.Username.Contains(search, StringComparison.OrdinalIgnoreCase) ||
- item.User.Email.Contains(search, StringComparison.OrdinalIgnoreCase) ||
- item.User.DisplayName.Contains(search, StringComparison.OrdinalIgnoreCase)
- )
- )
- .ToList();
+ return results.ToList();
}
private async Task OnSearch()
diff --git a/Oqtane.Client/Modules/Admin/Users/Roles.razor b/Oqtane.Client/Modules/Admin/Users/Roles.razor
index 037daabb..13c4e780 100644
--- a/Oqtane.Client/Modules/Admin/Users/Roles.razor
+++ b/Oqtane.Client/Modules/Admin/Users/Roles.razor
@@ -59,15 +59,16 @@ else
| @Localizer["Roles"] |
+ @Localizer["Effective"] |
+ @Localizer["Expiry"] |
|
| @context.Role.Name |
+ @context.EffectiveDate |
+ @context.ExpiryDate |
- @if (context.Role.Name != RoleNames.Registered)
- {
-
- }
+
|
@@ -92,7 +93,15 @@ else
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);
+ if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
+ {
+ roles = await RoleService.GetRolesAsync(PageState.Site.SiteId, true);
+ roles = roles.Where(item => item.Name != RoleNames.Everyone).ToList();
+ }
+ else
+ {
+ roles = await RoleService.GetRolesAsync(PageState.Site.SiteId);
+ }
await GetUserRoles();
}
catch (Exception ex)
@@ -171,9 +180,10 @@ else
await UserRoleService.AddUserRoleAsync(userrole);
}
- await GetUserRoles();
await logger.LogInformation("User Assigned To Role {UserRole}", userrole);
AddModuleMessage(Localizer["User Assigned To Role"], MessageType.Success);
+ await GetUserRoles();
+ StateHasChanged();
}
else
{
@@ -192,9 +202,10 @@ else
try
{
await UserRoleService.DeleteUserRoleAsync(UserRoleId);
- await GetUserRoles();
await logger.LogInformation("User Removed From Role {UserRoleId}", UserRoleId);
AddModuleMessage(Localizer["User Removed From Role"], MessageType.Success);
+ await GetUserRoles();
+ StateHasChanged();
}
catch (Exception ex)
{
diff --git a/Oqtane.Client/Services/Interfaces/IRoleService.cs b/Oqtane.Client/Services/Interfaces/IRoleService.cs
index 23ae0d05..66edc8de 100644
--- a/Oqtane.Client/Services/Interfaces/IRoleService.cs
+++ b/Oqtane.Client/Services/Interfaces/IRoleService.cs
@@ -1,4 +1,4 @@
-using Oqtane.Models;
+using Oqtane.Models;
using System.Collections.Generic;
using System.Threading.Tasks;
@@ -8,6 +8,8 @@ namespace Oqtane.Services
{
Task> GetRolesAsync(int siteId);
+ Task> GetRolesAsync(int siteId, bool includeGlobalRoles);
+
Task GetRoleAsync(int roleId);
Task AddRoleAsync(Role role);
diff --git a/Oqtane.Client/Services/RoleService.cs b/Oqtane.Client/Services/RoleService.cs
index d304edf3..5d29dcd3 100644
--- a/Oqtane.Client/Services/RoleService.cs
+++ b/Oqtane.Client/Services/RoleService.cs
@@ -1,4 +1,4 @@
-using Oqtane.Models;
+using Oqtane.Models;
using System.Threading.Tasks;
using System.Net.Http;
using System.Linq;
@@ -22,7 +22,12 @@ namespace Oqtane.Services
public async Task> GetRolesAsync(int siteId)
{
- List roles = await GetJsonAsync>($"{Apiurl}?siteid={siteId}");
+ return await GetRolesAsync(siteId, false);
+ }
+
+ public async Task> GetRolesAsync(int siteId, bool includeGlobalRoles)
+ {
+ List roles = await GetJsonAsync>($"{Apiurl}?siteid={siteId}&global={includeGlobalRoles}");
return roles.OrderBy(item => item.Name).ToList();
}
diff --git a/Oqtane.Client/Themes/Controls/Theme/LanguageSwitcher.razor b/Oqtane.Client/Themes/Controls/Theme/LanguageSwitcher.razor
index bd4ac6fc..64b1d196 100644
--- a/Oqtane.Client/Themes/Controls/Theme/LanguageSwitcher.razor
+++ b/Oqtane.Client/Themes/Controls/Theme/LanguageSwitcher.razor
@@ -27,6 +27,10 @@
protected override async Task OnParametersSetAsync()
{
var languages = await LanguageService.GetLanguagesAsync(PageState.Site.SiteId);
+ var defaultCulture = CultureInfo.GetCultureInfo(Constants.DefaultCulture);
+
+ languages.Add(new Language { Code = defaultCulture.Name, Name = defaultCulture.DisplayName });
+
_supportedCultures = languages.Select(l => new Culture { Name = l.Code, DisplayName = l.Name });
}
diff --git a/Oqtane.Client/Themes/OqtaneTheme/Themes/Default.razor b/Oqtane.Client/Themes/OqtaneTheme/Themes/Default.razor
index e2ff2270..3de4b465 100644
--- a/Oqtane.Client/Themes/OqtaneTheme/Themes/Default.razor
+++ b/Oqtane.Client/Themes/OqtaneTheme/Themes/Default.razor
@@ -93,10 +93,14 @@
@if (_footer)
{
-
diff --git a/Oqtane.Client/Themes/OqtaneTheme/Themes/ThemeSettings.razor b/Oqtane.Client/Themes/OqtaneTheme/Themes/ThemeSettings.razor
index baaa940f..05d0351b 100644
--- a/Oqtane.Client/Themes/OqtaneTheme/Themes/ThemeSettings.razor
+++ b/Oqtane.Client/Themes/OqtaneTheme/Themes/ThemeSettings.razor
@@ -7,10 +7,10 @@
|
-
+
|
- | |