Skip to content

Commit df47c92

Browse files
committed
tests: add tests for resource controller
1 parent 32e631e commit df47c92

File tree

2 files changed

+633
-23
lines changed

2 files changed

+633
-23
lines changed

app/Http/Controllers/ResourceController.php

Lines changed: 67 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use App\Models\FormField;
1212
use Illuminate\Support\Facades\Auth;
1313
use Spatie\Permission\Models\Role;
14+
use Spatie\Permission\Models\Permission;
1415

1516
class ResourceController extends Controller
1617
{
@@ -22,7 +23,14 @@ class ResourceController extends Controller
2223
public function index($table, Request $request)
2324
{
2425
$role = Role::where('name', '=', 'guest')->first();
25-
if(!$role->hasPermissionTo('browse bread ' . $table)){
26+
try {
27+
if($role->hasPermissionTo('browse bread ' . $table)){
28+
$guestHasPermission = true;
29+
}
30+
} catch (\Throwable $e) {
31+
$guestHasPermission = false;
32+
}
33+
if(!$guestHasPermission){
2634
if(empty(Auth::user())){
2735
abort('401');
2836
}else{
@@ -52,15 +60,22 @@ public function index($table, Request $request)
5260
public function create($table, Request $request)
5361
{
5462
$role = Role::where('name', '=', 'guest')->first();
55-
if(!$role->hasPermissionTo('add bread ' . $table)){
63+
try {
64+
if($role->hasPermissionTo('add bread ' . $table)){
65+
$guestHasPermission = true;
66+
}
67+
} catch (\Throwable $e) {
68+
$guestHasPermission = false;
69+
}
70+
if(!$guestHasPermission){
5671
if(empty(Auth::user())){
5772
abort('401');
5873
}else{
5974
if(!Auth::user()->can('add bread ' . $table)){
6075
abort('401');
6176
}
6277
}
63-
}
78+
}
6479
$form = Form::find( $table );
6580
if($form->add == 1){
6681
$resourceService = new ResourceService();
@@ -74,8 +89,7 @@ public function create($table, Request $request)
7489
'inputOptions' => $formService->getFromOptionsStandardInput(),
7590
]);
7691
}else{
77-
$request->session()->flash('message', 'Add to table is not enable');
78-
return redirect()->route('resource.index', $table );
92+
abort('401');
7993
}
8094
}
8195

@@ -88,15 +102,22 @@ public function create($table, Request $request)
88102
public function store($table, Request $request)
89103
{
90104
$role = Role::where('name', '=', 'guest')->first();
91-
if(!$role->hasPermissionTo('add bread ' . $table)){
105+
try {
106+
if($role->hasPermissionTo('add bread ' . $table)){
107+
$guestHasPermission = true;
108+
}
109+
} catch (\Throwable $e) {
110+
$guestHasPermission = false;
111+
}
112+
if(!$guestHasPermission){
92113
if(empty(Auth::user())){
93114
abort('401');
94115
}else{
95116
if(!Auth::user()->can('add bread ' . $table)){
96117
abort('401');
97118
}
98119
}
99-
}
120+
}
100121
$toValidate = array();
101122
$form = Form::find( $table );
102123
$formFields = FormField::where('form_id', '=', $table)->where('add', '=', '1')->get();
@@ -110,8 +131,7 @@ public function store($table, Request $request)
110131
$request->session()->flash('message', 'Successfully added to ' . $form->name);
111132
return redirect()->route('resource.index', $table );
112133
}else{
113-
$request->session()->flash('message', 'Add to table is not enable');
114-
return redirect()->route('resource.index', $table );
134+
abort('401');
115135
}
116136
}
117137

@@ -121,18 +141,25 @@ public function store($table, Request $request)
121141
* @param int $id
122142
* @return \Illuminate\Http\Response
123143
*/
124-
public function show($table, $id)
144+
public function show($table, $id, Request $request)
125145
{
126146
$role = Role::where('name', '=', 'guest')->first();
127-
if(!$role->hasPermissionTo('read bread ' . $table)){
147+
try {
148+
if($role->hasPermissionTo('read bread ' . $table)){
149+
$guestHasPermission = true;
150+
}
151+
} catch (\Throwable $e) {
152+
$guestHasPermission = false;
153+
}
154+
if(!$guestHasPermission){
128155
if(empty(Auth::user())){
129156
abort('401');
130157
}else{
131158
if(!Auth::user()->can('read bread ' . $table)){
132159
abort('401');
133160
}
134161
}
135-
}
162+
}
136163
$form = Form::find( $table );
137164
if($form->read == 1){
138165
$resourceService = new ResourceService();
@@ -141,8 +168,7 @@ public function show($table, $id)
141168
'columns' => $resourceService->show($form->id, $form->table_name, $id),
142169
]);
143170
}else{
144-
$request->session()->flash('message', 'Read this table is not enable');
145-
return redirect()->route('resource.index', $table );
171+
abort('401');
146172
}
147173
}
148174

