Take the 2-minute tour ×
Salesforce Stack Exchange is a question and answer site for Salesforce administrators, implementation experts, developers and anybody in-between. It's 100% free, no registration required.

I'm trying to cut down on the number of profiles in one of my Orgs. One way we're using profiles is to enforce business rules, like "Only a ZZZ user may close opportunities as won," which we do by checking the Profile ID:

<validationRules>
    <fullName>Changing_an_Opp_to_Closed_Won</fullName>
    <active>true</active>
    <description>Only the system admin and ZZZ users
                 can update the stage to closed won</description>
    <errorConditionFormula>AND(
                             AND(ISCHANGED(StageName), IsClosed=True, IsWon=True),
                             NOT(OR($User.ProfileId == '00eA0000000RhUw', 
                                    $User.ProfileId  == '00eA00000013Vro'))
                           )
    </errorConditionFormula>
    <errorMessage>You do not have the necessary access to mark an opportunity
                  &quot;Closed Won&quot; Please ask a ZZZ to do it for you.
    </errorMessage>
</validationRules>

For almost all other purposes, ZZZ users are identical to other users in their department, and I'd like to combine the profiles while making a permission set for ZZZ users. But I can't figure out what I'd do with validation rules like these. Is there a way to reference permissions/permission sets from formulas? If not, are there other approaches you've seen for this?

share|improve this question
add comment

1 Answer

up vote 4 down vote accepted

There is an open Idea to allow the usage of Users Permission Sets in Formulas, Validation Rules and Lookup Filters.

Alternatively, you could create a Field on the User object to store the permission set name. It could be comma separated for multiple permission sets on a single user. This field would then be used in the validation rule. Source idea from j020.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.