1
0
mirror of https://github.com/bitwarden/server.git synced 2024-11-25 12:45:18 +01:00

added localization variables to sso account controller (#930)

* added localization variables to sso account controller

* Used the correct method for server side localization
This commit is contained in:
Addison Beck 2020-09-11 19:36:49 -04:00 committed by GitHub
parent 8c7e7d1f6b
commit 1880889325
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 13 deletions

View File

@ -164,7 +164,7 @@ namespace Bit.Sso.Controllers
}
else
{
throw new Exception("No domain_hint provided.");
throw new Exception(_i18nService.T("NoDomainHintProvided"));
}
}
@ -178,7 +178,7 @@ namespace Bit.Sso.Controllers
if (!Url.IsLocalUrl(returnUrl) && !_interaction.IsValidReturnUrl(returnUrl))
{
throw new Exception("invalid return URL");
throw new Exception(_i18nService.T("InvalidReturnUrl"));
}
var props = new AuthenticationProperties
@ -205,7 +205,7 @@ namespace Bit.Sso.Controllers
IdentityServerConstants.ExternalCookieAuthenticationScheme);
if (result?.Succeeded != true)
{
throw new Exception("External authentication error");
throw new Exception(_i18nService.T("ExternalAuthenticationError"));
}
// Debugging
@ -325,7 +325,7 @@ namespace Bit.Sso.Controllers
externalUser.FindFirst("uid") ??
externalUser.FindFirst("upn") ??
externalUser.FindFirst("eppn") ??
throw new Exception("Unknown userid");
throw new Exception(_i18nService.T("UnknownUserId"));
// Remove the user id claim so we don't include it as an extra claim if/when we provision the user
var claims = externalUser.Claims.ToList();
@ -339,7 +339,7 @@ namespace Bit.Sso.Controllers
var ssoConfig = await _ssoConfigRepository.GetByOrganizationIdAsync(orgId);
if (ssoConfig == null || !ssoConfig.Enabled)
{
throw new Exception("Organization not found or SSO configuration not enabled");
throw new Exception(_i18nService.T("OrganizationOrSsoConfigNotFound"));
}
var user = await _userRepository.GetBySsoUserAsync(providerUserId, orgId);
@ -360,7 +360,7 @@ namespace Bit.Sso.Controllers
else
{
// TODO: support non-org (server-wide) SSO in the future?
throw new Exception($"SSO provider, '{provider}' is not an organization id");
throw new Exception(_i18nService.T("SSOProviderIsNotAnOrgId", provider));
}
User existingUser = null;
@ -368,7 +368,7 @@ namespace Bit.Sso.Controllers
{
if (string.IsNullOrWhiteSpace(email))
{
throw new Exception("Cannot find email claim");
throw new Exception(_i18nService.T("CannotFindEmailClaim"));
}
existingUser = await _userRepository.GetByEmailAsync(email);
}
@ -377,7 +377,7 @@ namespace Bit.Sso.Controllers
var split = userIdentifier.Split(",");
if (split.Length < 2)
{
throw new Exception("Invalid user identifier.");
throw new Exception(_i18nService.T("InvalidUserIdentifier"));
}
var userId = split[0];
var token = split[1];
@ -395,7 +395,7 @@ namespace Bit.Sso.Controllers
}
else
{
throw new Exception("Supplied userId and token did not match.");
throw new Exception(_i18nService.T("UserIdAndTokenMismatch"));
}
}
}
@ -406,7 +406,7 @@ namespace Bit.Sso.Controllers
var organization = await _organizationRepository.GetByIdAsync(orgId.Value);
if (organization == null)
{
throw new Exception($"Could not find organization for '{orgId}'");
throw new Exception(_i18nService.T("CouldNotFindOrganization", orgId));
}
if (existingUser != null)
@ -425,7 +425,7 @@ namespace Bit.Sso.Controllers
if (availableSeats < 1)
{
// No seats are available
throw new Exception($"No seats available for organization, '{organization.Name}'");
throw new Exception(_i18nService.T("NoSeatsAvailable", organization.Name));
}
}
@ -434,7 +434,7 @@ namespace Bit.Sso.Controllers
orgId.Value, email, false);
if (existingOrgUserCount > 0)
{
throw new Exception($"User, '{email}', has already been invited to this organization, '{organization.Name}'");
throw new Exception(_i18nService.T("UserAlreadyInvited", email, organization.Name));
}
}
}
@ -445,7 +445,7 @@ namespace Bit.Sso.Controllers
if (existingUser != null)
{
// TODO: send an email inviting this user to link SSO to their account?
throw new Exception("User already exists, please link account to SSO after logging in");
throw new Exception(_i18nService.T("NoDomainHintProvided"));
}
// Create user record

View File

@ -487,4 +487,43 @@
<value>Artifact</value>
<comment>A SAML binding type, Artifact</comment>
</data>
<data name="NoDomainHintProvided" xml:space="preserve">
<value>No domain_hint provided.</value>
</data>
<data name="InvalidReturnUrl" xml:space="preserve">
<value>invalid return URL</value>
</data>
<data name="ExternalAuthenticationError" xml:space="preserve">
<value>External authentication error</value>
</data>
<data name="UnknownUserId" xml:space="preserve">
<value>Unknown userid</value>
</data>
<data name="OrganizationOrSsoConfigNotFound" xml:space="preserve">
<value>Organization not found or SSO configuration not enabled</value>
</data>
<data name="SSOProviderIsNotAnOrgId" xml:space="preserve">
<value>SSO provider, {0} is not an organization id</value>
</data>
<data name="CannotFindEmailClaim" xml:space="preserve">
<value>Cannot find email claim</value>
</data>
<data name="InvalidUserIdentifier" xml:space="preserve">
<value>Invalid user identifier.</value>
</data>
<data name="UserIdAndTokenMismatch" xml:space="preserve">
<value>Supplied userId and token did not match.</value>
</data>
<data name="CouldNotFindOrganization" xml:space="preserve">
<value>Could not find organization for '{0}'</value>
</data>
<data name="NoSeatsAvailable" xml:space="preserve">
<value>No seats available for organization, '{0}'</value>
</data>
<data name="UserAlreadyInvited" xml:space="preserve">
<value>User, '{0}', has already been invited to this organization, '{1}'</value>
</data>
<data name="NoDomainHintProvided" xml:space="preserve">
<value>User already exists, please link account to SSO after logging in</value>
</data>
</root>