Browse Source

Update job policy for see job pricings

pull/6/head
Nafies Luthfi 8 years ago
parent
commit
22b63a6e8f
  1. 13
      app/Policies/Projects/JobPolicy.php
  2. 2
      resources/views/jobs/partials/job-show.blade.php
  3. 12
      resources/views/jobs/unfinished.blade.php
  4. 11
      tests/Unit/Policies/JobPolicyTest.php

13
app/Policies/Projects/JobPolicy.php

@ -67,4 +67,17 @@ class JobPolicy
{
return $user->hasRole('admin');
}
/**
* Determine whether the user can see job pricings.
*
* @param \App\Entities\Users\User $user
* @param \App\Entities\Projects\Job $job
*
* @return mixed
*/
public function seePricings(User $user, Job $job)
{
return $user->hasRole('admin');
}
}

2
resources/views/jobs/partials/job-show.blade.php

@ -4,7 +4,7 @@
<tbody>
<tr><th class="col-md-4">{{ trans('job.name') }}</th><td class="col-md-8">{{ $job->name }}</td></tr>
<tr><th>{{ trans('job.type') }}</th><td>{{ $job->type() }}</td></tr>
@can('see-pricings', $job->project)
@can('see-pricings', $job)
<tr><th>{{ trans('job.price') }}</th><td>{{ formatRp($job->price) }}</td></tr>
@endcan
<tr><th>{{ trans('job.progress') }}</th><td>{{ formatDecimal($job->tasks->avg('progress')) }}%</td></tr>

12
resources/views/jobs/unfinished.blade.php

@ -13,9 +13,9 @@
<th>{{ trans('job.name') }}</th>
<th class="text-center">{{ trans('job.tasks_count') }}</th>
<th class="text-center">{{ trans('job.progress') }}</th>
@if(auth()->user()->hasRole('admin'))
@can('see-pricings', new App\Entities\Projects\Job)
<th class="text-right">{{ trans('job.price') }}</th>
@endauth
@endcan
<th>{{ trans('job.worker') }}</th>
<th>{{ trans('app.action') }}</th>
</thead>
@ -39,16 +39,16 @@
</td>
<td class="text-center">{{ $job->tasks_count = $job->tasks->count() }}</td>
<td class="text-center">{{ formatDecimal($job->progress) }} %</td>
@if(auth()->user()->hasRole('admin'))
@can('see-pricings', $job)
<td class="text-right">{{ formatRp($job->price) }}</td>
@endif
@endcan
<td>{{ $job->worker->name }}</td>
<td>
{!! link_to_route('jobs.show', trans('app.show'),[$job->id],['class' => 'btn btn-info btn-xs']) !!}
</td>
</tr>
@empty
<tr><td colspan="7">{{ trans('job.empty') }}</td></tr>
<tr><td colspan="8">{{ trans('job.empty') }}</td></tr>
@endforelse
</tbody>
<tfoot>
@ -56,7 +56,9 @@
<th class="text-right" colspan="3">Total</th>
<th class="text-center">{{ $jobs->sum('tasks_count') }}</th>
<th class="text-center">{{ formatDecimal($jobs->avg('progress')) }} %</th>
@can('see-pricings', new App\Entities\Projects\Job)
<th class="text-right">{{ formatRp($jobs->sum('price')) }}</th>
@endcan
<th colspan="2"></th>
</tr>
</tfoot>

11
tests/Unit/Policies/JobPolicyTest.php

@ -70,4 +70,15 @@ class JobPolicyTest extends TestCase
$this->assertTrue($admin->can('update', $job));
$this->assertFalse($worker->can('update', $job));
}
/** @test */
public function only_admin_can_see_job_pricings()
{
$admin = $this->createUser('admin');
$worker = $this->createUser('worker');
$job = factory(Job::class)->create(['worker_id' => $worker->id]);
$this->assertTrue($admin->can('see-pricings', $job));
$this->assertFalse($worker->can('see-pricings', $job));
}
}
Loading…
Cancel
Save