【问题标题】:Joomla 2.5 ACL restrict to specific features/viewsJoomla 2.5 ACL 限制为特定功能/视图
【发布时间】:2012-10-08 07:20:38
【问题描述】:

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

【问题讨论】:

    标签: components acl joomla2.5


    【解决方案1】:

    我相信 Joomla 不支持您尝试做的事情。 我的建议是在 access.xml 中为视图添加自定义规则

    <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>
    

    然后将视图保存在#__assets 表中,名称类似于com_component.view.playerlist, 在 rules 字段中,您应该保存一个 JSON 编码的规则列表:

    {"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'));
    }
    

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

    【讨论】:

    • 我有疑问! access.xml文件中的&lt;section name="views"&gt;标签和JAccess::check是什么关系?
    • 该部分不应该命名为“view”而不是“views”吗?我也在研究如何将 ACL 添加到我的扩展中,但我不确定 joomla 是如何使用配置的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多