Skip to content

feat: implement evidence moderator flags and isHidden logic#242

Merged
dDevAhmed merged 3 commits into
DigiNodes:mainfrom
yunus-dev-codecrafter:evidence-moderator-flags-logic
May 30, 2026
Merged

feat: implement evidence moderator flags and isHidden logic#242
dDevAhmed merged 3 commits into
DigiNodes:mainfrom
yunus-dev-codecrafter:evidence-moderator-flags-logic

Conversation

@yunus-dev-codecrafter
Copy link
Copy Markdown
Contributor

closes #217

PR Title: Implement Evidence Moderator Flags and isHidden Logic

📚 Overview

This PR addresses security and integrity concerns identified during the audit (Ref #BE-217) by implementing a robust moderation system for evidence submission. It introduces the ability for moderators to flag evidence, which triggers an automatic "hidden" state to prevent malicious or invalid content from being publicly visible.

🎯 Objectives

  • Implement isHidden flag logic for Evidence entities.
  • Enable automatic hiding of evidence when flagged by authorized moderators.
  • Restrict public access to flagged evidence while maintaining admin visibility.
  • Add comprehensive unit tests to ensure logic integrity.

🧩 Key Changes

1. Schema & Entities

  • Added isHidden: boolean to evidence.entity.ts.
  • Added isModerator: boolean to evidence-flag.entity.ts to distinguish authoritative flags.

2. Business Logic

  • evidence-flag.service.ts: Updated createFlag to toggle isHidden on the associated Evidence if the flagger is a moderator.
  • evidence.service.ts: Refactored retrieval methods (getEvidence, getEvidenceForClaim) to filter out hidden records by default.

3. API Layer

  • claims.controller.ts: Added admin=true query parameter support to bypass visibility filters for administrative views.

✅ Verification Results

  • Unit Tests: 11 tests passed across EvidenceService and EvidenceFlagService.
  • Protocol Invariants: Confirmed that hidden evidence is unreachable via standard public endpoints but accessible for review via admin-privileged requests.

🛠 Testing Command

npx jest src/claims/evidence-flag.service.spec.ts src/claims/evidence.service.spec.ts

@dDevAhmed
Copy link
Copy Markdown
Contributor

resolve conflicts @yunus-dev-codecrafter

@yunus-dev-codecrafter
Copy link
Copy Markdown
Contributor Author

Conflicts resolved

@dDevAhmed dDevAhmed merged commit db7fb92 into DigiNodes:main May 30, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Evidence moderator flags logic

2 participants