Skip to content

Commit

Permalink
MID-2858 setting MP locale according to user's preferredLanguage or l…
Browse files Browse the repository at this point in the history
…ocale attribute
  • Loading branch information
KaterynaHonchar committed Apr 9, 2016
1 parent 6481d7f commit 05800a3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
Expand Up @@ -361,19 +361,27 @@ public static Locale getLocale(UserType user) {
MidPointPrincipal principal = SecurityUtils.getPrincipalUser();
Locale locale = null;
if (principal != null) {
if (user == null){
if (user == null) {
PrismObject<UserType> userPrismObject = principal.getUser().asPrismObject();
user = userPrismObject == null ? null : userPrismObject.asObjectable();
}
if (user != null && user.getPreferredLanguage() != null &&
!user.getPreferredLanguage().trim().equals("")) {
locale = LocaleUtils.toLocale(user.getPreferredLanguage());
try {
locale = LocaleUtils.toLocale(user.getPreferredLanguage());
} catch (Exception ex) {
LOGGER.debug("Error occurred while getting user locale, " + ex.getMessage());
}
}
if (locale != null && MidPointApplication.containsLocale(locale)) {
return locale;
} else {
String userLocale = user != null ? user.getLocale() : null;
locale = userLocale == null ? null : LocaleUtils.toLocale(userLocale);
try {
locale = userLocale == null ? null : LocaleUtils.toLocale(userLocale);
} catch (Exception ex) {
LOGGER.debug("Error occurred while getting user locale, " + ex.getMessage());
}
if (locale != null && MidPointApplication.containsLocale(locale)) {
return locale;
} else {
Expand Down
Expand Up @@ -187,12 +187,13 @@ public void finishProcessing(AjaxRequestTarget target, OperationResult result) {
finishPreviewProcessing(target, result);
return;
}
if (result.isSuccess()) {
if (result.isSuccess() && getDelta() != null && getDelta().getOid().equals(SecurityUtils.getPrincipalUser().getOid())) {
UserType user = null;
if (getObjectWrapper().getObject().asObjectable() instanceof UserType){
user = (UserType) getObjectWrapper().getObject().asObjectable();
}
Session.get().setLocale(WebModelServiceUtils.getLocale(user));
LOGGER.debug("Using {} as locale", getLocale());
}
boolean userAdded = getDelta() != null && getDelta().isAdd() && StringUtils.isNotEmpty(getDelta().getOid());
if (!isKeepDisplayingResults() && getProgressReporter().isAllSuccess()
Expand Down

0 comments on commit 05800a3

Please sign in to comment.