The following lines show an example of JavaScript code to assign specific roles and groups to users and administrators:
admin_users = ['admin@myawesomecompany.com',
'john.doe@myawesomecompany.com',
];
// Push company user roles
// Creating an empty array is necessary
// user.roles contains the roles attributed with the profile mapper
// user.roles does not contain the user's manually-attributed roles, or default roles
user.roles = []
if (admin_users.includes(attributes.emailAddress)) {
user.roles.push("ADMIN",
"BETA_USER",
"ANALYTICS_USER", "DEBUG_USER",
"PERSONAL_BOOK_USER",
"PERSONAL_BOOK_SHARE_USER", "HTML_EXPORT_USER",
"PDF_EXPORT_USER",
"SAVED_SEARCH_USER", "COLLECTION_USER",
"PRINT_USER");
} else {
user.roles.push("PERSONAL_BOOK_USER",
"PERSONAL_BOOK_SHARE_USER",
"HTML_EXPORT_USER",
"PDF_EXPORT_USER",
"SAVED_SEARCH_USER", "COLLECTION_USER",
"PRINT_USER");
}
// Push company user roles
// Creating an empty array is necessary
// user.roles contains the roles attributed with the profile mapper
// user.roles does not contain the user's manually-attributed roles, or default roles
user.groups = []
user.groups =
function () {
if (admin_users.includes(attributes.emailAddress))
return ['Documentation Admin']
if (attributes.emailAddress.endsWith('@myawesomecompany.com'))
return ['Internal']
else
return ['External']
}();
attributescorresponds to the user values coming from the authentication realm.-
Defining a user's roles, groups, and tags with the profile mapper only affects the user's roles, groups, and tags defined with the profile mapper. It is not possible to use the profile mapper to:
- Change a user's default role.
- Change a user's roles, groups, or tags attributed manually.
Type console. to see the full list of logging methods. Methods include console.log or console.assert. The logs are only visible to the administrator in the Profile mappers assistant drawer. Fluid Topics does not collect the logs.