如何收集所有角色(系统 - >权限 - >角色)和具有此角色的用户?
感谢。
答案 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 answer和this 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;
}