0

I am getting the following error on vfpage Error: core.apexpages.exceptions.ApexPagesGenericException: system.security.NoAccessException: Create access denied for Shipment_Quantities__c, controller action methods may not execute when I login as a user with a Partner Community License that has the following

  1. Permission set Create Edit for the object and all the fields.
  2. Class access to the user.
  3. Profile and permission set added to the Members under Administration in Communities page.

vfpage code

<apex:pageBlockTable title="Shipment Information" value="{!shipmentInfo}" var="item">
    <apex:column width="20%">
        <apex:outputField value="{!item.Product_Name__c}" />
    </apex:column>

    <apex:column>
        <apex:facet name="header">Total On Order</apex:facet>
        <apex:outputText value="{0, number,###,###,##0}">
            <apex:param value="{!item.Quantity__c}" />
        </apex:outputText>
    </apex:column>

    <apex:column>
        <apex:facet name="header">Shipped to date</apex:facet>
        <apex:outputField value="{!item.Total_Items_Shipped__c}" />
    </apex:column>

    <apex:column>
        <apex:facet name="header">Total available for shipping</apex:facet>
        <apex:outputText value="{0, number,##0}" id="totalItemsShippedId">
            <apex:param value="{!(item.Quantity__c - item.Total_Items_Shipped__c)}" />
        </apex:outputText>
    </apex:column>
    
    <apex:column>
        <apex:facet name="header">To Ship on this order</apex:facet>
        <apex:inputText value="{!item.Ship_On_This_Order__c}" id="shipOnThisOrder" onkeypress="return isNumber(event);" />
    </apex:column>

    <apex:column>
        <apex:inputHidden value="{!item.hiddenField1__c}" id="hiddenField1" />
    </apex:column>

    <apex:column>
        <apex:inputHidden value="{!item.hiddenField2__c}" id="hiddenField2" />
    </apex:column>

</apex:pageBlockTable>

and the controller

public List<Shipment_Quantities__c> shipmentInfo {get; set;}
// some code here 

// the code below in is in the constructor 
shipmentInfo = [select Quantity__c, Total_Items_Shipped__c, Ship_On_This_Order__c, Product_Name__c,
                hiddenField1__c, hiddenField2__c from Shipment_Quantities__c];
ShipmentQuantitiesProcessor totalQuantities = new ShipmentQuantitiesProcessor(oppId, shipmentInfo);
shipmentInfo = totalQuantities.getShipmentInfo();

Two questions

  1. How can I resolve the error, is there a workaround if so how? please provide an example if possible
  2. Could the error be related to this Guest User Security Policy in Summer'20, does it apply to communities?

1 Answer 1

1

I have seen a similar issue in the past. Replacing the apex:inputHidden tag with apex:inputField tag fixed the issue

You can encounter the error due to either of these reasons:

  • Please double check the user permissions.
  • If you think permissions are not causing the issue then please Check for apex:inputHidden tag.

As “apex:inputHidden” is an HTML input element of type hidden, that is, an input element that is invisible to the user. Use this component to pass variables from page to page. You are not passing this information other page and you want to make it invisible for the user. To solve the this issue you have two options:

  1. Use <apex:inputfiled value="{!Commission__c.Contributor_Payment_Details__r.name}" /> (Commission__c.Contributor_Payment_Details__r is read-only for that profile user).

  2. Use <apex: inputHidden value="{!Commission__c.Contributor_Payment_Details__C}" /> Or <apex: inputHidden value="{!somevalue}" /> (you can define somevalue in controller and get the record information)

1
  • it is not permissions. point 1 worked which meant that the hidden field now is visible.
    – Mo Ali
    Oct 23, 2020 at 8:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .