Hi,
Just curious is it possible for widget controller to hide or disable based on certain role or group programmatically?
You can use the props.user object to get the user information from the Portal. I have found this method to be unreliable in Developer Edition 1.14. It was supposedly fixed in 1.16, although I have not seen official confirmation or tested it. Once you have the Portal information, the easiest way to hide the Widget Controller would be to target it with CSS and use display: none.