12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- /*
- * This file is part of the Jiannei/lumen-api-starter.
- *
- * (c) Jiannei <longjian.huang@foxmail.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace App\Policies;
- use App\Repositories\Enums\PermissionEnum;
- use App\Repositories\Models\Navigation\Category;
- use App\Repositories\Models\Base\User;
- use Illuminate\Auth\Access\HandlesAuthorization;
- class CategoryPolicy
- {
- use HandlesAuthorization;
- public function viewAny(User $user)
- {
- if ($this->all($user)) return true;
- if ($user->can(PermissionEnum::ROUTE_CATEGORY_VIEW_ANY()->name)) {
- return true;
- }
- return false;
- }
- public function view(User $user, Category $model)
- {
- if ($this->all($user)) return true;
- if ($user->isOwner($model) && $user->can(PermissionEnum::ROUTE_CATEGORY_VIEW()->name)) {
- return true;
- }
- return false;
- }
- public function create(User $user)
- {
- if ($this->all($user)) return true;
- if ($user->can(PermissionEnum::ROUTE_CATEGORY_CREATE()->name)) {
- return true;
- }
- return false;
- }
- public function update(User $user, Category $model)
- {
- if ($this->all($user)) return true;
- if ($user->isOwnerOrganization($model) || $user->isOwner($model) || $user->can(PermissionEnum::ROUTE_CATEGORY_UPDATE()->name)) {
- return true;
- }
- return false;
- }
- public function delete(User $user, Category $model)
- {
- if ($this->all($user)) return true;
- if ($user->isOwnerOrganization($model) || $user->isOwner($model) || $user->can(PermissionEnum::ROUTE_CATEGORY_DELETE()->name)) {
- return true;
- }
- return false;
- }
- private function all(User $user)
- {
- if ($user->can(PermissionEnum::ROUTE_CATEGORY()->name)) {
- return true;
- }
- return false;
- }
- }
|