如何根据用户配置文件在自定义控制器中呈现VisualForce页面inputCheckBox?

时间:2013-04-21 12:10:43

标签: controller salesforce visualforce renderer object-type

我有一个具有自定义控制器的VisualForce页面,我希望用户只有在他们的配置文件中有可访问选项时才能看到inputCheckBox之类的组件。 我已经读过,当使用自定义控制器时,VF正在系统上下文中运行。 我已经尝试使用ObjectType来呈现复选框,如果用户有访问权限并且它确实呈现了 - 尽管配置文件被阻止到此特定字段。 我的代码Billable是我试图隐藏的字段:

apex:inputCheckBox style="width:15px;" rendered="{!$ObjectType.MyObject__c.accessible} value="{!SelectedMO.Billable}"/>

1 个答案:

答案 0 :(得分:0)

您真的需要一个自定义组件(从头开始构建的所有内容)吗?如果您将使用标准(设置)控制器和自定义扩展,则应该自动为您完成整个可见性事项,并且代码越少越好......

或者,您可以查询与Profile / PermissionSet相关的表。我说查询是因为控制器中的描述调用可能会返回与您使用的accessible相同的内容。这是图表:http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_erd_profile_permissions.htm

这应该是一个好的开始:

SELECT Field, PermissionsEdit,PermissionsRead
FROM FieldPermissions
WHERE Parent.Profile.Name = 'System Administrator'
    AND SobjectType = 'Account'
LIMIT 10