Delete Role Public from Reports

purdue
Kilo Sage

Hello,

I need to delete the Public Role from any reports in sys_report.   I have tried one report below but is not working.   Any assistance is appreciated.

 

var reportrole = 'roles=public^title=App Service IDs';
var report= new GlideRecord('sys_report');
report.addEncodedQuery(reportrole);
report.query();
while(report.next()){
report.roles.deleteRecord();
report.update;
}
Thanks,
Chad
1 ACCEPTED SOLUTION

Mr_X
Mega Guru

Hi @purdue ,
Please use below script.

var reportrole = 'roles=public^title=App Service IDs';
var report = new GlideRecord('sys_report');
report.addEncodedQuery(reportrole);
report.query();
while (report.next()) {
    if (report.roles.indexOf('public') > -1) {
        var arr = report.roles.split(',');
        arr.pop('public');
        report.roles = arr.join(',');
        report.update();
    }
}
If my solution works, please hit the Thumb Icon and mark as Correct!

View solution in original post

3 REPLIES 3

Mr_X
Mega Guru

Hi @purdue ,
Please use below script.

var reportrole = 'roles=public^title=App Service IDs';
var report = new GlideRecord('sys_report');
report.addEncodedQuery(reportrole);
report.query();
while (report.next()) {
    if (report.roles.indexOf('public') > -1) {
        var arr = report.roles.split(',');
        arr.pop('public');
        report.roles = arr.join(',');
        report.update();
    }
}
If my solution works, please hit the Thumb Icon and mark as Correct!

purdue
Kilo Sage

Thanks Mr X.   That works.  I appreciate the help.

Frank59
Tera Contributor

Any chance you have a way to add a role to all reports?  Say ITIL, snc_internal