Checking logged in user in server script in widget
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-03-2022 02:02 AM
Hi guys.
I'm trying to get the current logged in user in an if statement within the server script of my widget, i've tried the below and other ways but i'm stumped:
data.user = gs.getUserID();
if(record.requester == data.user){
data.showMyDelegated = true;
}
//Have also tried:
if(record.requester == gs.getUserID()){
data.showMyDelegated = true;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-03-2022 02:06 AM
Hello Andrew ,
what is stored in record ?
i am assuming it must be a json
try to put info ('My record'+JSON.stringify(record));
and see if the requestor element is present in that JSON .
if yes use the correct JSON element which must be "requestor"
PLEASE MARK MY ANSWER CORRECT IF IT HELP YOU
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-03-2022 02:07 AM
Hello!
the record.requester is as follow:
record.requester = gr.getDisplayValue('caller_id');
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-03-2022 02:10 AM
OKAY I THINK WE NEED TO see the full script can you post the script here please ?
also you are trying to get the name of the caller and comparing with used sys_id which might be the issue .
Replace with below and try comparing now
record.requester = gr.getValue('caller_id');
PLEASE MARK MY ANSWER CORRECT IF IT HELPS YOU
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-03-2022 02:26 AM
no problem - here's the full script:
(function() {
var localInput = input; //to safeguard pullution of "input" via BR or other scripts
var alsoRequest = false;
data.filterMsg = gs.getMessage("Search active shares");
if (localInput && localInput.view === 'open')
data.filterMsg = gs.getMessage("Search active shares");
else if (localInput && localInput.view === 'close')
data.filterMsg = gs.getMessage("Search inactive shares");
function getField(gr, name) {
var f = {};
var id = gr.getUniqueValue();
gr = new GlideRecord(gr.getRecordClassName());
gr.get(id);
f.display_value = gr.getDisplayValue(name);
f.value = gr.getValue(name);
var ge = gr.getElement(name);
if (ge) {
var ed = ge.getED();
if (ed)
f.type = ed.getInternalType();
f.label = ge.getLabel();
}
return f;
}
//get the filter record
function getMyRequestSysIds() {
var ids = {};
var rq_filter = new GlideRecord('request_filter');
rq_filter.addActiveQuery();
if (rq_filter.isValidField('applies_to'))
rq_filter.addQuery('applies_to', 23);
rq_filter.query();
while(rq_filter.next()) {
var tableName = rq_filter.table_name;
if (rq_filter.isValidField('table'))
tableName = rq_filter.table;
var gr = new GlideRecord(tableName);
gr.addQuery(rq_filter.filter);
gr.query();
if (tableName == 'sc_request')
alsoRequest = true;
while(gr.next()) {
var portalSettings = {};
portalSettings.page = rq_filter.portal_page.nil()? '' : rq_filter.portal_page.getDisplayValue() + '';
portalSettings.primary_display = rq_filter.primary_display.nil()? '': rq_filter.primary_display + '';
portalSettings.secondary_displays = rq_filter.secondary_display.nil()? '': rq_filter.secondary_display + '';
ids[gr.sys_id + ''] = portalSettings;
}
}
return ids;
}
// retrieve the request's
var myRequestMap = getMyRequestSysIds();
var taskIDs = Object.keys(myRequestMap);
var gr = new GlideRecordSecure('incident');
if (localInput && localInput.view === 'open')
gr.addQuery('u_share_active', true);
else if (localInput && localInput.view === 'close')
gr.addQuery('u_share_active', false);
else
gr.addQuery('u_share_active', true);
gr.orderByDesc('sys_updated_on');
if (localInput && localInput.search_text) {
var req = [];
var task = new GlideRecordSecure('task');
task.addQuery('123TEXTQUERY321', localInput.search_text);
if (localInput && localInput.view === 'open')
task.addEncodedQuery("u_share_active=true");
else if (localInput && localInput.view === 'close')
task.addEncodedQuery("u_share_active=false");
else
task.addEncodedQuery("u_share_active=true");
task.addQuery('sys_id', taskIDs);
task.query();
while(task.next())
req.push(task.getUniqueValue());
if (alsoRequest) {
var ritmGR = new GlideRecord('sc_req_item');
if (localInput && localInput.view === 'open')
ritmGR.addQuery('request.u_share_active', true);
else if (localInput && localInput.view === 'close')
ritmGR.addQuery('request.u_share_active', false);
else
ritmGR.addQuery('request.u_share_active', true);
ritmGR.addQuery('123TEXTQUERY321', localInput.search_text);
ritmGR.addQuery('request.sys_id', taskIDs);
ritmGR.query();
while(ritmGR.next())
req.push(ritmGR.getValue('request'));
}
gr.addQuery('sys_id', req);
}
else
gr.addQuery('sys_id', taskIDs);
gr.query();
data.request = {};
data.request.req_list = [];
var recordIdx = 0;
var limit = options.items_per_page? options.items_per_page : 15;
if (localInput && localInput.action == 'fetch_more')
data.lastLimit = localInput.lastLimit + limit;
else
data.lastLimit = limit;
data.hasMore = false;
while (recordIdx != data.lastLimit && gr.next()) {
var portalSettings = myRequestMap[gr.getUniqueValue()];
if (typeof portalSettings == 'undefined')
portalSettings = {};
var record = {};
record.sys_id = gr.getValue('sys_id');
if (gr.getRecordClassName() == 'sc_request') {
var ritm = new GlideRecord("sc_req_item");
ritm.addQuery("request", gr.getUniqueValue());
ritm.query();
if (ritm.getRowCount() == 0)
continue;
if (ritm.getRowCount() > 1)
record.display_field = gs.getMessage("{0} requested items", ritm.getRowCount());
else {
ritm.next();
record.display_field = ritm.cat_item.getDisplayValue() || ritm.getDisplayValue("short_description");
}
record.url = { id: portalSettings.page? portalSettings.page: 'sc_request', table: 'sc_request', sys_id: record.sys_id};
} else {
record.display_field = portalSettings.primary_display ? getField(gr, portalSettings.primary_display).display_value : getField(gr, 'number').display_value;
record.url = { id: portalSettings.page? portalSettings.page :'ticket', table: gr.getRecordClassName(), sys_id: record.sys_id};
}
if (portalSettings.secondary_displays) {
record.secondary_displays = [];
portalSettings.secondary_displays.split(",").forEach(function (sDisplay){
record.secondary_displays.push(getField(gr, sDisplay));
});
}
else
record.secondary_displays = getField(gr, 'short_description');
record.updated_on = gr.getValue('sys_updated_on');
record.state = gr.getDisplayValue('state');
record.matter_num = gr.getDisplayValue('u_client_matter_number');
record.share_size = gr.getDisplayValue('u_folder_size');
record.partner = gr.getDisplayValue('u_matter_partner');
record.expiry = gr.getDisplayValue('u_share_expiry');
record.link = gr.getDisplayValue('u_share_link');
record.requester = gr.getDisplayValue('caller_id');
record.table = gr.getTableName();
record.sys_id = gr.getUniqueValue();
if((recordIdx !== 0) && (data.lastLimit - limit === recordIdx))
record.highlight = true;
data.request.req_list.push(record);
recordIdx++;
data.user = gs.getUserID();
if(record.requester == data.user){
data.showMyDelegated = true;
}
}
if (gr.next())
data.hasMore = true;
})();