-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @if (_providertype != "")
+ {
+
+ }
+ @if (_providertype == AuthenticationProviderTypes.OpenIDConnect)
+ {
+
+
+ }
+ @if (_providertype == AuthenticationProviderTypes.OAuth2)
+ {
+
+
+
+
+
+
+
+
+ }
+ @if (_providertype != "")
+ {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
@@ -353,7 +357,7 @@ else
private string _allowregistration;
private string _allowsitelogin;
private string _twofactor;
- private string _cookietype;
+ private string _cookiename;
private string _minimumlength;
private string _uniquecharacters;
@@ -378,6 +382,7 @@ else
private string _scopes;
private string _pkce;
private string _redirecturl;
+ private string _identifierclaimtype;
private string _emailclaimtype;
private string _domainfilter;
private string _createusers;
@@ -401,41 +406,45 @@ else
var settings = await SettingService.GetSiteSettingsAsync(PageState.Site.SiteId);
_allowregistration = PageState.Site.AllowRegistration.ToString();
_allowsitelogin = SettingService.GetSetting(settings, "LoginOptions:AllowSiteLogin", "true");
- _twofactor = SettingService.GetSetting(settings, "LoginOptions:TwoFactor", "false");
- _cookietype = SettingService.GetSetting(settings, "LoginOptions:CookieType", "domain");
- _minimumlength = SettingService.GetSetting(settings, "IdentityOptions:Password:RequiredLength", "6");
- _uniquecharacters = SettingService.GetSetting(settings, "IdentityOptions:Password:RequiredUniqueChars", "1");
- _requiredigit = SettingService.GetSetting(settings, "IdentityOptions:Password:RequireDigit", "true");
- _requireupper = SettingService.GetSetting(settings, "IdentityOptions:Password:RequireUppercase", "true");
- _requirelower = SettingService.GetSetting(settings, "IdentityOptions:Password:RequireLowercase", "true");
- _requirepunctuation = SettingService.GetSetting(settings, "IdentityOptions:Password:RequireNonAlphanumeric", "true");
+ if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
+ {
+ _twofactor = SettingService.GetSetting(settings, "LoginOptions:TwoFactor", "false");
+ _cookiename = SettingService.GetSetting(settings, "LoginOptions:CookieName", ".AspNetCore.Identity.Application");
- _maximumfailures = SettingService.GetSetting(settings, "IdentityOptions:Lockout:MaxFailedAccessAttempts", "5");
- _lockoutduration = TimeSpan.Parse(SettingService.GetSetting(settings, "IdentityOptions:Lockout:DefaultLockoutTimeSpan", "00:05:00")).TotalMinutes.ToString();
+ _minimumlength = SettingService.GetSetting(settings, "IdentityOptions:Password:RequiredLength", "6");
+ _uniquecharacters = SettingService.GetSetting(settings, "IdentityOptions:Password:RequiredUniqueChars", "1");
+ _requiredigit = SettingService.GetSetting(settings, "IdentityOptions:Password:RequireDigit", "true");
+ _requireupper = SettingService.GetSetting(settings, "IdentityOptions:Password:RequireUppercase", "true");
+ _requirelower = SettingService.GetSetting(settings, "IdentityOptions:Password:RequireLowercase", "true");
+ _requirepunctuation = SettingService.GetSetting(settings, "IdentityOptions:Password:RequireNonAlphanumeric", "true");
- _providertype = SettingService.GetSetting(settings, "ExternalLogin:ProviderType", "");
- _providername = SettingService.GetSetting(settings, "ExternalLogin:ProviderName", "");
- _authority = SettingService.GetSetting(settings, "ExternalLogin:Authority", "");
- _metadataurl = SettingService.GetSetting(settings, "ExternalLogin:MetadataUrl", "");
- _authorizationurl = SettingService.GetSetting(settings, "ExternalLogin:AuthorizationUrl", "");
- _tokenurl = SettingService.GetSetting(settings, "ExternalLogin:TokenUrl", "");
- _userinfourl = SettingService.GetSetting(settings, "ExternalLogin:UserInfoUrl", "");
- _clientid = SettingService.GetSetting(settings, "ExternalLogin:ClientId", "");
- _clientsecret = SettingService.GetSetting(settings, "ExternalLogin:ClientSecret", "");
- _toggleclientsecret = Localizer["Show"];
- _scopes = SettingService.GetSetting(settings, "ExternalLogin:Scopes", "");
- _pkce = SettingService.GetSetting(settings, "ExternalLogin:PKCE", "false");
- _redirecturl = PageState.Uri.Scheme + "://" + PageState.Alias.Name + "/signin-" + _providertype;
- _emailclaimtype = SettingService.GetSetting(settings, "ExternalLogin:EmailClaimType", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress");
- _domainfilter = SettingService.GetSetting(settings, "ExternalLogin:DomainFilter", "");
- _createusers = SettingService.GetSetting(settings, "ExternalLogin:CreateUsers", "true");
+ _maximumfailures = SettingService.GetSetting(settings, "IdentityOptions:Lockout:MaxFailedAccessAttempts", "5");
+ _lockoutduration = TimeSpan.Parse(SettingService.GetSetting(settings, "IdentityOptions:Lockout:DefaultLockoutTimeSpan", "00:05:00")).TotalMinutes.ToString();
- _secret = SettingService.GetSetting(settings, "JwtOptions:Secret", "");
- _togglesecret = Localizer["Show"];
- _issuer = SettingService.GetSetting(settings, "JwtOptions:Issuer", PageState.Uri.Scheme + "://" + PageState.Alias.Name);
- _audience = SettingService.GetSetting(settings, "JwtOptions:Audience", "");
- _lifetime = SettingService.GetSetting(settings, "JwtOptions:Lifetime", "20");
+ _providertype = SettingService.GetSetting(settings, "ExternalLogin:ProviderType", "");
+ _providername = SettingService.GetSetting(settings, "ExternalLogin:ProviderName", "");
+ _authority = SettingService.GetSetting(settings, "ExternalLogin:Authority", "");
+ _metadataurl = SettingService.GetSetting(settings, "ExternalLogin:MetadataUrl", "");
+ _authorizationurl = SettingService.GetSetting(settings, "ExternalLogin:AuthorizationUrl", "");
+ _tokenurl = SettingService.GetSetting(settings, "ExternalLogin:TokenUrl", "");
+ _userinfourl = SettingService.GetSetting(settings, "ExternalLogin:UserInfoUrl", "");
+ _clientid = SettingService.GetSetting(settings, "ExternalLogin:ClientId", "");
+ _clientsecret = SettingService.GetSetting(settings, "ExternalLogin:ClientSecret", "");
+ _toggleclientsecret = SharedLocalizer["ShowPassword"];
+ _scopes = SettingService.GetSetting(settings, "ExternalLogin:Scopes", "");
+ _pkce = SettingService.GetSetting(settings, "ExternalLogin:PKCE", "false");
+ _redirecturl = PageState.Uri.Scheme + "://" + PageState.Alias.Name + "/signin-" + _providertype;
+ _identifierclaimtype = SettingService.GetSetting(settings, "ExternalLogin:IdentifierClaimType", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier");
+ _emailclaimtype = SettingService.GetSetting(settings, "ExternalLogin:EmailClaimType", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress");
+ _domainfilter = SettingService.GetSetting(settings, "ExternalLogin:DomainFilter", "");
+ _createusers = SettingService.GetSetting(settings, "ExternalLogin:CreateUsers", "true");
+
+ _secret = SettingService.GetSetting(settings, "JwtOptions:Secret", "");
+ _togglesecret = SharedLocalizer["ShowPassword"];
+ _issuer = SettingService.GetSetting(settings, "JwtOptions:Issuer", PageState.Uri.Scheme + "://" + PageState.Alias.Name);
+ _audience = SettingService.GetSetting(settings, "JwtOptions:Audience", "");
+ _lifetime = SettingService.GetSetting(settings, "JwtOptions:Lifetime", "20"); }
}
private List
Search(string search)
@@ -507,39 +516,44 @@ else
var settings = await SettingService.GetSiteSettingsAsync(site.SiteId);
settings = SettingService.SetSetting(settings, "LoginOptions:AllowSiteLogin", _allowsitelogin, false);
- settings = SettingService.SetSetting(settings, "LoginOptions:TwoFactor", _twofactor, false);
- settings = SettingService.SetSetting(settings, "LoginOptions:CookieType", _cookietype, true);
- settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequiredLength", _minimumlength, true);
- settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequiredUniqueChars", _uniquecharacters, true);
- settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequireDigit", _requiredigit, true);
- settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequireUppercase", _requireupper, true);
- settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequireLowercase", _requirelower, true);
- settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequireNonAlphanumeric", _requirepunctuation, true);
+ if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
+ {
+ settings = SettingService.SetSetting(settings, "LoginOptions:TwoFactor", _twofactor, false);
+ settings = SettingService.SetSetting(settings, "LoginOptions:CookieName", _cookiename, true);
- settings = SettingService.SetSetting(settings, "IdentityOptions:Lockout:MaxFailedAccessAttempts", _maximumfailures, true);
- settings = SettingService.SetSetting(settings, "IdentityOptions:Lockout:DefaultLockoutTimeSpan", TimeSpan.FromMinutes(Convert.ToInt64(_lockoutduration)).ToString(), true);
+ settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequiredLength", _minimumlength, true);
+ settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequiredUniqueChars", _uniquecharacters, true);
+ settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequireDigit", _requiredigit, true);
+ settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequireUppercase", _requireupper, true);
+ settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequireLowercase", _requirelower, true);
+ settings = SettingService.SetSetting(settings, "IdentityOptions:Password:RequireNonAlphanumeric", _requirepunctuation, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:ProviderType", _providertype, false);
- settings = SettingService.SetSetting(settings, "ExternalLogin:ProviderName", _providername, false);
- settings = SettingService.SetSetting(settings, "ExternalLogin:Authority", _authority, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:MetadataUrl", _metadataurl, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:AuthorizationUrl", _authorizationurl, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:TokenUrl", _tokenurl, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:UserInfoUrl", _userinfourl, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:ClientId", _clientid, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:ClientSecret", _clientsecret, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:Scopes", _scopes, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:PKCE", _pkce, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:EmailClaimType", _emailclaimtype, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:DomainFilter", _domainfilter, true);
- settings = SettingService.SetSetting(settings, "ExternalLogin:CreateUsers", _createusers, true);
+ settings = SettingService.SetSetting(settings, "IdentityOptions:Lockout:MaxFailedAccessAttempts", _maximumfailures, true);
+ settings = SettingService.SetSetting(settings, "IdentityOptions:Lockout:DefaultLockoutTimeSpan", TimeSpan.FromMinutes(Convert.ToInt64(_lockoutduration)).ToString(), true);
- if (!string.IsNullOrEmpty(_secret) && _secret.Length < 16) _secret = (_secret + "????????????????").Substring(0, 16);
- settings = SettingService.SetSetting(settings, "JwtOptions:Secret", _secret, true);
- settings = SettingService.SetSetting(settings, "JwtOptions:Issuer", _issuer, true);
- settings = SettingService.SetSetting(settings, "JwtOptions:Audience", _audience, true);
- settings = SettingService.SetSetting(settings, "JwtOptions:Lifetime", _lifetime, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:ProviderType", _providertype, false);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:ProviderName", _providername, false);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:Authority", _authority, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:MetadataUrl", _metadataurl, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:AuthorizationUrl", _authorizationurl, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:TokenUrl", _tokenurl, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:UserInfoUrl", _userinfourl, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:ClientId", _clientid, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:ClientSecret", _clientsecret, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:Scopes", _scopes, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:PKCE", _pkce, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:IdentifierClaimType", _identifierclaimtype, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:EmailClaimType", _emailclaimtype, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:DomainFilter", _domainfilter, true);
+ settings = SettingService.SetSetting(settings, "ExternalLogin:CreateUsers", _createusers, true);
+
+ if (!string.IsNullOrEmpty(_secret) && _secret.Length < 16) _secret = (_secret + "????????????????").Substring(0, 16);
+ settings = SettingService.SetSetting(settings, "JwtOptions:Secret", _secret, true);
+ settings = SettingService.SetSetting(settings, "JwtOptions:Issuer", _issuer, true);
+ settings = SettingService.SetSetting(settings, "JwtOptions:Audience", _audience, true);
+ settings = SettingService.SetSetting(settings, "JwtOptions:Lifetime", _lifetime, true);
+ }
await SettingService.UpdateSiteSettingsAsync(settings, site.SiteId);
await SettingService.ClearSiteSettingsCacheAsync();
@@ -561,13 +575,20 @@ else
private void ProviderTypeChanged(ChangeEventArgs e)
{
_providertype = (string)e.Value;
- if (_providertype == AuthenticationProviderTypes.OpenIDConnect)
+ if (string.IsNullOrEmpty(_providername))
{
- _scopes = "openid,profile,email";
- }
- else
- {
- _scopes = "";
+ if (_providertype == AuthenticationProviderTypes.OpenIDConnect)
+ {
+ _scopes = "openid,profile,email";
+ _identifierclaimtype = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier";
+ _emailclaimtype = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress";
+ }
+ else
+ {
+ _scopes = "";
+ _identifierclaimtype = "sub";
+ _emailclaimtype = "email";
+ }
}
_redirecturl = PageState.Uri.Scheme + "://" + PageState.Alias.Name + "/signin-" + _providertype;
StateHasChanged();
@@ -583,12 +604,12 @@ else
if (_clientsecrettype == "password")
{
_clientsecrettype = "text";
- _toggleclientsecret = Localizer["Hide"];
+ _toggleclientsecret = SharedLocalizer["HidePassword"];
}
else
{
_clientsecrettype = "password";
- _toggleclientsecret = Localizer["Show"];
+ _toggleclientsecret = SharedLocalizer["ShowPassword"];
}
}
@@ -597,12 +618,12 @@ else
if (_secrettype == "password")
{
_secrettype = "text";
- _togglesecret = Localizer["Hide"];
+ _togglesecret = SharedLocalizer["HidePassword"];
}
else
{
_secrettype = "password";
- _togglesecret = Localizer["Show"];
+ _togglesecret = SharedLocalizer["ShowPassword"];
}
}
}
diff --git a/Oqtane.Client/Resources/Modules/Admin/Login/Index.resx b/Oqtane.Client/Resources/Modules/Admin/Login/Index.resx
index af56fc05..67dbbfed 100644
--- a/Oqtane.Client/Resources/Modules/Admin/Login/Index.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/Login/Index.resx
@@ -189,12 +189,6 @@
Username:
-
- Hide
-
-
- Show
-
Use
@@ -225,4 +219,10 @@
In Order To Link Your External Login With Your User Account You Must Verify Your Identity. Please Check Your Email For Further Instructions.
+
+ Your External Login Was Denied Access. Please Contact Your Administrator For Further Instructions.
+
+
+ Your External Login Failed. Please Contact Your Administrator For Further Instructions.
+
\ No newline at end of file
diff --git a/Oqtane.Client/Resources/Modules/Admin/Site/Index.resx b/Oqtane.Client/Resources/Modules/Admin/Site/Index.resx
index c20813b4..1007685f 100644
--- a/Oqtane.Client/Resources/Modules/Admin/Site/Index.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/Site/Index.resx
@@ -324,10 +324,4 @@
Aliases
-
- Hide
-
-
- Show
-
\ No newline at end of file
diff --git a/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx b/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx
index eccd3c38..6eabb548 100644
--- a/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/UserProfile/Index.resx
@@ -219,10 +219,4 @@
Delete ALL Notifications
-
- Hide
-
-
- Show
-
\ No newline at end of file
diff --git a/Oqtane.Client/Resources/Modules/Admin/Users/Add.resx b/Oqtane.Client/Resources/Modules/Admin/Users/Add.resx
index 37bf3f31..810f2b9d 100644
--- a/Oqtane.Client/Resources/Modules/Admin/Users/Add.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/Users/Add.resx
@@ -1,4 +1,4 @@
-
+