Module: Core/User

Represents application's current user object.

The user object contains settings that are fetched from the server and whatever settings the application wants to store.

// Sample user object that is fetched from the server:
{
     id: "1",
     full_name: "Administrator",
     user_name: "admin",
     preferences: {
         timezone: "America\/Los_Angeles",
         datepref: "m\/d\/Y",
         timepref: "h:ia"
     }
}

// Use it like this:
const User = require('core/user');
var userId = User.get('id');
// Set app specific settings
User.set('sortBy:Cases', 'case_number');

// Bind event handlers if necessary
User.on('change', function() {
    // Do your thing
});

Members


<static> lastState :Core/User.LastState

Type:

Methods


<inner> getAcls()

Gets ACLs. Precondition: either the user is logged in or an _reset call has set the user manually.

Returns:

Dictionary of ACLs.

Type
Object

<inner> getCurrency()

Returns an object with all the user's currency preferences. If the user hasn't specified any preferences, these default to system currency preferences.

Returns:

The user's currency preferences.

Type
Object

<inner> getLanguage()

Retrieves the current user's preferred language.

Returns:

The current user's preferred language.

Type
string

<inner> getPreference(name)

Gets a preference by name.

Parameters:
Name Type Description
name string

The preference name.

To Do:
  • support category parameter for preferences.
Returns:

The value of the user preference, or name if no corresponding preference value exists.

Type
*

<inner> load( [callback])

Retrieves and sets the user preferences.

Parameters:
Name Type Argument Description
callback function <optional>

Callback called when update completes.


<inner> loadLocale( [callback])

Loads the current user's locale.

Parameters:
Name Type Argument Description
callback function <optional>

Called when loading the locale completes.


<inner> setPreference(name, value)

Set preference by name. Will only be stored locally.

Parameters:
Name Type Description
name string

The preference name.

value *

The new preference value.

To Do:
  • support category parameter for preferences.
  • support save preferences on server.
Returns:

The instance of this user.

Type
Object

<inner> update(method, payload, callback)

Updates the user.

Parameters:
Name Type Description
method string

Operation type: either 'read', 'update', 'create', or 'delete'. {@see SUGAR.Api#me}.

payload Object

An object literal with payload.

callback Object

Callback called when update completes. In case of error, App.error.handleHttpError will be called here.


<inner> updateLanguage(language [, callback])

Updates the user's preferred language.

Parameters:
Name Type Argument Description
language string

Language key.

callback function <optional>

Callback called when update completes.


<inner> updatePreferences(attributes [, callback])

Updates the user's preferences.

Parameters:
Name Type Argument Description
attributes Object

The attributes to update for user.

callback function <optional>

Callback called when update completes.


<inner> updateProfile(attributes [, callback])

Updates the user's profile.

Parameters:
Name Type Argument Description
attributes Object

The model attributes to update for user.

callback function <optional>

Callback called when update completes.