laravel 授权、用户验证
2024-08-31 06:32:23
记录帖
一、授权
只允许管理员删除用户,给管理员授权时,可以这样做,首先:
创建UserPolicy类:
php artisan make:policy UserPolicy
然后在UserPolicy中添加destroy方法
app/policies/UserPolicy.php
<?php
namespace App\Policies;
use App\Model\User;
use Illuminate\Auth\Access\HandlesAuthorization;
class UserPolicy
{
use HandlesAuthorization;public function destroy(User $currentUser, User $user)//$currentUser 为当前登录的用户,$user为需要验证的用户{
return $currentUser->is_admin && $currentUser->id !== $user->id;
}
}
然后在AuthServiceProvider里添加:
\App\Model\User::class => \App\Policies\UserPolicy::class,
app/providers/AuthServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
\App\Model\User::class => \App\Policies\UserPolicy::class,
];
}
最后,在控制器方法中调用即可:
public function destroy(User $user)
{
$this->authorize('destroy', $user);
$user->delete();
session()->flash('success', '成功删除用户!');
return back();
}
最新文章
- event事件对象
- srand()以及rand()函数用法
- 【管理心得之三十八】如果“Q”不是高富帅,也吸引不了白富美“A”
- 一种Go使用tcp检测超时的方式
- thinkcentre m8380t黑屏 解决办法
- MVC2.0==>;MVC3.0
- JavaScrip拖动动画中的常见BUG
- 问题.NET访问 IIS 元数据库失败。
- Linux Shell编程(7)——变量赋值
- Sublime 操作技巧
- ASP.NET虚拟路径小结
- 【BZOJ1565】 植物大战僵尸
- 如何将div高度填满剩余高度
- ALV编辑数据后未更新到内表
- 【JavaScript】EasyUIのForm的跨域提交问题解析
- centos如何安装Python3
- UML图类,接口之间的关系
- 【转】利用线程更新ListView (2014-09-28 08:25:20)
- asp.net mvc maproute定义可变数量的自定义片断变量
- 主频3.0 1g内存是什么意思
热门文章
- 多行文本省略号样式失效丢失,以及控制台显示autoprefixer警告&#39;Autoprefixer applies control comment to whole block, not to next rules.&#39;
- POJ 1258 Agri-Net( 裸最小生成树 )
- Python 绘制2016世界GDP地图
- Linux下ffmpeg的wav与amr相互转换
- 【iOS开发-78】用代码实现UITabBarController+UINavigationController
- Linux内核project导论——网络:Netfilter概览
- 初识MVC之建项
- Java 后台性能优化简要
- 2014.04.17,转帖,关于FFT的结果为什么要除以N
- Gradle for Android 第三篇( 依赖管理 )