diff --git a/.gitignore b/.gitignore
index 8b66a5f3..258c0c62 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,9 +12,7 @@ msbuild.binlog
*.idea
Oqtane.Server/appsettings.json
-Oqtane.Server/Data/*.mdf
-Oqtane.Server/Data/*.ldf
-Oqtane.Server/Data/*.db
+Oqtane.Server/Data
/Oqtane.Server/Properties/PublishProfiles/FolderProfile.pubxml
Oqtane.Server/Content
@@ -22,3 +20,10 @@ Oqtane.Server/Packages
Oqtane.Server/wwwroot/Content
Oqtane.Server/wwwroot/Packages/*.log
+Oqtane.Server/wwwroot/Modules
+!Oqtane.Server/wwwroot/Modules/Oqtane.Modules.*
+!Oqtane.Server/wwwroot/Modules/Templates
+
+Oqtane.Server/wwwroot/Themes
+!Oqtane.Server/wwwroot/Themes/Oqtane.Themes.*
+!Oqtane.Server/wwwroot/Themes/Templates
diff --git a/Oqtane.Client/Installer/Controls/MySQLConfig.razor b/Oqtane.Client/Installer/Controls/MySQLConfig.razor
index 7de576b0..735285d4 100644
--- a/Oqtane.Client/Installer/Controls/MySQLConfig.razor
+++ b/Oqtane.Client/Installer/Controls/MySQLConfig.razor
@@ -28,7 +28,7 @@
@@ -104,6 +110,8 @@
private string _hostUsername = string.Empty;
private string _hostPassword = string.Empty;
+ private string _passwordtype = "password";
+ private string _togglepassword = string.Empty;
private string _confirmPassword = string.Empty;
private string _hostEmail = string.Empty;
private bool _register = true;
@@ -112,6 +120,7 @@
protected override async Task OnInitializedAsync()
{
+ _togglepassword = SharedLocalizer["ShowPassword"];
_databases = await DatabaseService.GetDatabasesAsync();
if (_databases.Exists(item => item.IsDefault))
{
@@ -218,4 +227,18 @@
_message = Localizer["Message.Require.DbInfo"];
}
}
+
+ private void TogglePassword()
+ {
+ if (_passwordtype == "password")
+ {
+ _passwordtype = "text";
+ _togglepassword = SharedLocalizer["HidePassword"];
+ }
+ else
+ {
+ _passwordtype = "password";
+ _togglepassword = SharedLocalizer["ShowPassword"];
+ }
+ }
}
diff --git a/Oqtane.Client/Modules/Admin/Languages/Index.razor b/Oqtane.Client/Modules/Admin/Languages/Index.razor
index 947cddc7..e98db7d9 100644
--- a/Oqtane.Client/Modules/Admin/Languages/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Languages/Index.razor
@@ -84,7 +84,7 @@ else
var package = _packages.Where(item => item.PackageId == (Constants.PackageId + ".Client." + code)).FirstOrDefault();
if (package != null)
{
- upgradeavailable = (Version.Parse(package.Version).CompareTo(Version.Parse(Constants.Version)) > 0);
+ upgradeavailable = (Version.Parse(package.Version).CompareTo(Version.Parse(Constants.Version)) == 0);
}
}
diff --git a/Oqtane.Client/Modules/Admin/Login/Index.razor b/Oqtane.Client/Modules/Admin/Login/Index.razor
index 80d4f5e4..6b4d02e1 100644
--- a/Oqtane.Client/Modules/Admin/Login/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Login/Index.razor
@@ -95,7 +95,7 @@
{
try
{
- _togglepassword = Localizer["ShowPassword"];
+ _togglepassword = SharedLocalizer["ShowPassword"];
if (PageState.Site.Settings.ContainsKey("LoginOptions:AllowSiteLogin") && !string.IsNullOrEmpty(PageState.Site.Settings["LoginOptions:AllowSiteLogin"]))
{
@@ -117,22 +117,47 @@
_username = PageState.QueryString["name"];
}
- if (PageState.QueryString.ContainsKey("token"))
+ if (PageState.QueryString.ContainsKey("token") && !string.IsNullOrEmpty(_username))
{
var user = new User();
user.SiteId = PageState.Site.SiteId;
user.Username = _username;
- user = await UserService.VerifyEmailAsync(user, PageState.QueryString["token"]);
- if (user != null)
+ if (PageState.QueryString.ContainsKey("key"))
{
- await logger.LogInformation(LogFunction.Security, "Email Verified For For Username {Username}", _username);
- AddModuleMessage(Localizer["Success.Account.Verified"], MessageType.Info);
+ user = await UserService.LinkUserAsync(user, PageState.QueryString["token"], PageState.Site.Settings["ExternalLogin:ProviderType"], PageState.QueryString["key"], PageState.Site.Settings["ExternalLogin:ProviderName"]);
+ if (user != null)
+ {
+ await logger.LogInformation(LogFunction.Security, "External Login Linkage Successful For Username {Username}", _username);
+ AddModuleMessage(Localizer["Success.Account.Linked"], MessageType.Info);
+ }
+ else
+ {
+ await logger.LogError(LogFunction.Security, "External Login Linkage Failed For Username {Username}", _username);
+ AddModuleMessage(Localizer["Message.Account.NotLinked"], MessageType.Warning);
+ }
+ _username = "";
}
else
{
- await logger.LogError(LogFunction.Security, "Email Verification Failed For Username {Username}", _username);
- AddModuleMessage(Localizer["Message.Account.NotVerfied"], MessageType.Warning);
+ user = await UserService.VerifyEmailAsync(user, PageState.QueryString["token"]);
+ if (user != null)
+ {
+ await logger.LogInformation(LogFunction.Security, "Email Verified For For Username {Username}", _username);
+ AddModuleMessage(Localizer["Success.Account.Verified"], MessageType.Info);
+ }
+ else
+ {
+ await logger.LogError(LogFunction.Security, "Email Verification Failed For Username {Username}", _username);
+ AddModuleMessage(Localizer["Message.Account.NotVerified"], MessageType.Warning);
+ }
+ }
+ }
+ else
+ {
+ if (PageState.QueryString.ContainsKey("status"))
+ {
+ AddModuleMessage(Localizer["ExternalLoginStatus." + PageState.QueryString["status"]], MessageType.Info);
}
}
}
@@ -163,7 +188,7 @@
if (!twofactor)
{
- user = await UserService.LoginUserAsync(user, false, false);
+ user = await UserService.LoginUserAsync(user);
}
else
{
@@ -174,23 +199,14 @@
{
await logger.LogInformation(LogFunction.Security, "Login Successful For Username {Username}", _username);
- if (PageState.Runtime == Oqtane.Shared.Runtime.Server)
- {
- // server-side Blazor needs to post to the Login page so that the cookies are set correctly
- var fields = new { __RequestVerificationToken = SiteState.AntiForgeryToken, username = _username, password = _password, remember = _remember, returnurl = _returnUrl };
- string url = Utilities.TenantUrl(PageState.Alias, "/pages/login/");
- await interop.SubmitForm(url, fields);
- }
- else
- {
- var authstateprovider = (IdentityAuthenticationStateProvider)ServiceProvider.GetService(typeof(IdentityAuthenticationStateProvider));
- authstateprovider.NotifyAuthenticationChanged();
- NavigationManager.NavigateTo(NavigateUrl(_returnUrl, true));
- }
+ // post back to the Login page so that the cookies are set correctly
+ var fields = new { __RequestVerificationToken = SiteState.AntiForgeryToken, username = _username, password = _password, remember = _remember, returnurl = _returnUrl };
+ string url = Utilities.TenantUrl(PageState.Alias, "/pages/login/");
+ await interop.SubmitForm(url, fields);
}
else
{
- if (user.TwoFactorRequired)
+ if (PageState.Site.Settings["LoginOptions:TwoFactor"] == "required" || user.TwoFactorRequired)
{
twofactor = true;
validated = false;
@@ -282,12 +298,12 @@
if (_passwordtype == "password")
{
_passwordtype = "text";
- _togglepassword = Localizer["HidePassword"];
+ _togglepassword = SharedLocalizer["HidePassword"];
}
else
{
_passwordtype = "password";
- _togglepassword = Localizer["ShowPassword"];
+ _togglepassword = SharedLocalizer["ShowPassword"];
}
}
diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Create.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Create.razor
index dda4087c..1af77986 100644
--- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Create.razor
+++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Create.razor
@@ -81,7 +81,7 @@
private List
_templates;
private string _template = "-";
private string[] _versions;
- private string _reference = Constants.Version;
+ private string _reference = "local";
private string _minversion = "2.0.0";
private string _location = string.Empty;
diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor
index 4648e900..049582c6 100644
--- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor
+++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor
@@ -50,9 +50,12 @@ else
@((MarkupString)PurchaseLink(context.PackageName))
- @if (UpgradeAvailable(context.PackageName, context.Version))
+ @{
+ var version = UpgradeAvailable(context.PackageName, context.Version);
+ }
+ @if (version != context.Version)
{
-
+
}
|
@@ -60,62 +63,60 @@ else
}
@code {
- private List _moduleDefinitions;
- private List _packages;
+ private List _moduleDefinitions;
+ private List _packages;
- public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host;
+ public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host;
- protected override async Task OnParametersSetAsync()
- {
- try
- {
- _moduleDefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
- _packages = await PackageService.GetPackagesAsync("module");
+ protected override async Task OnParametersSetAsync()
+ {
+ try
+ {
+ _moduleDefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
+ _packages = await PackageService.GetPackagesAsync("module");
+ }
+ catch (Exception ex)
+ {
+ if (_moduleDefinitions == null)
+ {
+ await logger.LogError(ex, "Error Loading Modules {Error}", ex.Message);
+ AddModuleMessage(Localizer["Error.Module.Load"], MessageType.Error);
+ }
+ }
+ }
+
+ private string PurchaseLink(string packagename)
+ {
+ string link = "";
+ if (!string.IsNullOrEmpty(packagename) && _packages != null)
+ {
+ var package = _packages.Where(item => item.PackageId == packagename).FirstOrDefault();
+ if (package != null)
+ {
+ if (package.ExpiryDate != null && package.ExpiryDate.Value.Date != DateTime.MaxValue.Date)
+ {
+ link += "" + package.ExpiryDate.Value.Date.ToString("MMM dd, yyyy") + "";
+ if (!string.IsNullOrEmpty(package.PaymentUrl))
+ {
+ link += " " + SharedLocalizer["Extend"] + "";
+ }
+ }
+ }
+ }
+ return link;
+ }
+
+ private string UpgradeAvailable(string packagename, string version)
+ {
+ if (!string.IsNullOrEmpty(packagename) && _packages != null)
+ {
+ var package = _packages.Where(item => item.PackageId == packagename).FirstOrDefault();
+ if (package != null && Version.Parse(package.Version).CompareTo(Version.Parse(version)) > 0)
+ {
+ return package.Version;
+ }
}
- catch (Exception ex)
- {
- if (_moduleDefinitions == null)
- {
- await logger.LogError(ex, "Error Loading Modules {Error}", ex.Message);
- AddModuleMessage(Localizer["Error.Module.Load"], MessageType.Error);
- }
- }
- }
-
- private string PurchaseLink(string packagename)
- {
- string link = "";
- if (!string.IsNullOrEmpty(packagename) && _packages != null)
- {
- var package = _packages.Where(item => item.PackageId == packagename).FirstOrDefault();
- if (package != null)
- {
- if (package.ExpiryDate != null && package.ExpiryDate.Value.Date != DateTime.MaxValue.Date)
- {
- link += "" + package.ExpiryDate.Value.Date.ToString("MMM dd, yyyy") + "";
- if (!string.IsNullOrEmpty(package.PaymentUrl))
- {
- link += " " + SharedLocalizer["Extend"] + "";
- }
- }
- }
- }
- return link;
- }
-
- private bool UpgradeAvailable(string packagename, string version)
- {
- var upgradeavailable = false;
- if (!string.IsNullOrEmpty(packagename) && _packages != null)
- {
- var package = _packages.Where(item => item.PackageId == packagename).FirstOrDefault();
- if (package != null)
- {
- upgradeavailable = (Version.Parse(package.Version).CompareTo(Version.Parse(version)) > 0);
- }
-
- }
- return upgradeavailable;
+ return version;
}
private async Task DownloadModule(string packagename, string version)
diff --git a/Oqtane.Client/Modules/Admin/Register/Index.razor b/Oqtane.Client/Modules/Admin/Register/Index.razor
index 66ec29e5..24ca61b5 100644
--- a/Oqtane.Client/Modules/Admin/Register/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Register/Index.razor
@@ -27,19 +27,25 @@
@@ -62,15 +68,22 @@ else
}
@code {
- private string _username = string.Empty;
- private ElementReference form;
- private bool validated = false;
- private string _password = string.Empty;
- private string _confirm = string.Empty;
- private string _email = string.Empty;
- private string _displayname = string.Empty;
+ private string _username = string.Empty;
+ private ElementReference form;
+ private bool validated = false;
+ private string _password = string.Empty;
+ private string _passwordtype = "password";
+ private string _togglepassword = string.Empty;
+ private string _confirm = string.Empty;
+ private string _email = string.Empty;
+ private string _displayname = string.Empty;
- public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Anonymous;
+ public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Anonymous;
+
+ protected override void OnParametersSet()
+ {
+ _togglepassword = SharedLocalizer["ShowPassword"];
+ }
private async Task Register()
{
@@ -134,4 +147,18 @@ else
{
NavigationManager.NavigateTo(NavigateUrl(string.Empty));
}
+
+ private void TogglePassword()
+ {
+ if (_passwordtype == "password")
+ {
+ _passwordtype = "text";
+ _togglepassword = SharedLocalizer["HidePassword"];
+ }
+ else
+ {
+ _passwordtype = "password";
+ _togglepassword = SharedLocalizer["ShowPassword"];
+ }
+ }
}
diff --git a/Oqtane.Client/Modules/Admin/Reset/Index.razor b/Oqtane.Client/Modules/Admin/Reset/Index.razor
index 00eac54d..07556105 100644
--- a/Oqtane.Client/Modules/Admin/Reset/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Reset/Index.razor
@@ -16,13 +16,19 @@
@@ -36,12 +42,16 @@
private bool validated = false;
private string _username = string.Empty;
private string _password = string.Empty;
+ private string _passwordtype = "password";
+ private string _togglepassword = string.Empty;
private string _confirm = string.Empty;
public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Anonymous;
protected override async Task OnInitializedAsync()
{
+ _togglepassword = SharedLocalizer["ShowPassword"];
+
if (PageState.QueryString.ContainsKey("name") && PageState.QueryString.ContainsKey("token"))
{
_username = PageState.QueryString["name"];
@@ -110,4 +120,18 @@
{
NavigationManager.NavigateTo(NavigateUrl(string.Empty));
}
+
+ private void TogglePassword()
+ {
+ if (_passwordtype == "password")
+ {
+ _passwordtype = "text";
+ _togglepassword = SharedLocalizer["HidePassword"];
+ }
+ else
+ {
+ _passwordtype = "password";
+ _togglepassword = SharedLocalizer["ShowPassword"];
+ }
+ }
}
diff --git a/Oqtane.Client/Modules/Admin/Roles/Users.razor b/Oqtane.Client/Modules/Admin/Roles/Users.razor
index c96221e3..359bc113 100644
--- a/Oqtane.Client/Modules/Admin/Roles/Users.razor
+++ b/Oqtane.Client/Modules/Admin/Roles/Users.razor
@@ -95,11 +95,7 @@ else
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(u => u.Role.Name == RoleNames.Registered)
- .OrderBy(u => u.User.DisplayName)
- .ToList();
+ users = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId, RoleNames.Registered);
await GetUserRoles();
}
catch (Exception ex)
@@ -113,8 +109,7 @@ else
{
try
{
- userroles = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId);
- userroles = userroles.Where(item => item.RoleId == roleid).ToList();
+ userroles = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId, name);
}
catch (Exception ex)
{
diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor
index 252213c6..3d0ce023 100644
--- a/Oqtane.Client/Modules/Admin/Site/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Site/Index.razor
@@ -341,7 +341,7 @@
_smtpssl = SettingService.GetSetting(settings, "SMTPSSL", "False");
_smtpusername = SettingService.GetSetting(settings, "SMTPUsername", string.Empty);
_smtppassword = SettingService.GetSetting(settings, "SMTPPassword", string.Empty);
- _togglesmtppassword = Localizer["Show"];
+ _togglesmtppassword = SharedLocalizer["ShowPassword"];
_smtpsender = SettingService.GetSetting(settings, "SMTPSender", string.Empty);
_retention = SettingService.GetSetting(settings, "NotificationRetention", "30");
@@ -407,7 +407,7 @@
{
try
{
- if (_name != string.Empty && _urls != string.Empty && _themetype != "-" && _containertype != "-")
+ if (_name != string.Empty && _themetype != "-" && _containertype != "-")
{
var unique = true;
if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
@@ -656,12 +656,12 @@
if (_smtppasswordtype == "password")
{
_smtppasswordtype = "text";
- _togglesmtppassword = Localizer["Hide"];
+ _togglesmtppassword = SharedLocalizer["HidePassword"];
}
else
{
_smtppasswordtype = "password";
- _togglesmtppassword = Localizer["Show"];
+ _togglesmtppassword = SharedLocalizer["ShowPassword"];
}
}
}
diff --git a/Oqtane.Client/Modules/Admin/Sites/Add.razor b/Oqtane.Client/Modules/Admin/Sites/Add.razor
index 14cbc5f0..7f1e12bd 100644
--- a/Oqtane.Client/Modules/Admin/Sites/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Sites/Add.razor
@@ -156,7 +156,7 @@ else
}
@@ -307,7 +307,7 @@ else
user.SiteId = PageState.Site.SiteId;
user.Username = _hostusername;
user.Password = _hostpassword;
- user = await UserService.LoginUserAsync(user, false, false);
+ user = await UserService.LoginUserAsync(user);
if (user.IsAuthenticated)
{
var connectionString = String.Empty;
diff --git a/Oqtane.Client/Modules/Admin/Themes/Create.razor b/Oqtane.Client/Modules/Admin/Themes/Create.razor
index d472047c..ef3ab372 100644
--- a/Oqtane.Client/Modules/Admin/Themes/Create.razor
+++ b/Oqtane.Client/Modules/Admin/Themes/Create.razor
@@ -72,7 +72,7 @@
private List _templates;
private string _template = "-";
private string[] _versions;
- private string _reference = Constants.Version;
+ private string _reference = "local";
private string _minversion = "2.0.0";
private string _location = string.Empty;
diff --git a/Oqtane.Client/Modules/Admin/Themes/Index.razor b/Oqtane.Client/Modules/Admin/Themes/Index.razor
index 5c089dfa..90213b9e 100644
--- a/Oqtane.Client/Modules/Admin/Themes/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Themes/Index.razor
@@ -40,9 +40,12 @@ else
@((MarkupString)PurchaseLink(context.PackageName))
- @if (UpgradeAvailable(context.PackageName, context.Version))
+ @{
+ var version = UpgradeAvailable(context.PackageName, context.Version);
+ }
+ @if (version != context.Version)
{
-
+
}
|
|
@@ -94,18 +97,17 @@ else
return link;
}
- private bool UpgradeAvailable(string packagename, string version)
- {
- var upgradeavailable = false;
- if (!string.IsNullOrEmpty(packagename) && _packages != null)
- {
- var package = _packages.Where(item => item.PackageId == packagename).FirstOrDefault();
- if (package != null)
- {
- upgradeavailable = (Version.Parse(package.Version).CompareTo(Version.Parse(version)) > 0);
- }
+ private string UpgradeAvailable(string packagename, string version)
+ {
+ if (!string.IsNullOrEmpty(packagename) && _packages != null)
+ {
+ var package = _packages.Where(item => item.PackageId == packagename).FirstOrDefault();
+ if (package != null && Version.Parse(package.Version).CompareTo(Version.Parse(version)) > 0)
+ {
+ return package.Version;
+ }
}
- return upgradeavailable;
+ return version;
}
private async Task DownloadTheme(string packagename, string version)
diff --git a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor
index 6bcf5f4a..a2aeb314 100644
--- a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor
+++ b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor
@@ -31,14 +31,20 @@ else
-
@@ -88,7 +94,9 @@
@code {
private string username = string.Empty;
- private string password = string.Empty;
+ private string _password = string.Empty;
+ private string _passwordtype = "password";
+ private string _togglepassword = string.Empty;
private string confirm = string.Empty;
private string email = string.Empty;
private string displayname = string.Empty;
@@ -102,6 +110,7 @@
{
try
{
+ _togglepassword = SharedLocalizer["ShowPassword"];
profiles = await ProfileService.GetProfilesAsync(ModuleState.SiteId);
settings = new Dictionary();
}
@@ -119,9 +128,9 @@
{
try
{
- if (username != string.Empty && password != string.Empty && confirm != string.Empty && email != string.Empty && ValidateProfiles())
+ if (username != string.Empty && _password != string.Empty && confirm != string.Empty && email != string.Empty && ValidateProfiles())
{
- if (password == confirm)
+ if (_password == confirm)
{
var user = await UserService.GetUserAsync(username, PageState.Site.SiteId);
if (user == null)
@@ -129,7 +138,7 @@
user = new User();
user.SiteId = PageState.Site.SiteId;
user.Username = username;
- user.Password = password;
+ user.Password = _password;
user.Email = email;
user.DisplayName = string.IsNullOrWhiteSpace(displayname) ? username : displayname;
user.PhotoFileId = null;
@@ -193,4 +202,17 @@
settings = SettingService.SetSetting(settings, SettingName, value);
}
+ private void TogglePassword()
+ {
+ if (_passwordtype == "password")
+ {
+ _passwordtype = "text";
+ _togglepassword = SharedLocalizer["HidePassword"];
+ }
+ else
+ {
+ _passwordtype = "password";
+ _togglepassword = SharedLocalizer["ShowPassword"];
+ }
+ }
}
diff --git a/Oqtane.Client/Modules/Admin/Users/Edit.razor b/Oqtane.Client/Modules/Admin/Users/Edit.razor
index 167adc8d..fa05cc6e 100644
--- a/Oqtane.Client/Modules/Admin/Users/Edit.razor
+++ b/Oqtane.Client/Modules/Admin/Users/Edit.razor
@@ -29,14 +29,20 @@ else
-
@@ -133,7 +139,9 @@ else
@code {
private int userid;
private string username = string.Empty;
- private string password = string.Empty;
+ private string _password = string.Empty;
+ private string _passwordtype = "password";
+ private string _togglepassword = string.Empty;
private string confirm = string.Empty;
private string email = string.Empty;
private string displayname = string.Empty;
@@ -157,9 +165,9 @@ else
{
try
{
- // OnParametersSetAsync is called when the edit modal is closed - in which case there is no id parameter
if (PageState.QueryString.ContainsKey("id"))
{
+ _togglepassword = SharedLocalizer["ShowPassword"];
profiles = await ProfileService.GetProfilesAsync(PageState.Site.SiteId);
userid = Int32.Parse(PageState.QueryString["id"]);
var user = await UserService.GetUserAsync(userid, PageState.Site.SiteId);
@@ -205,12 +213,12 @@ else
{
if (username != string.Empty && email != string.Empty && ValidateProfiles())
{
- if (password == confirm)
+ if (_password == confirm)
{
var user = await UserService.GetUserAsync(userid, PageState.Site.SiteId);
user.SiteId = PageState.Site.SiteId;
user.Username = username;
- user.Password = password;
+ user.Password = _password;
user.Email = email;
user.DisplayName = string.IsNullOrWhiteSpace(displayname) ? username : displayname;
user.PhotoFileId = null;
@@ -268,4 +276,17 @@ else
settings = SettingService.SetSetting(settings, SettingName, value);
}
+ private void TogglePassword()
+ {
+ if (_passwordtype == "password")
+ {
+ _passwordtype = "text";
+ _togglepassword = SharedLocalizer["HidePassword"];
+ }
+ else
+ {
+ _passwordtype = "password";
+ _togglepassword = SharedLocalizer["ShowPassword"];
+ }
+ }
}
diff --git a/Oqtane.Client/Modules/Admin/Users/Index.razor b/Oqtane.Client/Modules/Admin/Users/Index.razor
index 650d9c54..c39888b1 100644
--- a/Oqtane.Client/Modules/Admin/Users/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Users/Index.razor
@@ -6,8 +6,9 @@
@inject ISiteService SiteService
@inject IStringLocalizer
Localizer
@inject IStringLocalizer SharedLocalizer
+@inject SiteState SiteState
-@if (userroles == null)
+@if (users == null)
{
@SharedLocalizer["Loading"]
@@ -30,13 +31,16 @@ else
-