Wie bekomme ich die Sammlung aller Rollen (System-> Permission-> Roles) und Benutzer, die diese Rolle hat?Magento: Rollen und Benutzer
Danke.
Wie bekomme ich die Sammlung aller Rollen (System-> Permission-> Roles) und Benutzer, die diese Rolle hat?Magento: Rollen und Benutzer
Danke.
alle Rollen
$roles = Mage::getModel('admin/roles')->getCollection();
foreach($roles as $role):
echo '<br/>Role : '.$role->getId()." | ".$role->getRoleName();
endforeach;
Um die Rolle Benutzer
$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;
Sie können auch alle Rollen Benutzer-IDs mit diesem
$roles = Mage::getModel('admin/roles')->load($roleId)->getRoleUsers();
Ich kam in diesem Beitrag erhalten zu bekommen bekommen als ich nach einer Möglichkeit suchte, alle Admin-Benutzer auszuwählen, die zu einer bestimmten Benutzerrolle gehören. (Siehe this answer und this question.) Die Frage könnte hier so gelesen werden, als ob Alex die Admin-Benutzer für jede Rolle haben möchte. Da die Antwort nicht nach Administratorrolle sortiert ist, möchte ich folgende Lösung anbieten:
$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;
}
Vielen Dank! Vielleicht kannst du jetzt auch wie man Benutzer mit diesen Rollen bekommt? :) – Alex
@AlexK bitte finden Sie meine aktualisierte Antwort ;-) Lassen Sie mich wissen, wenn Sie irgendwelche Zweifel haben. – Haijerome
Vielen Dank! Es hat super funktioniert! – Alex