Name
global.PPMUserProfiles
Description
No description available
Script
var PPMUserProfiles = Class.create();
PPMUserProfiles.prototype = {
initialize: function() {
this.appLiveProfile = new GlideappLiveProfile();
},
getSingleProfile: function(userId) {
if(userId) {
var profile = this.getProfiles([userId])[0];
return profile;
} else {
return {};
}
},
getGroupName: function(groupId){
var gr=new GlideRecord('sys_user_group');
gr.get(groupId);
return gr.getDisplayValue();
},
getGroupProfiles : function(memberIds) {
PPMDebug.log("Into PPMUserProfiles.getProfiles -> " + memberIds.join(","));
var self = this;
var mems = [], missedMemberIds = [];
for (var i = 0; i < memberIds.length; i++) {
var profile = {};
var userId = memberIds[i];
var profileId = this.appLiveProfile.getID(userId);
if(JSUtil.notNil(profileId)) {
var name = this.getGroupName(userId);
profile = this.generateProfileFromCache(userId, profileId, name);
if(profile.imgUrl && profile.imgUrl.indexOf("default") > 0) {
profile.imgUrl = this.getAvatarFromDB(userId, 'sys_user_group');
}
mems.push(profile);
} else {
missedMemberIds.push(memberIds[i]);
}
}
PPMDebug.log("Into PPMUserProfiles.getProfiles From Cache -> " + (new JSON()).encode(mems));
PPMDebug.log("Into PPMUserProfiles.getProfiles Missed Memebers -> " + (new JSON()).encode(missedMemberIds));
if(missedMemberIds.length > 0) {
for (var i = 0; i < missedMemberIds.length; i++) {
var grUser = new GlideRecord('sys_user_group');
grUser.get(missedMemberIds[i]);
var name = grUser.getValue("name");
var profile = self.generateProfile(missedMemberIds[i], 'sys_user_group', missedMemberIds[i], name);
mems.push(profile);
}
}
return mems;
},
getProfiles : function(memberIds) {
PPMDebug.log("Into PPMUserProfiles.getProfiles -> " + memberIds.join(","));
var self = this;
var mems = [], missedMemberIds = [];
for (var i = 0; i < memberIds.length; i++) {
var profile = {};
var userId = memberIds[i];
var profileId = this.appLiveProfile.getID(userId);
if(JSUtil.notNil(profileId)) {
var name = this.appLiveProfile.getName(profileId);
profile = this.generateProfileFromCache(userId, profileId, name);
if(profile.imgUrl && profile.imgUrl.indexOf("default") > 0) {
profile.imgUrl = this.getAvatarFromDB(userId, 'sys_user');
}
mems.push(profile);
} else {
missedMemberIds.push(memberIds[i]);
}
}
PPMDebug.log("Into PPMUserProfiles.getProfiles From Cache -> " + (new JSON()).encode(mems));
PPMDebug.log("Into PPMUserProfiles.getProfiles Missed Memebers -> " + (new JSON()).encode(missedMemberIds));
if(missedMemberIds.length > 0) {
for (var i = 0; i < missedMemberIds.length; i++) {
var grUser = new GlideRecord('sys_user');
grUser.get(missedMemberIds[i]);
var name = grUser.getValue("name");
var profile = self.generateProfile(missedMemberIds[i], 'sys_user', missedMemberIds[i], name);
mems.push(profile);
}
}
return mems;
},
getProfile: function (userId, userName) {
PPMDebug.log("Into PPMUserProfiles.getProfile -> " + userId + " - " + userName);
var name = String(userName);
var profile = {};
profile.id = userId;
profile.text = name;
profile.imgUrl = '';
name = name.replace(/[^\w\s\.]\w+[^\w\s\.]|[^\w\s\.]/, "");
name = name.replace(/\s+/, ' ');
var parts = name.split(' ');
if(parts[0] && parts[1]) {
profile.initials = (parts[0].substring(0, 1) + parts[1].substring(0,1)).toUpperCase();
} else {
profile.initials = parts[0].substring(0, 1).toUpperCase();
}
return profile;
},
getAvatarFromDB: function (profileId, profileTable) {
PPMDebug.log("Into PPMUserProfiles.getAvatarFromDB -> " + profileId + " - " + profileTable);
var gr = new GlideRecord('sys_attachment');
gr.addQuery('table_sys_id', profileId);
gr.addQuery('table_name', 'ZZ_YY' + profileTable);
gr.query();
if ( gr.next() )
return (gr.sys_id + '.iix');
return "";
},
generateProfile: function(userId, profileTable, profileId, name) {
PPMDebug.log("Into PPMUserProfiles.generateProfile -> " + userId + " - " + profileTable + " - " + profileId + " - " + name);
var profile = this.getProfile(userId, name);
profile.imgUrl = this.getAvatarFromDB(profileId, profileTable);
return profile;
},
generateProfileFromCache: function (userId, profileId, name) {
PPMDebug.log("Into PPMUserProfiles.generateProfileFromCache -> " + userId + " - " + profileId + " - " + name);
var profile = this.getProfile(userId, name);
var avatar = this.appLiveProfile.getAvatar(profileId);
profile.imgUrl = avatar;
return profile;
},
type: 'PPMUserProfiles'
};
Sys ID
18c890a00b013200acc30e7363673a6e