【问题标题】:magento backend ACL user rolesmagento 后端 ACL 用户角色
【发布时间】:2012-08-22 13:18:56
【问题描述】:

我有一个用户角色,只能看到 magento 后端的几页。 当我以该用户身份登录时,我想将其重定向到另一个后端模块控制器而不是仪表板。

这仅适用于他的用户角色。

有人出主意吗?

【问题讨论】:

    标签: magento acl


    【解决方案1】:

    现在有一些内置方法可用于您要完成的工作,但这里有一些见解可让您将它们转化为解决方案:

    1. System -> Configuration -> ADVANCED -> Admin 中有一个设置 称为“启动页面”,可让您更改此设置 全局(但不是按管理员或角色单独)。
    2. 在Mage_Admin_Model_User::getStartupPageUrl() 你会看到如果 以前设置中的任何设置都是不允许的 资源,它将按顺序浏览菜单并找到 第一个允许的页面

    所以我认为你可以修改菜单配置来更改项目的顺序,以便您的自定义角色允许的第一个资源与默认设置的资源不同。

    另一个简单的解决方案是观察一些事件(例如 admin_user_authenticate_after )并将用户重定向到所需的页面(如果它来自给定角色)

    【讨论】:

      【解决方案2】:

      您可以在模块的 config.xml 中使用此代码控制您的访问权限。

      <acl>
              <resources>
                  <admin>
                      <children>
                          <catalog>
                              <children>
                                  <yourmodule translate="title" module="yourmodule">
                                      <title>any</title>
                                      <sort_order>700</sort_order>
                                  </yourmodule>
                              </children>
                          </catalog>
                      </children>
                  </admin>
              </resources>
          </acl>
      

      有了这个,您可以在系统菜单用户控件上使用您的管理员角色用户,您可以启用或禁用选择用户组的访问权限。 如果您需要控制为每个用户显示的页面,请在您的控制器上的同一模块上进行。如果您需要更多信息,请询问,我在这里完成。

      【讨论】:

      • 是的,很清楚。但我有一个角色,只能看到页面 A 和 B。当他登录时,他看到的第一页是页面 A,但 A 想让他先看到页面 B。
      • 登录后,一个普通的后端用户会进入仪表板。但此用户角色必须转到另一个特定页面
      • 您可以在 Mage_Adminhtml_DashboardController 上更改 indexController() 来控制它。或者观察 controller_action_layout_load_before。 gl
      猜你喜欢
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 2013-02-18
      • 2016-10-11
      • 1970-01-01
      相关资源
      最近更新 更多