如何在Joomla 3.0中保护视图

时间:2013-05-22 13:02:43

标签: joomla

在Joomla 3.0中,基于id保护视图的最佳方法是什么。例如,我有一个网址:

/administrator/index.php?option=com_helloworld&view=unitversions&layout=edit&id=158733

如果用户不拥有该ID,我不希望用户能够看到此页面。我知道控制器将根据ACL进行授权,但只是重定向到类似于上面的URL。

我认为插件可能是最好的方法吗?也许使用onContentBeforeDisplay触发器。

有没有人有更好的建议?

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为这可能是在CMS核心文件中完成的最佳方式。

    // Check for edit form.
    if ($vName == 'category' && $lName == 'edit' && !$this->checkEditId('com_categories.edit.category', $id))
    {
        // Somehow the person just went to the form - we don't allow that.
        $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id));
        $this->setMessage($this->getError(), 'error');
        $this->setRedirect(JRoute::_('index.php?option=com_categories&view=categories&extension='.$this->extension, false));

        return false;
    }