Magento:获得角色和用户

时间:2013-03-04 11:20:46

标签: magento magento-1.7 roles

如何收集所有角色(系统 - >权限 - >角色)和具有此角色的用户?

感谢。

3 个答案:

答案 0 :(得分:12)

获取所有角色

       $roles = Mage::getModel('admin/roles')->getCollection();
       foreach($roles as $role):
          echo '<br/>Role : '.$role->getId()." | ".$role->getRoleName();
       endforeach;

获取角色用户

      $roles_users = Mage::getResourceModel('admin/roles_user_collection');
      foreach($roles_users as $roleuser):
       $user = Mage::getModel('admin/user')->load($roleuser->getUserId());
       echo '<br/>User : '.$user->getUsername()." | ".$user->getFirstname();
      endforeach;

答案 1 :(得分:3)

您还可以使用此

获取所有角色用户ID
$roles = Mage::getModel('admin/roles')->load($roleId)->getRoleUsers();

答案 2 :(得分:0)

当我找到一种方法来选择属于特定用户角色的所有管理员用户时,我发现了这篇文章。 (请参阅this answerthis question。)此处的问题可以理解为Alex想要每个角色的管理员用户。由于答案不按管理员角色排序,我想提供以下解决方案:

$usersByRole = array();
$adminRoles = Mage::getModel('admin/roles')->getCollection();
foreach($adminRoles as $adminRole) {
    $adminRoleId = $adminRole->getId(); 
    $adminRoleUserCollection = Mage::getModel('admin/role')->getCollection()
        ->addFieldToFilter('parent_id', ['eq'=>$adminRoleId])
        ->join(['user' => 'admin/user'], 'user.user_id=main_table.user_id');
    $usersByRole[$adminRole->getRoleName()] = $adminRoleUserCollection;
}