Laravel修改Gate默认认证User Model的信息

在Laravel中为我们提供了一种简单的方式来处理用户授权动作,主要有两种方式Gates和Policy(策略),但这两种方法默认是认证User模型的信息,我们想使授权认证为后台用户Admin模型的信息需进行如下操作
1.参照我的另一篇文章【多表用户登录认证】增加一个使用auth登录的后台用户
2.在要认证的路由绑定中间件

Route::get('mydel','Procontroller@mydel')->middleware('auth:admin')->

到此Gate就会默认获取到后台用户的信息,你可以进行相应的权限判断

下面是一个非常简单的示例

<?php

namespace App\Policies;

use App\User;
use App\Admin;
use App\Root;
use Auth;
use Illuminate\Auth\Access\HandlesAuthorization;

class DelPolicy
{
    use HandlesAuthorization;

    /**
     * Determine whether the user can view the admin.
     *
     * @param  \App\User  $user
     * @param  \App\Admin  $admin
     * @return mixed
     */
   
    /**
     * Determine whether the user can update the admin.
     *
     * @param  \App\User  $user
     * @param  \App\Admin  $admin
     * @return mixed
     */
    public function update(Admin $user)
    {
        return Admin::find(Auth::id())->roots->del;
        //返回用户是否有删除权限
        // return true;/
    }

    /**
     * Determine whether the user can delete the admin.
     *
     * @param  \App\User  $user
     * @param  \App\Admin  $admin
     * @return mixed
     */
   
}
//如果用户有删除权限
 if($this->authorize('update',Root::class)){
            dump('可以');
        }

在这里插入图片描述
模板中使用

@can('update',App\Root::class)
    有更新权限的视图
@endcan
@cannot('update',App\Root::class)
没有更新权限
@endcan

在这里插入图片描述

通过中间件认证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值