AnswerPolicy.php 848 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Policies;
  3. use App\Models\Answer;
  4. use App\Models\User;
  5. use App\Policies\Traits\AdminTrait;
  6. use Illuminate\Auth\Access\HandlesAuthorization;
  7. class AnswerPolicy
  8. {
  9. use HandlesAuthorization,AdminTrait;
  10. /**
  11. * Create a new policy instance.
  12. *
  13. * @return void
  14. */
  15. public function __construct()
  16. {
  17. //
  18. }
  19. public function update(User $user,Answer $answer){
  20. return $answer->user_id == $user->id;
  21. }
  22. public function updateInTime(User $user,Answer $answer){
  23. if( Setting()->get('edit_answer_timeout') && $answer->created_at->diffInMinutes() > Setting()->get('edit_answer_timeout') ){
  24. return false;
  25. }
  26. return true;
  27. }
  28. public function adopt(User $user,Answer $answer){
  29. return $answer->question->user_id == $user->id;
  30. }
  31. }