记录帖

一、授权

只允许管理员删除用户,给管理员授权时,可以这样做,首先:

创建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();
}

最新文章

  1. event事件对象
  2. srand()以及rand()函数用法
  3. 【管理心得之三十八】如果“Q”不是高富帅,也吸引不了白富美“A”
  4. 一种Go使用tcp检测超时的方式
  5. thinkcentre m8380t黑屏 解决办法
  6. MVC2.0==&gt;MVC3.0
  7. JavaScrip拖动动画中的常见BUG
  8. 问题.NET访问 IIS 元数据库失败。
  9. Linux Shell编程(7)——变量赋值
  10. Sublime 操作技巧
  11. ASP.NET虚拟路径小结
  12. 【BZOJ1565】 植物大战僵尸
  13. 如何将div高度填满剩余高度
  14. ALV编辑数据后未更新到内表
  15. 【JavaScript】EasyUIのForm的跨域提交问题解析
  16. centos如何安装Python3
  17. UML图类,接口之间的关系
  18. 【转】利用线程更新ListView (2014-09-28 08:25:20)
  19. asp.net mvc maproute定义可变数量的自定义片断变量
  20. 主频3.0 1g内存是什么意思

热门文章

  1. 多行文本省略号样式失效丢失,以及控制台显示autoprefixer警告&#39;Autoprefixer applies control comment to whole block, not to next rules.&#39;
  2. POJ 1258 Agri-Net( 裸最小生成树 )
  3. Python 绘制2016世界GDP地图
  4. Linux下ffmpeg的wav与amr相互转换
  5. 【iOS开发-78】用代码实现UITabBarController+UINavigationController
  6. Linux内核project导论——网络:Netfilter概览
  7. 初识MVC之建项
  8. Java 后台性能优化简要
  9. 2014.04.17,转帖,关于FFT的结果为什么要除以N
  10. Gradle for Android 第三篇( 依赖管理 )