sarga/packages/Webkul/User/src/Bouncer.php

38 lines
960 B
PHP
Raw Normal View History

2018-06-20 05:06:27 +00:00
<?php
namespace Webkul\User;
class Bouncer
{
2018-09-13 11:04:56 +00:00
/**
2018-10-17 07:21:47 +00:00
* Checks if user allowed or not for certain action
2018-09-13 11:04:56 +00:00
*
2020-03-05 13:37:08 +00:00
* @param string $permission
* @return void
2018-09-13 11:04:56 +00:00
*/
2018-10-17 07:21:47 +00:00
public function hasPermission($permission)
2018-09-13 11:04:56 +00:00
{
2019-01-15 11:54:41 +00:00
if (auth()->guard('admin')->check() && auth()->guard('admin')->user()->role->permission_type == 'all') {
2018-10-17 07:21:47 +00:00
return true;
} else {
2020-02-20 07:14:00 +00:00
if (! auth()->guard('admin')->check() || ! auth()->guard('admin')->user()->hasPermission($permission)) {
2018-10-17 07:21:47 +00:00
return false;
2020-02-20 07:14:00 +00:00
}
2018-10-17 07:21:47 +00:00
}
2018-09-13 11:04:56 +00:00
return true;
}
2018-06-20 05:06:27 +00:00
/**
* Checks if user allowed or not for certain action
*
2020-03-05 13:37:08 +00:00
* @param string $permission
* @return void
2018-06-20 05:06:27 +00:00
*/
public static function allow($permission)
{
2020-02-20 07:14:00 +00:00
if (! auth()->guard('admin')->check() || ! auth()->guard('admin')->user()->hasPermission($permission)) {
abort(401, 'This action is unauthorized');
2020-02-20 07:14:00 +00:00
}
2018-06-20 05:06:27 +00:00
}
}