如何在Magento中以编程方式为管理员用户分配角色?

时间:2013-07-24 05:15:03

标签: php magento

我需要在Magento中以编程方式为管理员用户分配用户角色。我怎么能够?我试过像

这样的方法
try {
$user->setRoleIds(array(<role_id>))
->setRoleUserId($user->getUserId())
->saveRelations();

} catch (Exception $e) {
echo $e->getMessage();
exit;
}

但是当我们应用上面的代码时,数据库被破坏并获得错误 - "Parent Role id 'G5' does not exist"

这是因为,当我应用上面的代码时,具有父角色Id的管理员用户被删除,之后我无法访问后端,即使我再次重新创建它!

有人能指出解决方案吗?

1 个答案:

答案 0 :(得分:0)

奇怪!但最终得到了here的解决方案。

尝试抓住这样的事,

         try {
          $role = Mage::getModel("admin/role");
          $role->setParent_id(5);
          $role->setTree_level(1);
          $role->setRole_type('U');
          $role->setUser_id($user_id);
          $role->save();
          echo "Your username: ".$username.", and password: ".$password;
            } catch (Exception $e) {
            echo $e->getMessage();
            }

它工作了。这里parent Id是我的自定义角色ID。 $user_id是应该附加角色的用户的ID。