From e7e8aba9614eaad8ed0fe73704814e7a15d36b16 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 10 Feb 2018 07:48:39 +0800 Subject: [PATCH] Fixed proper can directive on form view --- src/stubs/view-forms.stub | 12 +++++++++--- tests/Generators/ViewsGeneratorTest.php | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/stubs/view-forms.stub b/src/stubs/view-forms.stub index f3aebb5..19c43b6 100644 --- a/src/stubs/view-forms.stub +++ b/src/stubs/view-forms.stub @@ -1,12 +1,15 @@ -@if (Request::get('action') == 'create' && auth()->user()->can('create', new fullMstr)) +@if (Request::get('action') == 'create') +@can('create', new fullMstr) {!! Form::open(['route' => 'masters.store']) !!} {!! FormField::text('name', ['required' => true, 'label' => trans('master.name')]) !!} {!! FormField::textarea('description', ['label' => trans('master.description')]) !!} {!! Form::submit(trans('master.create'), ['class' => 'btn btn-success']) !!} {{ link_to_route('masters.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} {!! Form::close() !!} +@endcan @endif -@if (Request::get('action') == 'edit' && $editableMaster && auth()->user()->can('update', $editableMaster)) +@if (Request::get('action') == 'edit' && $editableMaster) +@can('update', $editableMaster) {!! Form::model($editableMaster, ['route' => ['masters.update', $editableMaster->id],'method' => 'patch']) !!} {!! FormField::text('name', ['required' => true, 'label' => trans('master.name')]) !!} {!! FormField::textarea('description', ['label' => trans('master.description')]) !!} @@ -19,8 +22,10 @@ {!! Form::submit(trans('master.update'), ['class' => 'btn btn-success']) !!} {{ link_to_route('masters.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} {!! Form::close() !!} +@endcan @endif -@if (Request::get('action') == 'delete' && $editableMaster && auth()->user()->can('delete', $editableMaster)) +@if (Request::get('action') == 'delete' && $editableMaster) +@can('delete', $editableMaster)

{{ trans('master.delete') }}

@@ -46,4 +51,5 @@ {{ link_to_route('masters.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }}
+@endcan @endif diff --git a/tests/Generators/ViewsGeneratorTest.php b/tests/Generators/ViewsGeneratorTest.php index e0391f5..9469f00 100644 --- a/tests/Generators/ViewsGeneratorTest.php +++ b/tests/Generators/ViewsGeneratorTest.php @@ -96,15 +96,18 @@ class ViewsGeneratorTest extends TestCase $formViewPath = resource_path("views/{$this->table_name}/forms.blade.php"); $this->assertFileExists($formViewPath); - $formViewContent = "@if (Request::get('action') == 'create' && auth()->user()->can('create', new {$this->full_model_name})) + $formViewContent = "@if (Request::get('action') == 'create') +@can('create', new {$this->full_model_name}) {!! Form::open(['route' => '{$this->table_name}.store']) !!} {!! FormField::text('name', ['required' => true, 'label' => trans('{$this->lang_name}.name')]) !!} {!! FormField::textarea('description', ['label' => trans('{$this->lang_name}.description')]) !!} {!! Form::submit(trans('{$this->lang_name}.create'), ['class' => 'btn btn-success']) !!} {{ link_to_route('{$this->table_name}.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} {!! Form::close() !!} +@endcan @endif -@if (Request::get('action') == 'edit' && \$editable{$this->model_name} && auth()->user()->can('update', \$editable{$this->model_name})) +@if (Request::get('action') == 'edit' && \$editable{$this->model_name}) +@can('update', \$editable{$this->model_name}) {!! Form::model(\$editable{$this->model_name}, ['route' => ['{$this->table_name}.update', \$editable{$this->model_name}->id],'method' => 'patch']) !!} {!! FormField::text('name', ['required' => true, 'label' => trans('{$this->lang_name}.name')]) !!} {!! FormField::textarea('description', ['label' => trans('{$this->lang_name}.description')]) !!} @@ -117,8 +120,10 @@ class ViewsGeneratorTest extends TestCase {!! Form::submit(trans('{$this->lang_name}.update'), ['class' => 'btn btn-success']) !!} {{ link_to_route('{$this->table_name}.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} {!! Form::close() !!} +@endcan @endif -@if (Request::get('action') == 'delete' && \$editable{$this->model_name} && auth()->user()->can('delete', \$editable{$this->model_name})) +@if (Request::get('action') == 'delete' && \$editable{$this->model_name}) +@can('delete', \$editable{$this->model_name})

{{ trans('{$this->lang_name}.delete') }}

@@ -144,6 +149,7 @@ class ViewsGeneratorTest extends TestCase {{ link_to_route('{$this->table_name}.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }}
+@endcan @endif "; $this->assertEquals($formViewContent, file_get_contents($formViewPath));