MIFOSX-1670 : Modified Code for Role Functionality

@vishwasbabu 

This is complete new pull request for role functionality
why is this change necessary?