Name
sn_cd.cd_MobileContentSecurityUtils
Description
No description available
Script
var cd_MobileContentSecurityUtils = Class.create();
cd_MobileContentSecurityUtils.prototype = {
initialize: function() {},
/* function returns user access to Mobile Content
* @param record sys_id of Mobile Content
* @return boolean true if user have access
* false if user does not have access
*/
isContentScheduledForUser: function(contentId) {
//if User has Scheduled Mobile Content
var gdtNow = new GlideDateTime();
var user = gs.getUserID();
var grContentVisibility = new GlideRecord('sn_cd_content_visibility');
grContentVisibility.addActiveQuery();
grContentVisibility.addQuery('content.active', true);
grContentVisibility.addQuery('content.sys_class_name', 'INSTANCEOF', 'sn_cd_content_mobile');
grContentVisibility.addNullQuery('approvers').addOrCondition('state', 'published');
grContentVisibility.addNullQuery('availability_start_date').addOrCondition('availability_start_date', '<=', gdtNow);
grContentVisibility.addNullQuery('availability_end_date').addOrCondition('availability_end_date', '>=', gdtNow);
grContentVisibility.addQuery('content', contentId);
grContentVisibility.query();
if (grContentVisibility.next()){
if (this.isValidScheduledContentUser(grContentVisibility, user))
return true;
}
//if User has running campaign
var isCampaignPluginActive = GlidePluginManager.isActive('com.sn_content_automation');
if (isCampaignPluginActive) {
var campainContentSysIds = new sn_ca.ca_CampaignMobileUtils().getMobileContentSysIds();
for (var i = 0; i < campainContentSysIds.length; i++)
if (campainContentSysIds[i] == contentId)
return true;
}
return false;
},
/* function returns user access to Link Content
* @param record sys_id of Link Content
* @return boolean true if user have access
* false if user does not have access
*/
isLinkScheduledForUser: function(linkId) {
//if User is using link in Scheduled Mobile Content
var gdtNow = new GlideDateTime();
var user = gs.getUserID();
var grContentVisibility = new GlideRecord('sn_cd_content_visibility');
grContentVisibility.addActiveQuery();
grContentVisibility.addQuery('content.active', true);
grContentVisibility.addQuery('content.sys_class_name', 'INSTANCEOF', 'sn_cd_content_mobile');
grContentVisibility.addNullQuery('approvers').addOrCondition('state', 'published');
grContentVisibility.addNullQuery('availability_start_date').addOrCondition('availability_start_date', '<=', gdtNow);
grContentVisibility.addNullQuery('availability_end_date').addOrCondition('availability_end_date', '>=', gdtNow);
grContentVisibility.addQuery('content.content_type.category', 'mobile_content');
grContentVisibility.addQuery('content.ref_sn_cd_content_mobile.url_link.sys_id', linkId).addOrCondition('content.ref_sn_cd_content_mobile.video_link.sys_id', linkId);
grContentVisibility.query();
if (grContentVisibility.next()){
if (this.isValidScheduledContentUser(grContentVisibility, user))
return true;
}
//if User is using link for campaign
var isCampaignPluginActive = GlidePluginManager.isActive('com.sn_content_automation');
if (isCampaignPluginActive) {
var campainContentSysIds = new sn_ca.ca_CampaignMobileUtils().getMobileContentSysIds();
var mobileContent = new GlideRecord('sn_cd_content_mobile');
mobileContent.addQuery('sys_id', 'IN', campainContentSysIds);
mobileContent.addQuery('url_link.sys_id', linkId).addOrCondition('video_link.sys_id', linkId);
mobileContent.query();
if(mobileContent.next())
return true;
}
return false;
},
isValidScheduledContentUser: function(scheduledContent, user){
var cd_Audience = new sn_cd.cd_Audience();
return (scheduledContent.getValue('use_adhoc_users') == true && scheduledContent.getValue('users').indexOf(user) != -1) || (scheduledContent.getValue('use_adhoc_users') != true && cd_Audience.isUserInAudience(scheduledContent.getValue("audience"), user));
},
type: 'cd_MobileContentSecurityUtils'
};
Sys ID
17467060c3731010a0b3ec4b7d40ddba