Name
sn_app_eng_studio.AESUserIntake
Description
No description available
Script
var AESUserIntake = Class.create();
AESUserIntake.prototype = {
initialize: function() {
},
/**
* Inserts user during user provisioning process
* 1. If user does not exist on dev instance, create the user with same sys_id and add user to AES group
* 2. If user already exists on dev instance, activate user and then add them to the AES group
* @param {Object} user
* @param {string} permissionType
* @returns {Object}
*/
userInsert: function(user, permissionType) {
var userRecord = this.getUser(user.user_name, user.sys_id);
var insertGroupResult;
// Check to see if user currently exists:
if (userRecord) {
userRecord.setValue('active', true);
userRecord.update();
var userRecordSysID = userRecord.getUniqueValue();
insertGroupResult = this.groupInsert(userRecordSysID, permissionType);
return {
insertUserResult: null,
insertGroupResult: insertGroupResult,
action: 'update', // Describes if user was added or updated
};
} else {
throw new sn_ws_err.ServiceError()
.setStatus(404)
.setMessage(gs.getMessageLang("Requested user not found.", "en"))
.setDetail(gs.getMessage("The user with the given user_name was not found."));
}
},
/**
* Adds user to App Engine Studio Users Or App Engine Studio Users Limited group
* @param {string} userSysID
* @param {string} permissionType
* @returns {string}
*/
groupInsert: function(userSysID, permissionType) {
var groupSysId = {
full: CreatorStudioConstants.groups.AES_USER_GROUP_ID,
limited: CreatorStudioConstants.groups.AES_USER_LIMITED_GROUP_ID,
};
var sysUserGR = new GlideRecord('sys_user_grmember');
sysUserGR.addQuery('user', userSysID);
sysUserGR.addQuery('group', groupSysId[permissionType]);
sysUserGR.query();
var insertResult = null;
if(!sysUserGR.next()) {
sysUserGR.user = userSysID;
sysUserGR.group = groupSysId[permissionType];
insertResult = sysUserGR.insert();
if (!insertResult) {
throw new sn_ws_err.ServiceError()
.setStatus(500)
.setMessage(gs.getMessageLang("Error adding user to App Engine Studio Users group", "en"))
.setDetail(gs.getMessage("Error adding user to App Engine Studio Users group on developer instance: ", JSON.stringify(e)));
}
}
return insertResult;
},
getUser: function(userName, sysId) {
var sysUserGR = new GlideRecord('sys_user');
// queries for user_name AND sys_id
sysUserGR.addQuery('user_name', userName);
var q1 = sysUserGR.addQuery('sys_id', sysId);
sysUserGR.query();
sysUserGR.next();
// OR user_name
q1.addOrCondition('user_name', userName);
sysUserGR.query();
sysUserGR.next();
return sysUserGR.isValidRecord() ? sysUserGR : null;
},
type: 'AESUserIntake'
};
Sys ID
747cfb87c7300110408bc8d6f2c260f8