Data shows when page accessed from internally, but not on public site - salesforce

I have been following the salesforce Recruiting App tutorial, and reached the section on creating a public site:
http://www.salesforce.com/us/developer/docs/fundamentals/Content/adg_composite_app_public_sites.htm
I have built a simple page to display open jobs as described here:
http://www.salesforce.com/us/developer/docs/fundamentals/Content/adg_composite_app_create_public_jobs_try_it_out.htm
This is displaying the open jobs correctly when I view it through our "internal" URL: https://c.ap1.visual.force.com/apex/PublicJobs
But when I view this same page through our "external" URL: http://servian-developer-edition.ap1.force.com/careers, the page still renders, except that now the list of jobs is empty.
I don't think this is a permissions error, as if so it would surely prompt me to log in. What do I need to do to make the data show on the "external" URL?

Make sure the "guest" user for the site has Read permission for the Positions object on its profile. You can't access the profile for the guest user through the normal Profile list page in Setup; instead, click on the Public Access Settings button from your site's detail page. On the profile, go all the way to the bottom of the page and make sure the Read permission is checked. If its still not working, ensure the Field Level Security settings also correct for that profile. The FLS settings are controlled about mid-way down on the same page.

In addition to above, ensure the object, if it is a custom object is in "Deployed" status. This fixed the issue for us.
Additional Information (from help.salesforce.com):
While developing a custom object or external object, you might not want users to see and interact with it. Because users might get frustrated with changes in layout or lose data when you delete custom fields, control visibility of the new object until you are finished.
Use the Deployment Status setting in the object definition to control when users can see and use the object and its associated custom tab, related lists, and reports.
Choose “In Development” as the Deployment Status when first creating your custom object or external object. Doing so hides it from users while you are designing and testing it. Only users with the “Customize Application” permission can see the object tab, search results, related lists, and report data types.
Change the Deployment Status to “Deployed” when you want to allow all users to use the object and any associated custom tab, related lists, and reports.
If you make more enhancements after deploying a custom object or external object, you can change the Deployment Status back to “In Development.”

Related

How to change the Read Access to the users on custom Visualforce page in Salesforce

The question is about the custom visualforce page in Salesforce. The page is created for getting contacts, opportunity, loans all are at a single dynamic link on the account named "Manage portal Access" Which comes under "Customer Portal Access" Tab like details and related list under "Account" Tab.The page was created to Manage the customer account, contacts and opportunities relationship. The page contains Email, Role, Last Login and a Toggle button as "Enabled".When this toggle button is enabled, those users have access to this portal relationship. It has respective apex class also.
The task here is, the toggle button can be enabled/disabled by some users, this want to be changed here by providing Read only access and assign two permission sets for edit access on this portal enable/disable.
" As a user I want Read Only Access to the portal tab. I want to be able to view all information on the tan and click through any dynamic links, but not be able to toggle the portal enable or un-portal enable any contacts. All Salesforce users should have a minimum of read only access to the Customer Portal Access Tab. The two permission below currently and should continue to provide edit access to the customer portal access section.
Create Customer Portal User
Document Manage Portal Admin "
Whether there is any customization option like providing access to objects in Salesforce through (Layouts, Fields FLS, Validation Rule)?
Or
-This can be achieved only through code on Visual force page and it's respective apex class, if this is the case how can I do it, whether there is any certain command or method for providing access or through controller class?
The "normal" object permissions (Create/Read/Update/Delete) and field level security (Read/Update) can be referenced in Visualforce. Something like this might be enough for you:
<apex:commandButton disabled="{!$ObjectType.Contact.fields.Role__c.updateable}">
Check the DescribeFieldResult in Apex reference. There's also something mentioned in VF developer guide but it's bit hidden and not as detailed: https://developer.salesforce.com/docs/atlas.en-us.234.0.pages.meta/pages/pages_variables_global_objecttype.htm
If you need more control than just whether field is editable or not - maybe look into Custom Permissions. They're your own checkboxes you add to Profile/Permission Set and you can check them in pure VF too, no apex required.
So... you decide. If most of the page is supposed to be identical, "just" about the button being enabled/disabled (or maybe even not rendered at all) - it's best to put the condition in the button. If it sounds like you need 2 different layouts - having 2 big blocks of code and one or another rendered might be cleaner to maintain and test.
P.S. Remember that good tester can activate the button using browser's developer tools. You should make similar "is field accessible / is custom permission assigned" check in Apex that runs on button click.

How do I link a Wagtail custom form to its output?

When a custom form is created in Wagtail, I can see that it stores in the DB. What I'm not clear on is how to make it so that the admin UI contains the results in some manner. (A new link which lets you download a CSV would be fine, but I don't see how to do that)
How do I allow admin users the ability to see the results of the custom forms? Is this library the only way?
Once you create your first form page (i.e. a page of any page type that subclasses AbstractForm), a 'Forms' item will automatically appear in the left menu of the Wagtail admin. This provides a listing of all the form pages that exist on the site, allowing you to access the results of each one and download them as a CSV.

How to get Custom Profile Property to show in Edit Profile

We need to add some custom profile properties to user accounts. So we have gone through Site Settings and added the Custom Profile Properties and made sure they are visible to all. What expect is that now a user can go to Edit Profile and those new custom profile properties can be set. It doesnt happen. What are we missing?
Depending on your version of DNN there are a few things that could be happening.
Be sure to clear the cache, and/or restart the application to ensure that the list is current
Check to see if your site is using anything for a custom profile module. (Either customized registration form via Admin -> Site Settings -> User Accounts or possibly using Dynamic Registration or otherwise.) If using a custom form you will need to update it as well

Configuring a portlet has three different names

When i include a portlet in a page, i'm asked to customize the portlet.
Trying to do so, i have three options namely:
Edit Shared settings
Personalize &
Configure
What does each mean and How do they differ?
This is an old page but it still describes the differences correctly: http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/topic/com.ibm.wp.ent.doc/wps/adcfgplt.html
In short:
Configure: Changes made here affect all occurrences of the portlet on all pages for all users. The administration portlets allow you to create multiple copies of the same portlet with different administrator level configurations.
Edit Shared: Changes made here affect a particular instance of a portlet on a page and apply to all users who view that instance of the portlet on that page.
Personalize: Changes made here are associated with a single user and apply only to that particular user who views the portlet on the page. Only that user can make that update.

Can I add a custom widget to Salesforce Service Cloud Console?

I need to have a custom widget on Salesforce Service Cloud Console. I don't really care where it is as long as it's easily accessible (kind of like the Softphone widget).
I need this for two reasons:
I need a quick way for users to change their "status" (a custom field on user).
I need to execute some custom javascript to hide certain elements from some page layouts.
Any idea if this can be done?
Note: when I say "Service Cloud Console" I mean this kind of console:
I think Custom Console Components may be what you are looking for? (Here is how to add them to the console once you made them. Note that after the 11 steps, it says 'Before you can access ...'.)
I have implemented similar thing using a custom console component , there you can add a visual-force page and add a button on it "Change Status". Once user clicks it get who is the logged in user .
String userid = UserInfo.getUserId()
rest is the simple logic to change the status on User record on the page controller.

Resources