Requirement:-
Hierarchy Manager (Profile = Manager) (Create, Update & Delete the Assign Object Record)
|—> Team lead (Create, Update for Assign Object) (See their own record and high priority assign object record)
|—> Executive team lead (Create, Update for Assign Object) (See their own record)
Solution:-
You want to apply both object level & record level security on Assign Object
For Object Level Security, we firstly need to restrict the access means only providing create, update in the
Profile Manager –> Making a permission set in which we’re providing the delete access of assign object and then
add this permission set to Hierarchy Manager User.
There is new feature called Restriction rule (https://developer.salesforce.com/docs/atlas.en-us.restriction_rules.meta/restriction_rules/restriction_rules_about.htm#:~:text=Restriction%20rules%20let%20you%20enhance,t%20essential%20to%20their%20work)
in current release, you can look into that.
For Field Level Security
Setup–> Role Hierarchy –> Making 3 roles (Given below at top) and assign it to respective user with same profile Manager (But Add permission set to Hierarchy Manager for delete access)
Setup–> Sharing Setting–> Edit –> Assign –> Internal User –> Private –> in right side check the grant using role hierarchy
Setup –> Assign Object –> Make picklist–> Priority Type–> Add (High Priority, Low Priority by default= High Priority)
Setup–> Sharing Setting–> Scroll below to Assign Object Sharing Setting Permission –> New –>
(1st) Add Label & API Name –>
(2nd) Based on record Field If Priority_Type__c = High Priority
(3rd) Share it to Roles = Team Lead & Executive Team Lead (Or you can make a public in which this role will added)
Now click on save & you’re done