Name
sn_hr_core.hr_TemplateOwnership
Description
Helps in determining who can edit templates
Script
var hr_TemplateOwnership = Class.create();
hr_TemplateOwnership.prototype = {
initialize: function() {
},
canCreateTemplate: function() {
var roles = new hr_Utils();
// if a life cycle admin, can edit regardless of owning group
var isHrAdmin = roles.checkUserHasRole('sn_hr_core.admin');
if (isHrAdmin)
return true;
var isActivityWriter = roles.checkUserHasRole('sn_hr_le.activity_writer');
return isActivityWriter;
},
canEditTemplate: function(template) {
var roles = new hr_Utils();
// if a life cycle admin, can edit regardless of owning group
var isHrAdmin = roles.checkUserHasRole('sn_hr_core.admin');
if (isHrAdmin)
return true;
// if not an activity writer, then cannot edit, regardless of owning group
var isActivityWriter = roles.checkUserHasRole('sn_hr_le.activity_writer');
if (!isActivityWriter)
return false;
// has activity writer, but must be in group too
if (template.owning_group) {
var grGroups = new GlideRecord('sys_user_grmember');
grGroups.addQuery('user', gs.getUserID());
grGroups.addQuery('group', template.getValue('owning_group'));
grGroups.query();
var isMemberOf = grGroups.next();
return isMemberOf;
}
return template.isNewRecord();
},
getAllowableGroups : function() {
var groups = [];
// if has role sn_hr_core.admin, return all active groups
// otherwise return groups that user is a direct member of
var roles = new hr_Utils();
var isHrAdmin = roles.checkUserHasRole('sn_hr_core.admin');
if (isHrAdmin)
return 'active=true';
var grGroupMember = new GlideRecord('sys_user_grmember');
grGroupMember.addQuery('group.active', true);
grGroupMember.addQuery('user', gs.getUserID());
grGroupMember.query();
while (grGroupMember.next())
groups.push(grGroupMember.getValue('group'));
return 'sys_idIN' + groups.join(',');
},
type: 'hr_TemplateOwnership'
};
Sys ID
4752335353a03200d901a7e6a11c08b6