diff --git a/errormessages.go b/errormessages.go index 27a71fd..ed56fae 100644 --- a/errormessages.go +++ b/errormessages.go @@ -10,6 +10,8 @@ const ( MsgErrCannotCreate = "cannotCreate" MsgErrUnkownHTTPContentType = "unkownHTTPContentType" MsgErrUnknownResponseStatusCode = "unknownResponseStatusCode" + MsgErrExistingValue = "existing" + MsgErrReadOnly = "readOnlyValue" EvenParams = "key/valParametersShouldBeEven" TokenProviderURL = "tokenProviderURL" @@ -18,4 +20,6 @@ const ( Response = "response" AccessToken = "accessToken" OIDCProvider = "OIDCProvider" + UserOrEmail = "UsernameOrEmail" + Username = "username" ) diff --git a/keycloak_client.go b/keycloak_client.go index fb245dd..659183e 100644 --- a/keycloak_client.go +++ b/keycloak_client.go @@ -412,6 +412,17 @@ func whitelistErrors(statusCode int, message string) error { Status: statusCode, Message: "keycloak." + message, } + // update account in back-office or self-service + case (message == "User exists with same username or email") || (message == "usernameExistsMessage") || (message == "emailExistsMessage"): + return commonhttp.Error{ + Status: statusCode, + Message: "keycloak." + MsgErrExistingValue + "." + UserOrEmail, + } + case message == "readOnlyUsernameMessage": + return commonhttp.Error{ + Status: statusCode, + Message: "keycloak." + MsgErrReadOnly + "." + Username, + } default: return HTTPError{ HTTPStatus: statusCode,