There are three things to use caution about this syntax:
- Case Sensitive – The syntax must be inRole exactly: lower case “i” and upper case “R”
- Do not encapsulate the whole syntax – This syntax always returns a value, either true or false which mostly would not cause any problems for example in sslogic or visibility conditions. However, encapsulation of the syntax will return a string which is useless if not equaled to another string.
- Do not encapsulate the role name – Use the exact role name without quotes.
|Wrong:||"@owner.inRole(Organization Contact)@" - don't put quotes around the variable. It's a true/false value, not a string.|
|Wrong:||@me.inRole("Organization Contact")@ - don't put quotes around the role name. The role name is Organization Contact, not quote Organization Contact unquote.|
|Wrong:||"@me.inRole("Organization Contact")@" - don't put quotes around both things...|
|Wrong:||@me.InRole(Organization Contact)@ OR @me.inrole(Organization Contact)@ - use the correct capitalization, inRole|
|Wrong:||@me.inRole(rolename1 OR rolename2)@ - instead of this, use @me.inRole(rolename1)@ OR @me.inRole(rolename2)@|
The syntax for the test of when a contact is not in a role is to precede the inRole variable with an exclamation point ("!").
An example is that !@me.inRole(Administrator)@ will return true only when the current user is not in the role of Administrator.