@@ -155,7 +181,14 @@ public function show($table, $id)
155181
public function edit($table, $id)
156182
{
157183
$role = Role::where('name', '=', 'guest')->first();
158-
if(!$role->hasPermissionTo('edit bread ' . $table)){
184+
try {
185+
if($role->hasPermissionTo('edit bread ' . $table)){
186+
$guestHasPermission = true;
187+
}
188+
} catch (\Throwable $e) {
189+
$guestHasPermission = false;
190+
}
191+
if(!$guestHasPermission){
159192
if(empty(Auth::user())){
160193
abort('401');
161194
}else{
@@ -176,8 +209,7 @@ public function edit($table, $id)
176209
'id' => $id,
177210
]);
178211
}else{
179-
$request->session()->flash('message', 'Edit table is not enable');
180-
return redirect()->route('resource.index', $table );
212+
abort('401');
181213
}
182214
}
183215

@@ -191,7 +223,14 @@ public function edit($table, $id)
191223
public function update($table, $id, Request $request)
192224
{
193225
$role = Role::where('name', '=', 'guest')->first();
194-
if(!$role->hasPermissionTo('edit bread ' . $table)){
226+
try {
227+
if($role->hasPermissionTo('edit bread ' . $table)){
228+
$guestHasPermission = true;
229+
}
230+
} catch (\Throwable $e) {
231+
$guestHasPermission = false;
232+
}
233+
if(!$guestHasPermission){
195234
if(empty(Auth::user())){
196235
abort('401');
197236
}else{
@@ -213,8 +252,7 @@ public function update($table, $id, Request $request)
213252
$request->session()->flash('message', 'Successfully edited ' . $form->name);
214253
return redirect()->route('resource.index', $table );
215254
}else{
216-
$request->session()->flash('message', 'Edit table is not enable');
217-
return redirect()->route('resource.index', $table );
255+
abort('401');
218256
}
219257
}
220258

@@ -227,7 +265,14 @@ public function update($table, $id, Request $request)
227265
public function destroy($table, Request $request, $id)
228266
{
229267
$role = Role::where('name', '=', 'guest')->first();
230-
if(!$role->hasPermissionTo('delete bread ' . $table)){
268+
try {
269+
if($role->hasPermissionTo('delete bread ' . $table)){
270+
$guestHasPermission = true;
271+
}
272+
} catch (\Throwable $e) {
273+
$guestHasPermission = false;
274+
}
275+
if(!$guestHasPermission){
231276
if(empty(Auth::user())){
232277
abort('401');
233278
}else{
@@ -246,8 +291,7 @@ public function destroy($table, Request $request, $id)
246291
return view('dashboard.resource.delete', ['table' => $table, 'id' => $id, 'formName' => $form->name]);
247292
}
248293
}else{
249-
$request->session()->flash('message', 'Delete object from table is not enable');
250-
return redirect()->route('resource.index', $table );
294+
abort('401');
251295
}
252296
}
253297
}

0 commit comments

Comments
 (0)