我有一个具有自定义控制器的VisualForce页面,我希望用户只有在他们的配置文件中有可访问选项时才能看到inputCheckBox之类的组件。 我已经读过,当使用自定义控制器时,VF正在系统上下文中运行。 我已经尝试使用ObjectType来呈现复选框,如果用户有访问权限并且它确实呈现了 - 尽管配置文件被阻止到此特定字段。 我的代码Billable是我试图隐藏的字段:
apex:inputCheckBox style="width:15px;" rendered="{!$ObjectType.MyObject__c.accessible} value="{!SelectedMO.Billable}"/>
答案 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