Skip to content

Commit d34eb86

Browse files
authored
Merge pull request #65 from balajidharma/2.x-Changes
Replaced request with Laravel Data & Added Policy
2 parents aa5f2cf + ec4afc8 commit d34eb86

30 files changed

+200
-210
lines changed

app/Http/Controllers/Admin/CategoryController.php

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,23 @@
33
namespace App\Http\Controllers\Admin;
44

55
use App\Http\Controllers\Controller;
6-
use BalajiDharma\LaravelAdminCore\Requests\StoreCategoryRequest;
7-
use BalajiDharma\LaravelAdminCore\Requests\UpdateCategoryRequest;
6+
use BalajiDharma\LaravelAdminCore\Actions\Category\CategoryCreateAction;
7+
use BalajiDharma\LaravelAdminCore\Actions\Category\CategoryUpdateAction;
8+
use BalajiDharma\LaravelAdminCore\Data\Category\CategoryCreateData;
9+
use BalajiDharma\LaravelAdminCore\Data\Category\CategoryUpdateData;
810
use BalajiDharma\LaravelCategory\Models\Category;
911
use BalajiDharma\LaravelCategory\Models\CategoryType;
1012

1113
class CategoryController extends Controller
1214
{
13-
public function __construct()
14-
{
15-
$this->middleware('can:category list', ['only' => ['index', 'show']]);
16-
$this->middleware('can:category create', ['only' => ['create', 'store']]);
17-
$this->middleware('can:category edit', ['only' => ['edit', 'update']]);
18-
$this->middleware('can:category delete', ['only' => ['destroy']]);
19-
}
20-
2115
/**
2216
* Display a listing of the resource.
2317
*
2418
* @return \Illuminate\View\View
2519
*/
2620
public function index(CategoryType $type)
2721
{
22+
$this->authorize('adminViewAny', Category::class);
2823
$items = (new Category)->toTree($type->id, true);
2924

3025
return view('admin.category.item.index', compact('items', 'type'));
@@ -37,6 +32,7 @@ public function index(CategoryType $type)
3732
*/
3833
public function create(CategoryType $type)
3934
{
35+
$this->authorize('adminCreate', Category::class);
4036
$item_options = Category::selectOptions($type->id, null, true);
4137

4238
return view('admin.category.item.create', compact('type', 'item_options'));
@@ -47,13 +43,10 @@ public function create(CategoryType $type)
4743
*
4844
* @return \Illuminate\Http\RedirectResponse
4945
*/
50-
public function store(StoreCategoryRequest $request, CategoryType $type)
46+
public function store(CategoryCreateData $data, CategoryType $type, CategoryCreateAction $categoryCreateAction)
5147
{
52-
if (! $request->has('enabled')) {
53-
$request['enabled'] = false;
54-
}
55-
56-
$type->categories()->create($request->all());
48+
$this->authorize('adminCreate', Category::class);
49+
$categoryCreateAction->handle($data, $type);
5750

5851
return redirect()->route('admin.category.type.item.index', $type->id)
5952
->with('message', 'Category created successfully.');
@@ -66,6 +59,7 @@ public function store(StoreCategoryRequest $request, CategoryType $type)
6659
*/
6760
public function edit(CategoryType $type, Category $item)
6861
{
62+
$this->authorize('adminUpdate', $item);
6963
$item_options = Category::selectOptions($type->id, $item->parent_id ?? $item->id);
7064

7165
return view('admin.category.item.edit', compact('type', 'item', 'item_options'));
@@ -76,13 +70,10 @@ public function edit(CategoryType $type, Category $item)
7670
*
7771
* @return \Illuminate\Http\RedirectResponse
7872
*/
79-
public function update(UpdateCategoryRequest $request, CategoryType $type, Category $item)
73+
public function update(CategoryUpdateData $data, CategoryType $type, Category $item, CategoryUpdateAction $categoryUpdateAction)
8074
{
81-
if (! $request->has('enabled')) {
82-
$request['enabled'] = false;
83-
}
84-
85-
$item->update($request->all());
75+
$this->authorize('adminUpdate', $item);
76+
$categoryUpdateAction->handle($data, $item);
8677

8778
return redirect()->route('admin.category.type.item.index', $type->id)
8879
->with('message', 'Category updated successfully.');
@@ -96,6 +87,7 @@ public function update(UpdateCategoryRequest $request, CategoryType $type, Categ
9687
*/
9788
public function destroy(CategoryType $type, Category $item)
9889
{
90+
$this->authorize('adminDelete', $item);
9991
$item->delete();
10092

10193
return redirect()->route('admin.category.type.item.index', $type->id)

app/Http/Controllers/Admin/CategoryTypeController.php

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,22 @@
33
namespace App\Http\Controllers\Admin;
44

55
use App\Http\Controllers\Controller;
6-
use BalajiDharma\LaravelAdminCore\Requests\StoreCategoryTypeRequest;
7-
use BalajiDharma\LaravelAdminCore\Requests\UpdateCategoryTypeRequest;
6+
use BalajiDharma\LaravelAdminCore\Actions\CategoryType\CategoryTypeCreateAction;
7+
use BalajiDharma\LaravelAdminCore\Actions\CategoryType\CategoryTypeUpdateAction;
8+
use BalajiDharma\LaravelAdminCore\Data\CategoryType\CategoryTypeCreateData;
9+
use BalajiDharma\LaravelAdminCore\Data\CategoryType\CategoryTypeUpdateData;
810
use BalajiDharma\LaravelCategory\Models\CategoryType;
911

1012
class CategoryTypeController extends Controller
1113
{
12-
public function __construct()
13-
{
14-
$this->middleware('can:category.type list', ['only' => ['index']]);
15-
$this->middleware('can:category.type create', ['only' => ['create', 'store']]);
16-
$this->middleware('can:category.type edit', ['only' => ['edit', 'update']]);
17-
$this->middleware('can:category.type delete', ['only' => ['destroy']]);
18-
}
19-
2014
/**
2115
* Display a listing of the resource.
2216
*
2317
* @return \Illuminate\View\View
2418
*/
2519
public function index()
2620
{
21+
$this->authorize('adminViewAny', CategoryType::class);
2722
$categoryTypes = (new CategoryType)->newQuery();
2823

2924
if (request()->has('search')) {
@@ -55,6 +50,8 @@ public function index()
5550
*/
5651
public function create()
5752
{
53+
$this->authorize('adminCreate', CategoryType::class);
54+
5855
return view('admin.category.type.create');
5956
}
6057

@@ -63,18 +60,10 @@ public function create()
6360
*
6461
* @return \Illuminate\Http\RedirectResponse
6562
*/
66-
public function store(StoreCategoryTypeRequest $request)
63+
public function store(CategoryTypeCreateData $data, CategoryTypeCreateAction $categoryTypeCreateAction)
6764
{
68-
if (! $request->has('is_flat')) {
69-
$request['is_flat'] = false;
70-
}
71-
72-
CategoryType::create([
73-
'name' => $request->name,
74-
'machine_name' => $request->machine_name,
75-
'description' => $request->description,
76-
'is_flat' => $request->is_flat,
77-
]);
65+
$this->authorize('adminCreate', CategoryType::class);
66+
$categoryTypeCreateAction->handle($data);
7867

7968
return redirect()->route('admin.category.type.index')
8069
->with('message', 'Category type created successfully.');
@@ -88,6 +77,8 @@ public function store(StoreCategoryTypeRequest $request)
8877
*/
8978
public function edit(CategoryType $type)
9079
{
80+
$this->authorize('adminUpdate', $type);
81+
9182
return view('admin.category.type.edit', compact('type'));
9283
}
9384

@@ -97,13 +88,10 @@ public function edit(CategoryType $type)
9788
* @param \BalajiDharma\LaravelCategory\Models\CategoryType $categoryType
9889
* @return \Illuminate\Http\RedirectResponse
9990
*/
100-
public function update(UpdateCategoryTypeRequest $request, CategoryType $type)
91+
public function update(CategoryTypeUpdateData $data, CategoryType $type, CategoryTypeUpdateAction $categoryTypeUpdateAction)
10192
{
102-
if (! $request->has('is_flat')) {
103-
$request['is_flat'] = false;
104-
}
105-
106-
$type->update($request->all());
93+
$this->authorize('adminUpdate', $type);
94+
$categoryTypeUpdateAction->handle($data, $type);
10795

10896
return redirect()->route('admin.category.type.index')
10997
->with('message', 'Category type updated successfully.');
@@ -117,6 +105,7 @@ public function update(UpdateCategoryTypeRequest $request, CategoryType $type)
117105
*/
118106
public function destroy(CategoryType $type)
119107
{
108+
$this->authorize('adminDelete', $type);
120109
$type->delete();
121110

122111
return redirect()->route('admin.category.type.index')
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Admin;
4+
5+
use App\Http\Controllers\Controller;
6+
7+
class MediaManagerController extends Controller
8+
{
9+
10+
}

app/Http/Controllers/Admin/MenuController.php

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,22 @@
33
namespace App\Http\Controllers\Admin;
44

55
use App\Http\Controllers\Controller;
6-
use BalajiDharma\LaravelAdminCore\Requests\StoreMenuRequest;
7-
use BalajiDharma\LaravelAdminCore\Requests\UpdateMenuRequest;
6+
use BalajiDharma\LaravelAdminCore\Actions\Menu\MenuCreateAction;
7+
use BalajiDharma\LaravelAdminCore\Actions\Menu\MenuUpdateAction;
8+
use BalajiDharma\LaravelAdminCore\Data\Menu\MenuCreateData;
9+
use BalajiDharma\LaravelAdminCore\Data\Menu\MenuUpdateData;
810
use BalajiDharma\LaravelMenu\Models\Menu;
911

1012
class MenuController extends Controller
1113
{
12-
public function __construct()
13-
{
14-
$this->middleware('can:menu list', ['only' => ['index']]);
15-
$this->middleware('can:menu create', ['only' => ['create', 'store']]);
16-
$this->middleware('can:menu edit', ['only' => ['edit', 'update']]);
17-
$this->middleware('can:menu delete', ['only' => ['destroy']]);
18-
}
19-
2014
/**
2115
* Display a listing of the resource.
2216
*
2317
* @return \Illuminate\View\View
2418
*/
2519
public function index()
2620
{
21+
$this->authorize('adminViewAny', Menu::class);
2722
$menus = (new Menu)->newQuery();
2823

2924
if (request()->has('search')) {
@@ -55,6 +50,8 @@ public function index()
5550
*/
5651
public function create()
5752
{
53+
$this->authorize('adminCreate', Menu::class);
54+
5855
return view('admin.menu.create');
5956
}
6057

@@ -63,13 +60,10 @@ public function create()
6360
*
6461
* @return \Illuminate\Http\RedirectResponse
6562
*/
66-
public function store(StoreMenuRequest $request)
63+
public function store(MenuCreateData $data, MenuCreateAction $menuCreateAction)
6764
{
68-
Menu::create([
69-
'name' => $request->name,
70-
'machine_name' => $request->machine_name,
71-
'description' => $request->description,
72-
]);
65+
$this->authorize('adminCreate', Menu::class);
66+
$menuCreateAction->handle($data);
7367

7468
return redirect()->route('admin.menu.index')
7569
->with('message', 'Menu created successfully.');
@@ -82,6 +76,8 @@ public function store(StoreMenuRequest $request)
8276
*/
8377
public function edit(Menu $menu)
8478
{
79+
$this->authorize('adminUpdate', $menu);
80+
8581
return view('admin.menu.edit', compact('menu'));
8682
}
8783

@@ -90,9 +86,10 @@ public function edit(Menu $menu)
9086
*
9187
* @return \Illuminate\Http\RedirectResponse
9288
*/
93-
public function update(UpdateMenuRequest $request, Menu $menu)
89+
public function update(MenuUpdateData $data, Menu $menu, MenuUpdateAction $menuUpdateAction)
9490
{
95-
$menu->update($request->all());
91+
$this->authorize('adminUpdate', $menu);
92+
$menuUpdateAction->handle($data, $menu);
9693

9794
return redirect()->route('admin.menu.index')
9895
->with('message', 'Menu updated successfully.');
@@ -105,6 +102,7 @@ public function update(UpdateMenuRequest $request, Menu $menu)
105102
*/
106103
public function destroy(Menu $menu)
107104
{
105+
$this->authorize('adminDelete', $menu);
108106
$menu->delete();
109107

110108
return redirect()->route('admin.menu.index')

app/Http/Controllers/Admin/MenuItemController.php

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,23 @@
44

55
use App\Http\Controllers\Controller;
66
use App\Models\Role;
7-
use BalajiDharma\LaravelAdminCore\Requests\StoreMenuItemRequest;
8-
use BalajiDharma\LaravelAdminCore\Requests\UpdateMenuItemRequest;
7+
use BalajiDharma\LaravelAdminCore\Actions\MenuItem\MenuItemCreateAction;
8+
use BalajiDharma\LaravelAdminCore\Actions\MenuItem\MenuItemUpdateAction;
9+
use BalajiDharma\LaravelAdminCore\Data\MenuItem\MenuItemCreateData;
10+
use BalajiDharma\LaravelAdminCore\Data\MenuItem\MenuItemUpdateData;
911
use BalajiDharma\LaravelMenu\Models\Menu;
1012
use BalajiDharma\LaravelMenu\Models\MenuItem;
1113

1214
class MenuItemController extends Controller
1315
{
14-
public function __construct()
15-
{
16-
$this->middleware('can:menu list', ['only' => ['index', 'show']]);
17-
$this->middleware('can:menu create', ['only' => ['create', 'store']]);
18-
$this->middleware('can:menu edit', ['only' => ['edit', 'update']]);
19-
$this->middleware('can:menu delete', ['only' => ['destroy']]);
20-
}
21-
2216
/**
2317
* Display a listing of the resource.
2418
*
2519
* @return \Illuminate\View\View
2620
*/
2721
public function index(Menu $menu)
2822
{
23+
$this->authorize('adminViewAny', MenuItem::class);
2924
$items = (new MenuItem)->toTree($menu->id, true);
3025

3126
return view('admin.menu.item.index', compact('items', 'menu'));
@@ -38,6 +33,7 @@ public function index(Menu $menu)
3833
*/
3934
public function create(Menu $menu)
4035
{
36+
$this->authorize('adminCreate', MenuItem::class);
4137
$item_options = MenuItem::selectOptions($menu->id, null, true);
4238
$roles = Role::all();
4339

@@ -49,16 +45,10 @@ public function create(Menu $menu)
4945
*
5046
* @return \Illuminate\Http\RedirectResponse
5147
*/
52-
public function store(StoreMenuItemRequest $request, Menu $menu)
48+
public function store(MenuItemCreateData $data, Menu $menu, MenuItemCreateAction $menuItemCreateAction)
5349
{
54-
if (! $request->has('enabled')) {
55-
$request['enabled'] = false;
56-
}
57-
58-
$item = $menu->menuItems()->create($request->except(['roles']));
59-
60-
$roles = $request->roles ?? [];
61-
$item->assignRole(array_map('intval', $roles));
50+
$this->authorize('adminCreate', MenuItem::class);
51+
$menuItemCreateAction->handle($data, $menu);
6252

6353
return redirect()->route('admin.menu.item.index', $menu->id)
6454
->with('message', 'Menu created successfully.');
@@ -71,6 +61,7 @@ public function store(StoreMenuItemRequest $request, Menu $menu)
7161
*/
7262
public function edit(Menu $menu, MenuItem $item)
7363
{
64+
$this->authorize('adminUpdate', $item);
7465
$item_options = MenuItem::selectOptions($menu->id, $item->parent_id ?? $item->id);
7566
$roles = Role::all();
7667
$itemHasRoles = array_column(json_decode($item->roles, true), 'id');
@@ -83,16 +74,10 @@ public function edit(Menu $menu, MenuItem $item)
8374
*
8475
* @return \Illuminate\Http\RedirectResponse
8576
*/
86-
public function update(UpdateMenuItemRequest $request, Menu $menu, MenuItem $item)
77+
public function update(MenuItemUpdateData $data, Menu $menu, MenuItem $item, MenuItemUpdateAction $menuItemUpdateAction)
8778
{
88-
if (! $request->has('enabled')) {
89-
$request['enabled'] = false;
90-
}
91-
92-
$item->update($request->except(['roles']));
93-
94-
$roles = $request->roles ?? [];
95-
$item->syncRoles(array_map('intval', $roles));
79+
$this->authorize('adminUpdate', $item);
80+
$menuItemUpdateAction->handle($data, $item);
9681

9782
return redirect()->route('admin.menu.item.index', $menu->id)
9883
->with('message', 'Menu Item updated successfully.');
@@ -106,6 +91,7 @@ public function update(UpdateMenuItemRequest $request, Menu $menu, MenuItem $ite
10691
*/
10792
public function destroy(Menu $menu, MenuItem $item)
10893
{
94+
$this->authorize('adminDelete', $item);
10995
$item->delete();
11096

11197
return redirect()->route('admin.menu.item.index', $menu->id)

0 commit comments

Comments
 (0)