Skip to content

Instantly share code, notes, and snippets.

@icerge
Last active July 21, 2022 08:41
Show Gist options
  • Save icerge/0aa0e03ef64f384320fbe30ff012848c to your computer and use it in GitHub Desktop.
Save icerge/0aa0e03ef64f384320fbe30ff012848c to your computer and use it in GitHub Desktop.
Changing User preferences (language, timezone)

There is a business rule - Change Own Profile - sys_script.do?sys_id=e1d271450a0a0b440098a39d7d36903e It reflects the following user profile changes to user session:

  • Language
  • Timezone
  • Time format
  • Date format It runs if user changes own profile. The script uses API which isn't documented though. The interesting thing is that language session changes doesn't apply through session API calls.

Generally, the following system objects are used to manage user preferences:

  • GlideSession
  • GlideUser
  • User preference 'user.language'
// Date format
gs.getSession().setDateFormat(current.date_format);
gs.getUser().setDateFormat(current.date_format);

// Time format
gs.getSession().setTimeFormat(current.time_format);
gs.getUser().setTimeFormat(current.time_format);

// Time zone
gs.getSession().setTimeZoneName(current.time_zone);

// Language
var user = gs.getUser();
user.setPreference('user.language', language);
user.savePreferences();

// Language (invalid code, but interesting)
gs.getSession().setLanguage(current.preferred_language);
gs.getSession().loadUserByID(gs.getUser().getID());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment