繁体   English   中英

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

[英]How to render VisualForce page inputCheckBox in custom controller according to user profile?

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

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

您是否真的需要自定义组件(一切都是从头开始构建的)? 如果您将使用标准(set)控制器和自定义扩展,则应该自动为您完成整个可见性操作,并且代码越少越好。

或者,您可以查询与Profile / PermissionSet相关的表。 我说查询是因为控制器中的describe调用可能会返回与您使用过的此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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM