From 46fcfcc321db9332dde314924a09bb8a4f19f416 Mon Sep 17 00:00:00 2001 From: Grayson Walker Date: Thu, 29 Jul 2021 16:52:27 -0400 Subject: [PATCH] reset - systemInfo validation changes --- .../Modules/Admin/Register/Index.razor | 155 +++--- Oqtane.Client/Modules/Admin/Reset/Index.razor | 85 +-- Oqtane.Client/Modules/Admin/Roles/Add.razor | 4 +- Oqtane.Client/Modules/Admin/Roles/Edit.razor | 4 +- Oqtane.Client/Modules/Admin/Roles/Users.razor | 200 ++++--- Oqtane.Client/Modules/Admin/Site/Index.razor | 513 +++++++++--------- Oqtane.Client/Modules/Admin/Sites/Add.razor | 391 ++++++------- .../Modules/Admin/SystemInfo/Index.razor | 265 ++++----- 8 files changed, 853 insertions(+), 764 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Register/Index.razor b/Oqtane.Client/Modules/Admin/Register/Index.razor index 27bf0d1a..53c5382c 100644 --- a/Oqtane.Client/Modules/Admin/Register/Index.razor +++ b/Oqtane.Client/Modules/Admin/Register/Index.razor @@ -7,52 +7,54 @@ @if (PageState.Site.AllowRegistration) { - - - ... - - - - - - -
-
- -
- +
+ + + ... + + + + + + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
- - - - +
+ + + + + } else { @@ -61,6 +63,8 @@ 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; @@ -70,49 +74,58 @@ else private async Task Register() { - try + validated = true; + var interop = new Interop(JSRuntime); + if (await interop.FormValid(form)) { - bool _isEmailValid = Utilities.IsValidEmail(_email); - - if (_username != "" && _password != "" && _confirm != "" && _isEmailValid) + try { - if (_password == _confirm) - { - var user = new User - { - SiteId = PageState.Site.SiteId, - Username = _username, - DisplayName = (_displayname == string.Empty ? _username : _displayname), - Email = _email, - Password = _password - }; - user = await UserService.AddUserAsync(user); + bool _isEmailValid = Utilities.IsValidEmail(_email); - if (user != null) + if (_username != "" && _password != "" && _confirm != "" && _isEmailValid) + { + if (_password == _confirm) { - await logger.LogInformation("User Created {Username} {Email}", _username, _email); - AddModuleMessage(Localizer["Info.User.AccountCreate"], MessageType.Info); + var user = new User + { + SiteId = PageState.Site.SiteId, + Username = _username, + DisplayName = (_displayname == string.Empty ? _username : _displayname), + Email = _email, + Password = _password + }; + user = await UserService.AddUserAsync(user); + + if (user != null) + { + await logger.LogInformation("User Created {Username} {Email}", _username, _email); + AddModuleMessage(Localizer["Info.User.AccountCreate"], MessageType.Info); + } + else + { + await logger.LogError("Error Adding User {Username} {Email}", _username, _email); + AddModuleMessage(Localizer["Error.User.AddInfo"], MessageType.Error); + } } else { - await logger.LogError("Error Adding User {Username} {Email}", _username, _email); - AddModuleMessage(Localizer["Error.User.AddInfo"], MessageType.Error); + AddModuleMessage(Localizer["Message.Password.NoMatch"], MessageType.Warning); } } else { - AddModuleMessage(Localizer["Message.Password.NoMatch"], MessageType.Warning); + AddModuleMessage(Localizer["Message.Required.UserInfo"], MessageType.Warning); } } - else + catch (Exception ex) { - AddModuleMessage(Localizer["Message.Required.UserInfo"], MessageType.Warning); + await logger.LogError(ex, "Error Adding User {Username} {Email} {Error}", _username, _email, ex.Message); + AddModuleMessage(Localizer["Error.User.Add"], MessageType.Error); } } - catch (Exception ex) + else { - await logger.LogError(ex, "Error Adding User {Username} {Email} {Error}", _username, _email, ex.Message); - AddModuleMessage(Localizer["Error.User.Add"], MessageType.Error); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } @@ -120,4 +133,4 @@ else { NavigationManager.NavigateTo(NavigateUrl(string.Empty)); } -} \ No newline at end of file +} diff --git a/Oqtane.Client/Modules/Admin/Reset/Index.razor b/Oqtane.Client/Modules/Admin/Reset/Index.razor index 64acc352..31ebb1f5 100644 --- a/Oqtane.Client/Modules/Admin/Reset/Index.razor +++ b/Oqtane.Client/Modules/Admin/Reset/Index.razor @@ -5,24 +5,28 @@ @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer -
-
- - +
+
+
+ + +
+
+ + +
+
+ + +
+ +
-
- - -
-
- - -
- - -
+ @code { + private ElementReference form; + private bool validated = false; private string _username = string.Empty; private string _password = string.Empty; private string _confirm = string.Empty; @@ -43,45 +47,54 @@ private async Task Reset() { - try + validated = true; + var interop = new Interop(JSRuntime); + if (await interop.FormValid(form)) { - if (_username != string.Empty && _password != string.Empty && _confirm != string.Empty) + try { - if (_password == _confirm) + if (_username != string.Empty && _password != string.Empty && _confirm != string.Empty) { - var user = new User + if (_password == _confirm) { - SiteId = PageState.Site.SiteId, - Username = _username, - Password = _password - }; - user = await UserService.ResetPasswordAsync(user, PageState.QueryString["token"]); + var user = new User + { + SiteId = PageState.Site.SiteId, + Username = _username, + Password = _password + }; + user = await UserService.ResetPasswordAsync(user, PageState.QueryString["token"]); - if (user != null) - { - await logger.LogInformation("User Password Reset {Username}", _username); - NavigationManager.NavigateTo(NavigateUrl("login")); + if (user != null) + { + await logger.LogInformation("User Password Reset {Username}", _username); + NavigationManager.NavigateTo(NavigateUrl("login")); + } + else + { + await logger.LogError("Error Resetting User Password {Username}", _username); + AddModuleMessage(Localizer["Error.Password.ResetInfo"], MessageType.Error); + } } else { - await logger.LogError("Error Resetting User Password {Username}", _username); - AddModuleMessage(Localizer["Error.Password.ResetInfo"], MessageType.Error); + AddModuleMessage(Localizer["Message.Password.NoMatch"], MessageType.Warning); } } else { - AddModuleMessage(Localizer["Message.Password.NoMatch"], MessageType.Warning); + AddModuleMessage(Localizer["Message.Required.UserInfo"], MessageType.Warning); } } - else + catch (Exception ex) { - AddModuleMessage(Localizer["Message.Required.UserInfo"], MessageType.Warning); + await logger.LogError(ex, "Error Resetting User Password {Username} {Error}", _username, ex.Message); + AddModuleMessage(Localizer["Error.Password.Reset"], MessageType.Error); } } - catch (Exception ex) + else { - await logger.LogError(ex, "Error Resetting User Password {Username} {Error}", _username, ex.Message); - AddModuleMessage(Localizer["Error.Password.Reset"], MessageType.Error); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } diff --git a/Oqtane.Client/Modules/Admin/Roles/Add.razor b/Oqtane.Client/Modules/Admin/Roles/Add.razor index c7daf524..f20a721d 100644 --- a/Oqtane.Client/Modules/Admin/Roles/Add.razor +++ b/Oqtane.Client/Modules/Admin/Roles/Add.razor @@ -22,7 +22,7 @@
- @@ -72,7 +72,7 @@ } else { - AddModuleMessage(Localizer["Message.InfoRequired"], MessageType.Warning); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } diff --git a/Oqtane.Client/Modules/Admin/Roles/Edit.razor b/Oqtane.Client/Modules/Admin/Roles/Edit.razor index 50eec71b..b217acce 100644 --- a/Oqtane.Client/Modules/Admin/Roles/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Roles/Edit.razor @@ -22,7 +22,7 @@
- @@ -101,7 +101,7 @@ } else { - AddModuleMessage(Localizer["Message.InfoRequired"], MessageType.Warning); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } } diff --git a/Oqtane.Client/Modules/Admin/Roles/Users.razor b/Oqtane.Client/Modules/Admin/Roles/Users.razor index 8799a816..92015116 100644 --- a/Oqtane.Client/Modules/Admin/Roles/Users.razor +++ b/Oqtane.Client/Modules/Admin/Roles/Users.razor @@ -12,65 +12,70 @@ else { -
-
- -
- +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+

+ + @SharedLocalizer["Cancel"] +
+
+

+ +

+ @Localizer["Users"] + @Localizer["Effective"] + @Localizer["Expiry"] +   +
+ + @context.User.DisplayName + @context.EffectiveDate + @context.ExpiryDate + + + + + +

+
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-

- - @SharedLocalizer["Cancel"] -
-
-

- -

- @Localizer["Users"] - @Localizer["Effective"] - @Localizer["Expiry"] -   -
- - @context.User.DisplayName - @context.EffectiveDate - @context.ExpiryDate - - - - - -

-
-
+ } @code { + private ElementReference form; + private bool validated = false; + private int roleid; private string name = string.Empty; private List users; @@ -118,59 +123,78 @@ else private async Task SaveUserRole() { - try + validated = true; + var interop = new Interop(JSRuntime); + if (await interop.FormValid(form)) { - if (userid != -1) + try { - var userrole = userroles.Where(item => item.UserId == userid && item.RoleId == roleid).FirstOrDefault(); - if (userrole != null) + if (userid != -1) { - userrole.EffectiveDate = effectivedate; - userrole.ExpiryDate = expirydate; - await UserRoleService.UpdateUserRoleAsync(userrole); + var userrole = userroles.Where(item => item.UserId == userid && item.RoleId == roleid).FirstOrDefault(); + if (userrole != null) + { + userrole.EffectiveDate = effectivedate; + userrole.ExpiryDate = expirydate; + await UserRoleService.UpdateUserRoleAsync(userrole); + } + else + { + userrole = new UserRole(); + userrole.UserId = userid; + userrole.RoleId = roleid; + userrole.EffectiveDate = effectivedate; + userrole.ExpiryDate = expirydate; + + await UserRoleService.AddUserRoleAsync(userrole); + } + + await logger.LogInformation("User Assigned To Role {UserRole}", userrole); + AddModuleMessage(Localizer["Success.User.AssignedRole"], MessageType.Success); + await GetUserRoles(); + StateHasChanged(); } else { - userrole = new UserRole(); - userrole.UserId = userid; - userrole.RoleId = roleid; - userrole.EffectiveDate = effectivedate; - userrole.ExpiryDate = expirydate; - - await UserRoleService.AddUserRoleAsync(userrole); + AddModuleMessage(Localizer["Message.Required.UserSelect"], MessageType.Warning); } - - await logger.LogInformation("User Assigned To Role {UserRole}", userrole); - AddModuleMessage(Localizer["Success.User.AssignedRole"], MessageType.Success); - await GetUserRoles(); - StateHasChanged(); } - else + catch (Exception ex) { - AddModuleMessage(Localizer["Message.Required.UserSelect"], MessageType.Warning); + await logger.LogError(ex, "Error Saving User Roles {RoleId} {Error}", roleid, ex.Message); + AddModuleMessage(Localizer["Error.User.SaveRole"], MessageType.Error); } } - catch (Exception ex) + + else { - await logger.LogError(ex, "Error Saving User Roles {RoleId} {Error}", roleid, ex.Message); - AddModuleMessage(Localizer["Error.User.SaveRole"], MessageType.Error); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } private async Task DeleteUserRole(int UserRoleId) { - try + validated = true; + var interop = new Interop(JSRuntime); + if (await interop.FormValid(form)) { - await UserRoleService.DeleteUserRoleAsync(UserRoleId); - await logger.LogInformation("User Removed From Role {UserRoleId}", UserRoleId); - AddModuleMessage(Localizer["Confirm.User.RoleRemoved"], MessageType.Success); - await GetUserRoles(); - StateHasChanged(); + try + { + await UserRoleService.DeleteUserRoleAsync(UserRoleId); + await logger.LogInformation("User Removed From Role {UserRoleId}", UserRoleId); + AddModuleMessage(Localizer["Confirm.User.RoleRemoved"], MessageType.Success); + await GetUserRoles(); + StateHasChanged(); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Removing User From Role {UserRoleId} {Error}", UserRoleId, ex.Message); + AddModuleMessage(Localizer["Error.User.RemoveRole"], MessageType.Error); + } } - catch (Exception ex) + else { - await logger.LogError(ex, "Error Removing User From Role {UserRoleId} {Error}", UserRoleId, ex.Message); - AddModuleMessage(Localizer["Error.User.RemoveRole"], MessageType.Error); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } } diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor index 974eb07b..2443c039 100644 --- a/Oqtane.Client/Modules/Admin/Site/Index.razor +++ b/Oqtane.Client/Modules/Admin/Site/Index.razor @@ -13,213 +13,217 @@ @if (_initialized) { -
-
- -
- -
-
-
- -
- @if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) - { - - } - else - { - - } -
-
-
- -
- -
-
-
- -
- -
-
-
-
+
- +
- +
- +
- + @if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) + { + + } + else + { + + }
- +
- -
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
-
-
-
-
- @Localizer["Smtp.Required.EnableNotificationJob"]
-
-
-
- -
- -
-
-
- -
- -
-
-
- -
-
- +
- -
-
-
- -
- -
-
-
- -
- -
-
- -

- -
- - -
-
-
-
- -
-
-
- -
- -
-
-
- -
- -
-
-
- @if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) - { -
+
- +
- +
- +
- +
- +
- + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+
+
+
+ @Localizer["Smtp.Required.EnableNotificationJob"]
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +

+ +
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
- } -
- - -
-
- + @if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) + { +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ } +
+ + +
+
+ + } @code { + private ElementReference form; + private bool validated = false; private bool _initialized = false; private List _themeList; private List _themes = new List(); @@ -384,121 +388,130 @@ private async Task SaveSite() { - try + validated = true; + var interop = new Interop(JSRuntime); + if (await interop.FormValid(form)) { - if (_name != string.Empty && _urls != string.Empty && _themetype != "-" && _containertype != "-") + try { - var unique = true; - if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) + if (_name != string.Empty && _urls != string.Empty && _themetype != "-" && _containertype != "-") { - foreach (string name in _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) + var unique = true; + if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) { - if (_aliasList.Exists(item => item.Name == name && item.SiteId != PageState.Alias.SiteId && item.TenantId != PageState.Alias.TenantId)) + foreach (string name in _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { - unique = false; + if (_aliasList.Exists(item => item.Name == name && item.SiteId != PageState.Alias.SiteId && item.TenantId != PageState.Alias.TenantId)) + { + unique = false; + } } } - } - if (unique) - { - var site = await SiteService.GetSiteAsync(PageState.Site.SiteId); - if (site != null) + if (unique) { - bool refresh = (site.DefaultThemeType != _themetype || site.DefaultContainerType != _containertype); - - site.Name = _name; - site.AllowRegistration = (_allowregistration == null ? true : Boolean.Parse(_allowregistration)); - site.IsDeleted = (_isdeleted == null ? true : Boolean.Parse(_isdeleted)); - - site.LogoFileId = null; - var logofileid = _logofilemanager.GetFileId(); - if (logofileid != -1) + var site = await SiteService.GetSiteAsync(PageState.Site.SiteId); + if (site != null) { - site.LogoFileId = logofileid; - } - var faviconFieldId = _faviconfilemanager.GetFileId(); - if (faviconFieldId != -1) - { - site.FaviconFileId = faviconFieldId; - } - site.DefaultThemeType = _themetype; - site.DefaultContainerType = _containertype; - site.AdminContainerType = _admincontainertype; + bool refresh = (site.DefaultThemeType != _themetype || site.DefaultContainerType != _containertype); - site.PwaIsEnabled = (_pwaisenabled == null ? true : Boolean.Parse(_pwaisenabled)); - var pwaappiconfileid = _pwaappiconfilemanager.GetFileId(); - if (pwaappiconfileid != -1) - { - site.PwaAppIconFileId = pwaappiconfileid; - } - var pwasplashiconfileid = _pwasplashiconfilemanager.GetFileId(); - if (pwasplashiconfileid != -1) - { - site.PwaSplashIconFileId = pwasplashiconfileid; - } + site.Name = _name; + site.AllowRegistration = (_allowregistration == null ? true : Boolean.Parse(_allowregistration)); + site.IsDeleted = (_isdeleted == null ? true : Boolean.Parse(_isdeleted)); - site = await SiteService.UpdateSiteAsync(site); - - var settings = await SettingService.GetSiteSettingsAsync(site.SiteId); - SettingService.SetSetting(settings, "SMTPHost", _smtphost); - SettingService.SetSetting(settings, "SMTPPort", _smtpport); - SettingService.SetSetting(settings, "SMTPSSL", _smtpssl); - SettingService.SetSetting(settings, "SMTPUsername", _smtpusername); - SettingService.SetSetting(settings, "SMTPPassword", _smtppassword); - SettingService.SetSetting(settings, "SMTPSender", _smtpsender); - await SettingService.UpdateSiteSettingsAsync(settings, site.SiteId); - - if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) - { - var names = _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); - foreach (Alias alias in _aliasList.Where(item => item.SiteId == site.SiteId && item.TenantId == site.TenantId).ToList()) + site.LogoFileId = null; + var logofileid = _logofilemanager.GetFileId(); + if (logofileid != -1) { - if (!names.Contains(alias.Name)) + site.LogoFileId = logofileid; + } + var faviconFieldId = _faviconfilemanager.GetFileId(); + if (faviconFieldId != -1) + { + site.FaviconFileId = faviconFieldId; + } + site.DefaultThemeType = _themetype; + site.DefaultContainerType = _containertype; + site.AdminContainerType = _admincontainertype; + + site.PwaIsEnabled = (_pwaisenabled == null ? true : Boolean.Parse(_pwaisenabled)); + var pwaappiconfileid = _pwaappiconfilemanager.GetFileId(); + if (pwaappiconfileid != -1) + { + site.PwaAppIconFileId = pwaappiconfileid; + } + var pwasplashiconfileid = _pwasplashiconfilemanager.GetFileId(); + if (pwasplashiconfileid != -1) + { + site.PwaSplashIconFileId = pwasplashiconfileid; + } + + site = await SiteService.UpdateSiteAsync(site); + + var settings = await SettingService.GetSiteSettingsAsync(site.SiteId); + SettingService.SetSetting(settings, "SMTPHost", _smtphost); + SettingService.SetSetting(settings, "SMTPPort", _smtpport); + SettingService.SetSetting(settings, "SMTPSSL", _smtpssl); + SettingService.SetSetting(settings, "SMTPUsername", _smtpusername); + SettingService.SetSetting(settings, "SMTPPassword", _smtppassword); + SettingService.SetSetting(settings, "SMTPSender", _smtpsender); + await SettingService.UpdateSiteSettingsAsync(settings, site.SiteId); + + if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) + { + var names = _urls.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + foreach (Alias alias in _aliasList.Where(item => item.SiteId == site.SiteId && item.TenantId == site.TenantId).ToList()) { - await AliasService.DeleteAliasAsync(alias.AliasId); + if (!names.Contains(alias.Name)) + { + await AliasService.DeleteAliasAsync(alias.AliasId); + } + } + + foreach (string name in names) + { + if (!_aliasList.Exists(item => item.Name == name)) + { + Alias alias = new Alias(); + alias.Name = name; + alias.TenantId = site.TenantId; + alias.SiteId = site.SiteId; + await AliasService.AddAliasAsync(alias); + } } } - foreach (string name in names) + await logger.LogInformation("Site Settings Saved {Site}", site); + + if (refresh) { - if (!_aliasList.Exists(item => item.Name == name)) - { - Alias alias = new Alias(); - alias.Name = name; - alias.TenantId = site.TenantId; - alias.SiteId = site.SiteId; - await AliasService.AddAliasAsync(alias); - } + NavigationManager.NavigateTo(NavigateUrl()); // refresh to show new theme or container + } + else + { + AddModuleMessage(Localizer["Success.Settings.SaveSite"], MessageType.Success); } } - - await logger.LogInformation("Site Settings Saved {Site}", site); - - if (refresh) - { - NavigationManager.NavigateTo(NavigateUrl()); // refresh to show new theme or container - } - else - { - AddModuleMessage(Localizer["Success.Settings.SaveSite"], MessageType.Success); - } + } + else + { + AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning); } } else { - AddModuleMessage(Localizer["Message.Aliases.Taken"], MessageType.Warning); + AddModuleMessage(Localizer["Message.Required.SiteName"], MessageType.Warning); } } - else + catch (Exception ex) { - AddModuleMessage(Localizer["Message.Required.SiteName"], MessageType.Warning); + await logger.LogError(ex, "Error Saving Site {SiteId} {Error}", PageState.Site.SiteId, ex.Message); + AddModuleMessage(Localizer["Error.SaveSite"], MessageType.Error); } } - catch (Exception ex) + else { - await logger.LogError(ex, "Error Saving Site {SiteId} {Error}", PageState.Site.SiteId, ex.Message); - AddModuleMessage(Localizer["Error.SaveSite"], MessageType.Error); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } diff --git a/Oqtane.Client/Modules/Admin/Sites/Add.razor b/Oqtane.Client/Modules/Admin/Sites/Add.razor index 4dba923a..7bdda0c9 100644 --- a/Oqtane.Client/Modules/Admin/Sites/Add.razor +++ b/Oqtane.Client/Modules/Admin/Sites/Add.razor @@ -19,136 +19,140 @@ } else { -
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
- @if (_tenantid == "+") - { +
+
-
-
-
- +
- +
- +
- +
+
+
+ +
+
- if (_databaseConfigType != null) +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ @if (_tenantid == "+") { - @DatabaseConfigComponent; +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ if (_databaseConfigType != null) + { + @DatabaseConfigComponent; + } +
+ +
+ +
+
+
+ +
+ +
+
} -
- -
- -
-
-
- -
- -
-
- } -
-
-
- - @SharedLocalizer["Cancel"] +
+
+
+ + @SharedLocalizer["Cancel"] + } @code { private List _databases; + private ElementReference form; + private bool validated = false; private string _databaseName = "LocalDB"; private Type _databaseConfigType; private object _databaseConfig; @@ -252,111 +256,120 @@ else private async Task SaveSite() { - if (_tenantid != "-" && _name != string.Empty && _urls != string.Empty && _themetype != "-" && _containertype != "-" && _sitetemplatetype != "-") + validated = true; + var interop = new Interop(JSRuntime); + if (await interop.FormValid(form)) { - var duplicates = new List(); - var aliases = await AliasService.GetAliasesAsync(); - foreach (string name in _urls.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) + if (_tenantid != "-" && _name != string.Empty && _urls != string.Empty && _themetype != "-" && _containertype != "-" && _sitetemplatetype != "-") { - if (aliases.Exists(item => item.Name == name)) + var duplicates = new List(); + var aliases = await AliasService.GetAliasesAsync(); + foreach (string name in _urls.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { - duplicates.Add(name); - } - } - - if (duplicates.Count == 0) - { - InstallConfig config = new InstallConfig(); - - if (_tenantid == "+") - { - if (!string.IsNullOrEmpty(_tenantName) && _tenants.FirstOrDefault(item => item.Name == _tenantName) == null) + if (aliases.Exists(item => item.Name == name)) { - // validate host credentials - var user = new User(); - user.SiteId = PageState.Site.SiteId; - user.Username = UserNames.Host; - user.Password = _hostpassword; - user = await UserService.LoginUserAsync(user, false, false); - if (user.IsAuthenticated) - { - var connectionString = String.Empty; - if (_databaseConfig is IDatabaseConfigControl databaseConfigControl) - { - connectionString = databaseConfigControl.GetConnectionString(); - } - var database = _databases.SingleOrDefault(d => d.Name == _databaseName); + duplicates.Add(name); + } + } - if (connectionString != "") + if (duplicates.Count == 0) + { + InstallConfig config = new InstallConfig(); + + if (_tenantid == "+") + { + if (!string.IsNullOrEmpty(_tenantName) && _tenants.FirstOrDefault(item => item.Name == _tenantName) == null) + { + // validate host credentials + var user = new User(); + user.SiteId = PageState.Site.SiteId; + user.Username = UserNames.Host; + user.Password = _hostpassword; + user = await UserService.LoginUserAsync(user, false, false); + if (user.IsAuthenticated) { - config.TenantName = _tenantName; - config.DatabaseType = database.DBType; - config.ConnectionString = connectionString; - config.HostEmail = user.Email; - config.HostPassword = _hostpassword; - config.HostName = user.DisplayName; - config.IsNewTenant = true; + var connectionString = String.Empty; + if (_databaseConfig is IDatabaseConfigControl databaseConfigControl) + { + connectionString = databaseConfigControl.GetConnectionString(); + } + var database = _databases.SingleOrDefault(d => d.Name == _databaseName); + + if (connectionString != "") + { + config.TenantName = _tenantName; + config.DatabaseType = database.DBType; + config.ConnectionString = connectionString; + config.HostEmail = user.Email; + config.HostPassword = _hostpassword; + config.HostName = user.DisplayName; + config.IsNewTenant = true; + } + else + { + AddModuleMessage(Localizer["Error.Required.ServerDatabase"], MessageType.Error); + } } else { - AddModuleMessage(Localizer["Error.Required.ServerDatabase"], MessageType.Error); + AddModuleMessage(Localizer["Error.InvalidPassword"], MessageType.Error); } } else { - AddModuleMessage(Localizer["Error.InvalidPassword"], MessageType.Error); + AddModuleMessage(Localizer["Error.TenantName.Exists"], MessageType.Error); } } else { - AddModuleMessage(Localizer["Error.TenantName.Exists"], MessageType.Error); + var tenant = _tenants.FirstOrDefault(item => item.TenantId == int.Parse(_tenantid)); + if (tenant != null) + { + config.TenantName = tenant.Name; + config.DatabaseType = tenant.DBType; + config.ConnectionString = tenant.DBConnectionString; + config.IsNewTenant = false; + } + } + + if (!string.IsNullOrEmpty(config.TenantName)) + { + config.SiteName = _name; + config.Aliases = _urls; + config.DefaultTheme = _themetype; + config.DefaultContainer = _containertype; + config.DefaultAdminContainer = _admincontainertype; + config.SiteTemplate = _sitetemplatetype; + + ShowProgressIndicator(); + + var installation = await InstallationService.Install(config); + if (installation.Success) + { + var aliasname = config.Aliases.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)[0]; + var uri = new Uri(NavigationManager.Uri); + NavigationManager.NavigateTo(uri.Scheme + "://" + aliasname, true); + } + else + { + await logger.LogError("Error Creating Site {Error}", installation.Message); + AddModuleMessage(installation.Message, MessageType.Error); + } } } else { - var tenant = _tenants.FirstOrDefault(item => item.TenantId == int.Parse(_tenantid)); - if (tenant != null) - { - config.TenantName = tenant.Name; - config.DatabaseType = tenant.DBType; - config.ConnectionString = tenant.DBConnectionString; - config.IsNewTenant = false; - } - } - - if (!string.IsNullOrEmpty(config.TenantName)) - { - config.SiteName = _name; - config.Aliases = _urls; - config.DefaultTheme = _themetype; - config.DefaultContainer = _containertype; - config.DefaultAdminContainer = _admincontainertype; - config.SiteTemplate = _sitetemplatetype; - - ShowProgressIndicator(); - - var installation = await InstallationService.Install(config); - if (installation.Success) - { - var aliasname = config.Aliases.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)[0]; - var uri = new Uri(NavigationManager.Uri); - NavigationManager.NavigateTo(uri.Scheme + "://" + aliasname, true); - } - else - { - await logger.LogError("Error Creating Site {Error}", installation.Message); - AddModuleMessage(installation.Message, MessageType.Error); - } + AddModuleMessage(string.Format(Localizer["Message.SiteName.InUse"], string.Join(", ", duplicates.ToArray())), MessageType.Warning); } } else { - AddModuleMessage(string.Format(Localizer["Message.SiteName.InUse"], string.Join(", ", duplicates.ToArray())), MessageType.Warning); + AddModuleMessage(Localizer["Message.Required.Tenant"], MessageType.Warning); } } else { - AddModuleMessage(Localizer["Message.Required.Tenant"], MessageType.Warning); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } } diff --git a/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor b/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor index 257a690d..3422bb69 100644 --- a/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor +++ b/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor @@ -5,126 +5,130 @@ @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer - - -
-
- -
- +
+ + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
@Localizer["Register"] +
-
- -
- +

+ + + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
-
-
@Localizer["Register"] -
-
-
-

- - - -
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-

-   - @Localizer["Access.ApiFramework"]  - -
- +

+   + @Localizer["Access.ApiFramework"]  + + + + @code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; + private ElementReference form; + private bool validated = false; private string _version = string.Empty; private string _clrversion = string.Empty; private string _osversion = string.Empty; @@ -163,22 +167,31 @@ private async Task SaveConfig() { - try + validated = true; + var interop = new Interop(JSRuntime); + if (await interop.FormValid(form)) { - var settings = new Dictionary(); - settings.Add("runtime", _runtime); - settings.Add("rendermode", _rendermode); - settings.Add("detailederrors", _detailederrors); - settings.Add("logginglevel", _logginglevel); - settings.Add("swagger", _swagger); - settings.Add("packageservice", _packageservice); - await SystemService.UpdateSystemInfoAsync(settings); - AddModuleMessage(Localizer["Success.UpdateConfig.Restart"], MessageType.Success); + try + { + var settings = new Dictionary(); + settings.Add("runtime", _runtime); + settings.Add("rendermode", _rendermode); + settings.Add("detailederrors", _detailederrors); + settings.Add("logginglevel", _logginglevel); + settings.Add("swagger", _swagger); + settings.Add("packageservice", _packageservice); + await SystemService.UpdateSystemInfoAsync(settings); + AddModuleMessage(Localizer["Success.UpdateConfig.Restart"], MessageType.Success); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Saving Configuration"); + AddModuleMessage(Localizer["Error.UpdateConfig"], MessageType.Error); + } } - catch (Exception ex) + else { - await logger.LogError(ex, "Error Saving Configuration"); - AddModuleMessage(Localizer["Error.UpdateConfig"], MessageType.Error); + AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } @@ -212,4 +225,4 @@ await logger.LogError(ex, "Error On Register"); } } -} \ No newline at end of file +}