2013-03-04 4 views

risposta

12

per avere tutti i ruoli

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

Per gli utenti di ruolo

 $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

Grazie! Forse anche tu ora come ottenere utenti con questi ruoli? :) – Alex

+0

@AlexK gentilmente trovare la mia risposta aggiornata ;-) Fatemi sapere se avete qualche dubbio con questo. – Haijerome

+0

Grazie mille! Ha funzionato alla grande! – Alex

3

è anche possibile ottenere tutti gli ID utente di ruolo con questo

$roles = Mage::getModel('admin/roles')->load($roleId)->getRoleUsers(); 
0

mi sono imbattuto in questo post quando ho cercato un modo per selezionare tutti gli utenti admin appartenenti a un ruolo utente specifico. (Vedere this answer e this question.) La domanda qui potrebbe essere letta come se Alex volesse gli utenti amministratori per ciascun ruolo. Poiché la risposta non ordina per ruolo di amministratore, vorrei offrire la seguente soluzione:

$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; 
}