2012-10-17 26 views
3

我似乎遇到问题,确定如何限制Joomla 2.5后端用户到我正在编写的自定义组件中的特定功能/视图。根据我的理解,我应该能够将我的视图添加为access.xml文件中的一部分。我试图通过命名与我的视图同名的节,但我似乎无法独立于组件整体更改对该视图的访问权限。有没有人有更深入的例子,我可以查看或提示?这甚至有可能吗?Joomla 2.5 ACL限制到特定功能/视图

回答

1

我相信你所要做的并不是Joomla所支持的。 我的建议是在access.xml在#__assets表的名称在rules字段中应该保存的JSON编码列表添加自定义规则的意见

<section name="component"> 
    <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" /> 
    <action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" /> 
    <action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" /> 
    <action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" /> 
    <action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" /> 
    <action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" /> 
</section> 

<section name="views"> 
    <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" /> 
</section> 

然后保存视图像​​, 您规则:

{"core.admin":{}} 

您可以检查当前用户可以或不可以访问使用JAccess

$user_id=JFactory::getUser()->id; 
$has_permission = JAccess::check($user_id,'core.admin','com_component.view.playerlist'); 
if($has_permission){ 
    draw_view(); 
}else{ 
    JError::riseError(403,JText::_('PERMISSION_DENIED')); 
    // or 
    JError::raiseWarning(403,JText::_('PERMISSION_DENIED')); 
} 
一个确定的部分

如果您有任何疑问,请随时发表评论。

+0

我有疑问! 'access.xml'文件中'

'标签和'JAccess :: check'之间的关系是什么? – pedromanoel

+0

而不应将该部分命名为“视图”而不是“视图”?我也在研究如何将ACL添加到我的扩展中,但我不确定joomla如何使用该配置。 – pedromanoel