/** * Load roles * * @param Mage_Api_Model_Acl $acl * @param array $rolesArr * @return Mage_Api_Model_Mysql4_Acl */ function loadRoles(Mage_Api_Model_Acl $acl, array $rolesArr) { foreach ($rolesArr as $role) { $parent = $role['parent_id'] > 0 ? Mage_Api_Model_Acl::ROLE_TYPE_GROUP . $role['parent_id'] : null; switch ($role['role_type']) { case Mage_Api_Model_Acl::ROLE_TYPE_GROUP: $roleId = $role['role_type'] . $role['role_id']; $acl->addRole(AO::getModel('api/acl_role_group', $roleId), $parent); break; case Mage_Api_Model_Acl::ROLE_TYPE_USER: $roleId = $role['role_type'] . $role['user_id']; if (!$acl->hasRole($roleId)) { $acl->addRole(AO::getModel('api/acl_role_user', $roleId), $parent); } else { $acl->addRoleParent($roleId, $parent); } break; } } return $this; }