当前位置: 首页 > 知识库问答 >
问题:

限制特定用户角色laravel的URL

李俭
2023-03-14

我有3个用户角色:管理员、客户和员工。

登录后,每个角色将重定向到特定的仪表板,例如:-管理员:网站。com/admin-客户:网站。com/客户-员工:网站。通讯员/雇员

此时,无论我使用哪个用户角色,都可以通过这些网址访问所有内容。

限制客户打开admin的最简单方法是什么

Laravel版本5.2.45 PHP版本7.2我正在使用共享托管提供商。谢谢你们

共有2个答案

窦夜洛
2023-03-14

在你的情况下,我会在你的用户模型中创建一个助手函数,比如:

function isAdmin(){
  return $this->role == 0;
}

我会为每个角色创建一个,然后您可以在视图控制器中使用这些函数,例如:

if(auth()->user()->isAdmin()){
  return view('admin.dashboard');
}
else{
  return view('guest.dashboard');
}

最后,如果您想创建一个中间件来控制对某些路由或控制器的访问:

php artisan make:middleware AdminUser

然后在句柄函数中:

public function handle($request, Closure $next)
    {
        if (!auth()->user()->isAdmin) {
            return redirect('home');
        }

        return $next($request);
    }
艾泰
2023-03-14

试试看这个,很有帮助

https://laravel.com/docs/5.7/middleware#assigning-middleware-to-routes

您可以分配现有的中间件,如authauth.basic

或者像这样通过您自己的检查角色类

use App\Http\Middleware\CheckAge;

Route::get('admin/profile', function () {
    //
})->middleware(CheckAge::class);
 类似资料:
  • 因此,在我们的Laravel应用程序中有两个角色(internet客户端和管理员)。下面是DB模式 我们想允许www.site。com/登录路径,仅记录具有“客户端”角色的用户。 请注意,一旦用户登录并强制注销,我们不想检查角色。 谢谢

  • 我试图将对Swagger用户界面(UI)的访问限制为特定角色(例如,Swagger API用户、系统管理员用户等) 我在这个SO问题中尝试了答案--限制对Swagger UI的访问 我想我在等401的未经授权的回复。我对昂首阔步是完全陌生的,所以任何建议都很感激!

  • 我已经基于命名的路由为Laravel(4.2)创建了自定义角色管理器,例如: 基本上,任何注册为

  • 我正在尝试限制kubernetes仪表板上的a用户,该仪表板在我创建后连接到kubectl。他和相应的配置的crt。 我成功地限制了他可以使用以下role.yaml 和簇绑定 让他能够进入仪表板。问题是,我只希望他能够访问名称空间。 我已经搜索了一些,一些解决方案似乎涉及创建一个服务帐户,另一个问题可能是因为查看仪表板的权限是在集群角色上授予的,并且无法命名。 有没有最好的方法来解决这个问题?

  • 我确实有一些独特的要求,我想隐藏要从特定角色用户中选择的角色。 例如,我有一个角色名称admin、部门1、部门2和部门3。作为管理员,我应该只能在门户中看到部门1、部门2和部门3的角色管理。 但如果我为管理员定义权限,他/她可以管理角色。管理员用户可以查看Liferay中可用OOTB的所有角色。 有人能帮我配置一下吗?

  • 有些企业会对向用户发送的营销内容进行严格的管理——基层的运营或营销经理拟定的活动必须经过上级管理者的审批,方可生效执行。为此,诸葛的智能触达中提供了基于用户角色的触达活动权限管理,以支撑上述的企业需求。 如果您的团队需要使用权限控制,可通过以下步骤开启使用: 开启权限控制:智能触达的权限控制默认是关闭的,需要开启后方能使用; 分配用户角色:为团队成员分别分配设定「管理员」和「运营人员」角色; 开始