質問

admin_roleテーブルの場合、2つの値を持つことができる列role_typeがあります。

  • 'g' - Mage_Admin_Model_Acl::ROLE_TYPE_GROUP
  • 'u' - Mage_Admin_Model_Acl::ROLE_TYPE_USER

    名前で私はジャンプがユーザーの役割のためのものであり、もう1つはグループの役割のための結論を実行しますが、これらの値はどのように使用されていますか。
    一部の管理領域にアクセスできるようにするには、各管理者ユーザーが役割を持つ必要があります。その役割は「グループ」ですか?もしそうなら、U値の使用は何ですか。そうでなければ、「グループ」は何ですか?

    マゼント版は重要ではありません。「ビッグバン」(v0.7)以来そこにいて、それは次の宇宙(Magento 2)に移植されています。

役に立ちましたか?

解決

はい、それは「グループ」です。各ユーザーには、グループロールの親があるユーザーロールがあり、すべてのユーザーがそのテーブル内のparent_idを介してグループに割り当てられています。

私が見ることができる唯一の実際の値は、テーブル全体にダンプでき、提供された情報に基づいてACL構造を生成するACL世代にあります。

public function loadRoles(Mage_Admin_Model_Acl $acl, array $rolesArr)
{
    foreach ($rolesArr as $role) {
        $parent = ($role['parent_id'] > 0) ? Mage_Admin_Model_Acl::ROLE_TYPE_GROUP . $role['parent_id'] : null;
        switch ($role['role_type']) {
            case Mage_Admin_Model_Acl::ROLE_TYPE_GROUP:
                $roleId = $role['role_type'] . $role['role_id'];
                $acl->addRole(Mage::getModel('admin/acl_role_group', $roleId), $parent);
                break;

            case Mage_Admin_Model_Acl::ROLE_TYPE_USER:
                $roleId = $role['role_type'] . $role['user_id'];
                if (!$acl->hasRole($roleId)) {
                    $acl->addRole(Mage::getModel('admin/acl_role_user', $roleId), $parent);
                } else {
                    $acl->addRoleParent($roleId, $parent);
                }
                break;
        }
    }

    return $this;
}
.

それは、それがグループまたはユーザーの役割であるかどうかを判断することができるが、それが非常にエラーが発生しやすいと思いますが、それが非常に誤っていると思います。

他のヒント

short:「役割」と呼ぶものはグループです(「管理者」のような)。

各グループには、G型の入力があり、各ユーザーはUを介してユーザーのグループを参照するタイプparent_idのエントリを持ちます。すべてのアクセスルールはグループレベルで定義されています。テーブルadmin_rulesを見ると、すべてのエントリに役割の種類としてGがあることがわかります。

admin_rule.role_type機能は、stock_idのようなものです。どういうわけか、まさに意図された、決して完全に実装され、次にそれから運ばれていないので、誰もそれに触れることができません。

好奇心の抜け違いは、ロール型Uを手動で入力しようとしましたが、allowまたはdenyルールであれば、親ロールは常に優先されます。また、親の役割なしで、Admin Panelにまったくアクセスできません。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top