1. Create a hierarchy custom setting like below
- As per the above screen shot create a custom field of data type check box
Note: App Setup > Develop > Custom Settings (To open custom settings)
2. Click on Manage button
- As per the above screen shot set the OWD value for isBypassed as 'False'
- Add two users by clicking on New button, set isBypassed as 'True' for one user and 'False' for another user
3. Create a page called 'Change Owner'
<apex:page tabStyle="Case" standardController="Case"> <apex:form > <apex:sectionHeader title="Change Case Owner"/> <p>This screen allows you to transfer cases from one user or queue to another. When you transfer ownership, the new owner will own:</p> <ul><li>all open activities (tasks and events) for this case that are assigned to the current owner</li></ul> <p>Note that completed activities will not be transferred. Open activities will not be transferred when assigning this case to a queue.</p> <apex:pageBlock mode="Edit"> <apex:pageBlockButtons location="bottom"> <apex:commandButton value="Save" action="{!save}"/> <apex:commandButton value="Cancel"/> </apex:pageBlockButtons> <br/><apex:pageBlockSection title="Select New Owner" collapsible="false" columns="3"> <apex:pageBlockSectionItem > <apex:outputLabel value="Owner"></apex:outputLabel> <apex:inputField value="{!Case.ownerId}"/> </apex:pageBlockSectionItem> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page>
- Design a visualforce page from the above code
4. Create custom button for the Case Object like below:
if ({!$Setup.Disable_Change_Owner__c.isBypassed__c}) { window.location = "/apex/changeowner?id={!Case.Id}"; } else { alert("You don't have the permission"); }
- Use the above script for OnClick JavaScript
- Add the above custom button 'Change Owner' to Case Page Layout.
- "{!$Setup.Disable_Change_Owner__c.isBypassed__c}" is the way to refer the hierarchy custom setting in JavaScript.
- According to the above button one user can access the page and navigate to the 'Case Owner' page
- Another user is not able to access the page, it will throw JavaScript alert
Note: Above scenario helps to create custom change owner functionality for the case record
***
We can create multiple fields for the hierarchy custom settings and we can assign different values according to the business requirement.
***