I want to render one page block section on the page to certain user only.

<apex:pageBlockSectionItem rendered="{!$User.Name == opp.Security_Officer_Name__c}">
<apex:inputfield />

above code gives me an error for $User.Name Error Message "Field Name does not exist. Check spelling." and starange part is if I use $User.FirstName it works fine.

Does anyone know reason behind this? Any help is appreciated.

Many Thanks

1 Answer 1


That is strange, but my best guess is that the Name field is actually a composite field which gets some magic treatment in the backend. I notice that both FirstName and Lastname work, so perhaps you should use something like
{!$User.FirstName &' '& $User.LastName == opp.Security_Officer_Name__c}
or find a way to match on something other than Name...

  • 1
    your code helped me matching the first name and last name of the user. I don't need suffix name or anything from that Name field composition. So I better of using it your suggested way. Many thanks
    – Ricky
    Commented Jan 27, 2016 at 17:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .