Ask Search:
Seth PartridgeSeth Partridge 

How to grant edit access to all contacts but not allow user to change owner?

We'd like to enable all users to be able to edit the fields on all contacts in our org, even if someone else owns the contact.

We only want contact's owner to be able to change the owner on the contact record.

How do I do this?

Thanks for your help! :)
Best Answer chosen by Seth Partridge
Tommaso BolisTommaso Bolis
You can create a validation rule
 
AND(
ISCHANGED(OwnerId),
PRIORVALUE(OwnerId)! =OwnerId
)

 

All Answers

Tommaso BolisTommaso Bolis
You can create a validation rule
 
AND(
ISCHANGED(OwnerId),
PRIORVALUE(OwnerId)! =OwnerId
)

 
This was selected as the best answer
Deepak AnandDeepak Anand
I guess you just have to remove the Transfer Record permission from the Profile and you shall be all set.

Ref: https://help.salesforce.com/articleView?id=account_owner.htm&type=5
Seth PartridgeSeth Partridge

@deepak - thanks for the idea. If users have modify all permission checked for Contacts, and do not have transfer record permission checked, they still can transfer the records. Do you have any other ideas?

@tommaso - great idea! This is the rule I ended up with based on what you suggested. :) I was thinking only about sharing rules and for some reason didn't think about Validation as a solution.

AND(
    ISCHANGED(OwnerId),
    PRIORVALUE(OwnerId)!=OwnerId,
    OwnerId!= Account.Co_Account_Manager__c ,
    OwnerId!= Account.Owner.Id,
    $Profile.Name <>"System Administrator"
)

Tommaso BolisTommaso Bolis
Yuo're welcome! Happy trailblazing!