2013-03-04 188 views

回答

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; 
+0

謝謝!也許你現在也該如何讓用戶使用這個角色? :) – Alex 2013-03-04 11:49:45

+0

@AlexK好心的找到我更新的答案;-)讓我知道你是否對此有任何疑問。 – Haijerome 2013-03-04 11:55:21

+0

非常感謝!它效果很好! – Alex 2013-03-04 13:28:08

3

您還可以得到所有角色的用戶ID與此

$roles = Mage::getModel('admin/roles')->load($roleId)->getRoleUsers(); 
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; 
}