WebOrbiton
v1.0.0.0

StocketBase

27 lines · 629 B
  1. <?php
  2. ​
  3. declare(strict_types=1);
  4. ​
  5. if (count(get_included_files()) === 1) {
  6. http_response_code(403);
  7. exit;
  8. }
  9. ​
  10. if (!Auth::hasRoleAtLeast(Auth::ROLE_STORE_MANAGER)) {
  11. return;
  12. }
  13. ​
  14. $reviewId = (int) ($_POST['review_id'] ?? 0);
  15. $decision = $_POST['decision'] ?? '';
  16. ​
  17. if ($reviewId <= 0 || !in_array($decision, ['show', 'hide'], true)) {
  18. return;
  19. }
  20. ​
  21. $status = $decision === 'show' ? 'visible' : 'hidden';
  22. ​
  23. Database::users()->prepare('UPDATE product_reviews SET status = :status WHERE id = :id')
  24. ->execute(['status' => $status, 'id' => $reviewId]);
  25. ​
  26. ActivityLog::record('review.moderate', 'review', $reviewId, $status);
  27. ​