Laravel 8 策略過濾器

2021-06-29 16:55 更新

對(duì)于某些用戶,您可能希望授權(quán)給定策略中的所有操作。為此,在策略上定義一個(gè) before 方法。before 方法將在策略上的任何其他方法之前執(zhí)行,從而使您有機(jī)會(huì)在實(shí)際調(diào)用預(yù)期的策略方法之前授權(quán)操作。此功能最常用于授權(quán)應(yīng)用程序管理員執(zhí)行任何操作:

public function before($user, $ability)
{
    if ($user->isSuperAdmin()) {
        return true;
    }
}

如果您想拒絕用戶的所有授權(quán),您應(yīng)該從 before 方法返回 false。如果返回 null,則授權(quán)將傳遞給策略方法。

注意:如果策略類的 before 方法不包含與正在檢查的功能名稱匹配的名稱的方法,則不會(huì)調(diào)用該方法。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)