diff --git a/app/Policies/Projects/JobPolicy.php b/app/Policies/Projects/JobPolicy.php
index 08a0e51..b5262d9 100644
--- a/app/Policies/Projects/JobPolicy.php
+++ b/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');
+ }
}
diff --git a/resources/views/jobs/partials/job-show.blade.php b/resources/views/jobs/partials/job-show.blade.php
index 811b548..aceee15 100644
--- a/resources/views/jobs/partials/job-show.blade.php
+++ b/resources/views/jobs/partials/job-show.blade.php
@@ -4,7 +4,7 @@
| {{ trans('job.name') }} | {{ $job->name }} |
| {{ trans('job.type') }} | {{ $job->type() }} |
- @can('see-pricings', $job->project)
+ @can('see-pricings', $job)
| {{ trans('job.price') }} | {{ formatRp($job->price) }} |
@endcan
| {{ trans('job.progress') }} | {{ formatDecimal($job->tasks->avg('progress')) }}% |
diff --git a/resources/views/jobs/unfinished.blade.php b/resources/views/jobs/unfinished.blade.php
index df5c0d0..10962ce 100755
--- a/resources/views/jobs/unfinished.blade.php
+++ b/resources/views/jobs/unfinished.blade.php
@@ -13,9 +13,9 @@
{{ trans('job.name') }} |
{{ trans('job.tasks_count') }} |
{{ trans('job.progress') }} |
- @if(auth()->user()->hasRole('admin'))
+ @can('see-pricings', new App\Entities\Projects\Job)
{{ trans('job.price') }} |
- @endauth
+ @endcan
{{ trans('job.worker') }} |
{{ trans('app.action') }} |
@@ -39,16 +39,16 @@
{{ $job->tasks_count = $job->tasks->count() }} |
{{ formatDecimal($job->progress) }} % |
- @if(auth()->user()->hasRole('admin'))
+ @can('see-pricings', $job)
{{ formatRp($job->price) }} |
- @endif
+ @endcan
{{ $job->worker->name }} |
{!! link_to_route('jobs.show', trans('app.show'),[$job->id],['class' => 'btn btn-info btn-xs']) !!}
|
@empty
- | {{ trans('job.empty') }} |
+ | {{ trans('job.empty') }} |
@endforelse
@@ -56,7 +56,9 @@
Total |
{{ $jobs->sum('tasks_count') }} |
{{ formatDecimal($jobs->avg('progress')) }} % |
+ @can('see-pricings', new App\Entities\Projects\Job)
{{ formatRp($jobs->sum('price')) }} |
+ @endcan
|
diff --git a/tests/Unit/Policies/JobPolicyTest.php b/tests/Unit/Policies/JobPolicyTest.php
index 3650d95..6b985a1 100644
--- a/tests/Unit/Policies/JobPolicyTest.php
+++ b/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));
+ }
}