如何获取所有角色(系统->权限->角色)和具有此角色的用户的集合?
谢谢。
获取所有角色
$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;
您还可以使用此获取所有角色用户 ID
$roles = Mage::getModel('admin/roles')->load($roleId)->getRoleUsers();
当我寻找一种方法来选择属于特定用户角色的所有管理员用户时,我遇到了这篇文章。(见这个答案和这个问题。)这里的问题可以被解读为亚历克斯想要每个角色的管理员用户。由于答案不按管理员角色排序,我想提供以下解决方案:
$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;
}