CustomerLogPolice.php 768 B

123456789101112131415161718192021222324252627
  1. <?php
  2. namespace App\Policies;
  3. use App\CustomerLog;
  4. use App\User;
  5. use Illuminate\Auth\Access\HandlesAuthorization;
  6. class CustomerLogPolice
  7. {
  8. use HandlesAuthorization;
  9. protected $cache_key = 'customerLog_update_auth_';
  10. public function update(User $user, CustomerLog $customerLog): bool
  11. {
  12. $lastOne = cache()->remember($this->cache_key . $user->id, 1, function () use ($user) {
  13. return CustomerLog::query()->where('user_id', $user->id)->orderByDesc('updated_at')->first();
  14. });
  15. return (int)$user->id === (int)$customerLog->user_id && $customerLog->id == $lastOne->id;
  16. }
  17. public function destroy(User $user, CustomerLog $customerLog)
  18. {
  19. return (int)$user->id === (int)$customerLog->user_id;
  20. }
  21. }