当前位置:  开发笔记 > 编程语言 > 正文

允许管理员用户查看其他用户类型可以查看/执行的操作?

如何解决《允许管理员用户查看其他用户类型可以查看/执行的操作?》经验,为你挑选了1个好方法。

我有一个Laravel Web应用程序,包含两种类型的用户:

    顾客

    管理


根据用户类型,他们可以查看和执行不同的操作.


顾客

以客户身份登录时,我的客户将看到不同的仪表板.


管理员

以admin身份登录时,我可以看到表中的用户列表

例,

    用户A

    用户B

    用户C

    更多 …

目标: 我希望看到客户在点击列表中的某个用户时看到的内容.

我无法为此提出解决方案.


IMO

Auth::user()->type适用于这种情况吗?

目标是Auth:user()->type == ‘customer’在实际时将页面呈现为Auth::user()->type == ‘admin’.我不完全确定我想做的事情是否可行.


我怎么在Laravel做那样的事情?



1> jedrzej.kury..:

您可以尝试我在我的一个项目中所做的事情 - 实现非常简单,也许您也可以使用它.

我们的AuthController中还有其他操作,允许用户切换到其他用户并记住会话中的当前用户ID:

public function switchUser($userId)
{
    // disallow switched users from switching again
    if (Session::get('previous_user')) App::abort(403);

    $user = User::findOrFail($userId);

    Session::set('previous_user', Auth::id());

    Auth::login($user);

    return redirect('some path');
}

第二部分是自定义注销功能,对于切换用户,它们将其切换回原始用户帐户而不是注销:

public function getLogout()
{
    if ($previousUser = Session::get('previous_user')) {
        Session::remove('previous_user');
        Auth::loginUsingId($previousUser);

        return redirect('some path');
    }

    Auth::logout();

    return redirect('some path');
}

有了这个逻辑,你就可以切换到其他用户并返回.您可能需要添加权限检查,以便只有管理员可以这样做,将列表中的客户链接到交换机URL,无论如何,功能的核心在上面的代码中.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有