Reader small image

You're reading from  Visualforce Development Cookbook

Product typeBook
Published inSep 2013
Reading LevelIntermediate
PublisherPackt
ISBN-139781782170808
Edition1st Edition
Languages
Right arrow
Author (1)
Keir Bowden
Keir Bowden
author image
Keir Bowden

Keir Bowden is a 30-year veteran of the IT industry from the United Kingdom. After spending the early part of his career in the defence industry, he moved into investment banking systems, implementing systems for Banque Nationale de Paris, CitiGroup, and Deutsche Bank. In the late 1990s, Keir moved into Internet technologies, leading to a development of the order management and payment handling systems of one of the first European Internet shopping sites. Keir started working with Force.com in late 2008 and has been recognized multiple times by Salesforce as an MVP for his contribution and leadership in the community. In 2012, he became the first certified technical architect outside of Salesforce in EMEA, and he has served as a judge on several EMEA Technical Architect Certification Review Boards. Keir is also a prominent blogger on Apex, Visualforce and Lightning Components solutions; and a regular speaker at events such as Dreamforce, Cloud World Forum, and Salesforce World Tour. Keir is a chief technical officer of BrightGena—a Salesforce.com Platinum Cloud Alliance Partner in the United Kingdom, where he is responsible for the present and future technical strategies. Keir acted as a technical reviewer for the CRM Admin Cookbook before accepting the challenge of authoring this book, which also happens to be his first.
Read more about Keir Bowden

Right arrow

Adding a launch page


When a Visualforce page is deployed to production, only users whose profiles have been given access via the security settings will be able to access the page. Any user with a profile that does not have access will receive an Insufficient Privileges error, which is not a good experience and can lead users to think that the page is crashing.

A better solution is to check whether the user has access to the page and if they do not, present a user-friendly message that explains the situation and directs them to where they can get more help.

In this recipe we will create a launch page accessible to all profiles that checks if the user has access to the protected page. If the user has access, they will be transferred to the protected page, while if they don't, they will receive an explanatory message.

How to do it…

This recipe requires a second user login. Ensure that this is not created with the System Administrator profile, as that profile has access to all Visualforce pages regardless of the security settings.

  1. Navigate to the Visualforce setup page by clicking on Your Name | Setup | Develop | Pages.

  2. Click on the New button.

  3. Enter Protected in the Label field.

  4. Accept the default Protected that is automatically generated for the Name field.

  5. Paste the contents of the Protected.page file from the code download into the Visualforce Markup area.

  6. Click on the Save button to save the page.

  7. Navigate to the Visualforce setup page by clicking on Your Name | Setup | Develop | Pages.

  8. Locate the entry for the Protected page and click on the Security link.

  9. On the resulting page, ensure that the profile of your second user does not have access to the Protected page.

  10. Log in using your second user credentials and attempt to access any account record. You will receive an error message as shown in the following screenshot:

  11. Next, create the launch page controller by navigating to the Apex Classes setup page by clicking on Your Name | Setup | Develop | Apex Classes.

  12. Click on the New button.

  13. Paste the contents of the LaunchController.cls Apex class from the code download into the Apex Class area.

  14. Click on the Save button.

  15. Navigate to the Visualforce setup page by clicking on Your Name | Setup | Develop | Pages.

  16. Click on the New button.

  17. Enter Launch in the Label field.

  18. Accept the default Launch that is automatically generated for the Name field.

  19. Paste the contents of the Launch.page file from the code download into the Visualforce Markup area.

  20. Click on the Save button to save the page.

  21. Navigate to the Visualforce setup page by clicking on Your Name | Setup | Develop | Pages.

  22. Locate the entry for the Setup page and click on the Security link.

  23. On the resulting page, give access to all of the profiles and click on the Save button.

How it works…

Log in using your second user credentials and open the following URL in your browser: https://<instance>/apex/Launch.

Here, <instance> is the Salesforce instance specific to your organization, for example, na6.salesforce.com.

The resulting page displays a friendly error message detailing that your user does not have access to the page, and renders a clickable link to request access.

The Launch page declaration contains an action attribute.

<apex:page controller="LaunchController" action="{!allowAccess}">

This invokes the allowAccess action method in the controller before the page is rendered.

public PageReference allowAccess()
{
PageReference pr=Page.Protected;
   try
   {
       pr.getContent();
   	}
   catch (Exception e)
   {
       pr=null;
   }
        
        return pr;
    }

The allowAccess method attempts to retrieve the contents of the protected page programmatically. If the contents are retrieved successfully, it returns the page reference for the Protected page, which redirects the user to that page. If an exception occurs, the method returns null, which leaves the user on the Launch page and displays the friendly error message.

Previous PageNext Page
You have been reading a chapter from
Visualforce Development Cookbook
Published in: Sep 2013Publisher: PacktISBN-13: 9781782170808
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Author (1)

author image
Keir Bowden

Keir Bowden is a 30-year veteran of the IT industry from the United Kingdom. After spending the early part of his career in the defence industry, he moved into investment banking systems, implementing systems for Banque Nationale de Paris, CitiGroup, and Deutsche Bank. In the late 1990s, Keir moved into Internet technologies, leading to a development of the order management and payment handling systems of one of the first European Internet shopping sites. Keir started working with Force.com in late 2008 and has been recognized multiple times by Salesforce as an MVP for his contribution and leadership in the community. In 2012, he became the first certified technical architect outside of Salesforce in EMEA, and he has served as a judge on several EMEA Technical Architect Certification Review Boards. Keir is also a prominent blogger on Apex, Visualforce and Lightning Components solutions; and a regular speaker at events such as Dreamforce, Cloud World Forum, and Salesforce World Tour. Keir is a chief technical officer of BrightGena—a Salesforce.com Platinum Cloud Alliance Partner in the United Kingdom, where he is responsible for the present and future technical strategies. Keir acted as a technical reviewer for the CRM Admin Cookbook before accepting the challenge of authoring this book, which also happens to be his first.
Read more about Keir Bowden