+ Start a Discussion

How to get context user in a controller variable.

I want to get the context user of a page for which I am writing a controller because I want the page to appear one way for a certain type of user and another for a different type of user.


This is an example of what I had in mind.


String showForm = ($User.Role.Name = 'License Control') ;


There seems to be something wrong with my syntax, and I am having trouble finding a solution in the documentation. 



Best Answer chosen by Admin (Salesforce Developers) 

Check the user in your controller and not the page. Then hide/show different parts of the page based on the user.


In your controller you can get the user data this way.


public MyCustomController(){ Id userRoleId = UserInfo.getUserRoleId(); UserRole theUsersRoleName = [select Id, Name from UserRole where Id = : userRoleId Limit 1].Name; }

 Check out the UserInfo Methods in the Apex Docs.