Skip to content

Commit

Permalink
Feature/94 (#28)
Browse files Browse the repository at this point in the history
* #94 - permissions renamed

* #94 - permissions category_list, category_list

Co-authored-by: KD <do>
Co-authored-by: krz <[email protected]>
  • Loading branch information
KrzysztofDziedziechEscolasoft and krzEscola authored Jan 18, 2022
1 parent 1693be4 commit a19fe7e
Show file tree
Hide file tree
Showing 11 changed files with 173 additions and 40 deletions.
4 changes: 4 additions & 0 deletions database/seeders/CategoriesPermissionSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,15 @@ public function run()
}

$admin->givePermissionTo([
CategoriesPermissionsEnum::CATEGORY_LIST,
CategoriesPermissionsEnum::CATEGORY_READ,
CategoriesPermissionsEnum::CATEGORY_CREATE,
CategoriesPermissionsEnum::CATEGORY_DELETE,
CategoriesPermissionsEnum::CATEGORY_UPDATE,
]);
$tutor->givePermissionTo([
CategoriesPermissionsEnum::CATEGORY_LIST,
CategoriesPermissionsEnum::CATEGORY_READ,
CategoriesPermissionsEnum::CATEGORY_CREATE,
CategoriesPermissionsEnum::CATEGORY_DELETE,
CategoriesPermissionsEnum::CATEGORY_UPDATE,
Expand Down
2 changes: 2 additions & 0 deletions src/Enums/CategoriesPermissionsEnum.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

class CategoriesPermissionsEnum extends BasicEnum
{
const CATEGORY_LIST = 'category_list';
const CATEGORY_READ = 'category_list';
const CATEGORY_UPDATE = 'category_update';
const CATEGORY_CREATE = 'category_create';
const CATEGORY_DELETE = 'category_delete';
Expand Down
12 changes: 7 additions & 5 deletions src/Http/Controllers/CategoryAPIController.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
use EscolaLms\Categories\Dtos\CategoryCreateDto;
use EscolaLms\Categories\Http\Requests\CategoryCreateRequest;
use EscolaLms\Categories\Http\Requests\CategoryDeleteRequest;
use EscolaLms\Categories\Http\Requests\CategoryListRequest;
use EscolaLms\Categories\Http\Requests\CategoryReadRequest;
use EscolaLms\Categories\Http\Requests\CategoryUpdateRequest;
use EscolaLms\Categories\Http\Resources\CategoryResource;
use EscolaLms\Categories\Http\Resources\CategoryTreeResource;
Expand All @@ -28,10 +30,10 @@ public function __construct(CategoriesRepositoryContract $categoryRepository, Ca
}

/**
* @param Request $request
* @param CategoryListRequest $request
* @return JsonResponse
*/
public function index(Request $request): JsonResponse
public function index(CategoryListRequest $request): JsonResponse
{
$categories = $this->categoryRepository->all(
$request->except(['skip', 'limit']),
Expand All @@ -43,10 +45,10 @@ public function index(Request $request): JsonResponse
}

/**
* @param Request $request
* @param CategoryListRequest $request
* @return JsonResponse
*/
public function tree(Request $request): JsonResponse
public function tree(CategoryListRequest $request): JsonResponse
{
$categories = $this->categoryRepository->allRoots(
$request->except(['skip', 'limit']),
Expand All @@ -61,7 +63,7 @@ public function tree(Request $request): JsonResponse
* @param int $id
* @return JsonResponse
*/
public function show(int $id): JsonResponse
public function show(int $id, CategoryReadRequest $categoryReadRequest): JsonResponse
{
$category = $this->categoryRepository->find($id);

Expand Down
8 changes: 5 additions & 3 deletions src/Http/Controllers/Swagger/CategorySwagger.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

use EscolaLms\Categories\Http\Requests\CategoryCreateRequest;
use EscolaLms\Categories\Http\Requests\CategoryDeleteRequest;
use EscolaLms\Categories\Http\Requests\CategoryListRequest;
use EscolaLms\Categories\Http\Requests\CategoryReadRequest;
use EscolaLms\Categories\Http\Requests\CategoryUpdateRequest;
use EscolaLms\Categories\Models\Category;
use Illuminate\Http\JsonResponse;
Expand Down Expand Up @@ -32,7 +34,7 @@ interface CategorySwagger
* )
* )
*/
public function index(Request $request): JsonResponse;
public function index(CategoryListRequest $request): JsonResponse;

/**
* @OA\Get(
Expand All @@ -55,7 +57,7 @@ public function index(Request $request): JsonResponse;
* )
* )
*/
public function tree(Request $request): JsonResponse;
public function tree(CategoryListRequest $request): JsonResponse;

/**
* @OA\Get(
Expand Down Expand Up @@ -86,7 +88,7 @@ public function tree(Request $request): JsonResponse;
* )
* )
*/
public function show(int $id): JsonResponse;
public function show(int $id, CategoryReadRequest $categoryReadRequest): JsonResponse;

/**
* @OA\Post(
Expand Down
4 changes: 2 additions & 2 deletions src/Http/Requests/CategoryCreateRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

class CategoryCreateRequest extends FormRequest
{
public function authorize()
public function authorize(): bool
{
$user = auth()->user();
return isset($user) ? $user->can('create', Category::class) : false;
Expand All @@ -18,7 +18,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'name' => ['required', 'string', 'max:255']
Expand Down
4 changes: 2 additions & 2 deletions src/Http/Requests/CategoryDeleteRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

class CategoryDeleteRequest extends FormRequest
{
public function authorize()
public function authorize(): bool
{
$user = auth()->user();
$category = Category::find($this->route('category'));
Expand All @@ -19,7 +19,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [];
}
Expand Down
25 changes: 25 additions & 0 deletions src/Http/Requests/CategoryListRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace EscolaLms\Categories\Http\Requests;

use EscolaLms\Categories\Models\Category;
use Illuminate\Foundation\Http\FormRequest;

class CategoryListRequest extends FormRequest
{
public function authorize(): bool
{
$user = auth()->user();
return isset($user) ? $user->can('list', Category::class) : false;
}

/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [];
}
}
25 changes: 25 additions & 0 deletions src/Http/Requests/CategoryReadRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace EscolaLms\Categories\Http\Requests;

use EscolaLms\Categories\Models\Category;
use Illuminate\Foundation\Http\FormRequest;

class CategoryReadRequest extends FormRequest
{
public function authorize(): bool
{
$user = auth()->user();
return isset($user) ? $user->can('read', Category::class) : false;
}

/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [];
}
}
8 changes: 3 additions & 5 deletions src/Http/Requests/CategoryUpdateRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

class CategoryUpdateRequest extends FormRequest
{
public function authorize()
public function authorize(): bool
{
$user = auth()->user();
$category = Category::find($this->route('category'));
Expand All @@ -19,10 +19,8 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [

];
return [];
}
}
16 changes: 13 additions & 3 deletions src/Policies/CategoryPolicy.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,22 @@ class CategoryPolicy
{
use HandlesAuthorization;

public function list(User $user): bool
{
return $user->can(CategoriesPermissionsEnum::CATEGORY_LIST);
}

public function read(User $user): bool
{
return $user->can(CategoriesPermissionsEnum::CATEGORY_READ);
}

/**
* @param User $user
* @param Category $category
* @return bool
*/
public function update(User $user, Category $category)
public function update(User $user, Category $category): bool
{
return $user->can(CategoriesPermissionsEnum::CATEGORY_UPDATE);
}
Expand All @@ -26,7 +36,7 @@ public function update(User $user, Category $category)
* @param User $user
* @return bool
*/
public function create(User $user)
public function create(User $user): bool
{
return $user->can(CategoriesPermissionsEnum::CATEGORY_CREATE);
}
Expand All @@ -36,7 +46,7 @@ public function create(User $user)
* @param Category $category
* @return bool
*/
public function delete(User $user, Category $category)
public function delete(User $user, Category $category): bool
{
return $user->can(CategoriesPermissionsEnum::CATEGORY_DELETE);
}
Expand Down
Loading

0 comments on commit a19fe7e

Please sign in to comment.