Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Roles Not Removing from User

yana7
Tera Contributor

I'm trying to remove roles from a user, but they're not being removed.

  1. [Image 1] This is the user I want to remove roles from.

    yana7_3-1719547173800.png

     

  2. [Image 2] I've removed the roles in the Edit Role section and saved.

    yana7_4-1719547191895.png

     

  3. [Image 3] The roles are still listed in the Related list tab.

    yana7_5-1719547211477.png

     

When I check the User tab from the Role itself, the user account is still there.

yana7_6-1719547231708.png

yana7_8-1719547295090.png

What should I do  to Remove Roles?

1 ACCEPTED SOLUTION

Hi @yana7 ,

 

Please try the below in background script:

var userRole = new GlideRecord('sys_user_has_role');
userRole.get('61737f1bc36602103869d64d050131ee'); //Replace SysId of the role relationship in the [sys_user_has_role] table
userRole.inherited = false; //Updating it to false, then only we will be able to delete it.
userRole.update();
userRole.deleteRecord();

 

Highlighted sys_id is what you need to replace in the above code as per your requirement

SN_Learn_0-1719815887609.png

 

Note: Please try in non prod first and check and it is not recommended to run background script in Prod.

 

 

Mark this as Helpful / Accept the Solution if this helps

 

 

----------------------------------------------------------------
Mark this as Helpful / Accept the Solution if this helps.

View solution in original post

13 REPLIES 13

Vaishnavi Lathk
Mega Sage
Mega Sage

Hi,

Try below script-

var userRole = new GlideRecord("sys_user_has_role");
userRole.addQuery('role','PUT SYS ID OF ROLE');
userRole.addQuery('user','PUT SYS ID OF USER FOR WHICH ROLE NEEDS TO BE REMOVED');
userRole.query();
if(userRole.next()){
userRole.deleteRecord();
}

Regards,

Vaishnavi L

 

This doesn't work

Hi @yana7 ,

 

Please try the below in background script:

var userRole = new GlideRecord('sys_user_has_role');
userRole.get('61737f1bc36602103869d64d050131ee'); //Replace SysId of the role relationship in the [sys_user_has_role] table
userRole.inherited = false; //Updating it to false, then only we will be able to delete it.
userRole.update();
userRole.deleteRecord();

 

Highlighted sys_id is what you need to replace in the above code as per your requirement

SN_Learn_0-1719815887609.png

 

Note: Please try in non prod first and check and it is not recommended to run background script in Prod.

 

 

Mark this as Helpful / Accept the Solution if this helps

 

 

----------------------------------------------------------------
Mark this as Helpful / Accept the Solution if this helps.

yana7
Tera Contributor

it works,Thank you very much friend