0

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

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

1 回答 1

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
于 2013-04-22T08:06:31.907 回答