8000 Allow limited editing of approved submissions · Issue #103 · jra3/mulm · GitHub
[go: up one dir, main page]

Skip to content

Allow limited editing of approved submissions #103

Closed

Description

@jra3

Overview

Users should be able to add photos to their approved submissions, while admins should have full edit capabilities. Regular users should be able to request corrections via email.

Current State

Edit permissions:

  • Unsubmitted drafts: Owner can fully edit
  • Submitted but not approved: Owner can "unsubmit" to edit
  • Approved submissions: No editing for anyone

Proposed Features

1. User Photo-Only Edit (Approved Submissions)

Users can add additional photos to their own approved submissions without changing any breeding data.

Implementation:

  • New route: GET /submissions/:id/add-photos
  • New route: PATCH /submissions/:id/photos
  • Button on submission view: "Add Photos" (only for approved submissions owned by user)
  • Minimal form showing:
    • Submission context (read-only)
    • Existing photos (read-only gallery)
    • Image upload component (editable)
  • Updates only images field in database

2. Admin Full Edit (Approved Submissions)

Admins should have unlimited ability to correct any data in approved submissions.

Implementation:

  • Update permission check in src/routes/submission.ts update() function
  • Allow admins to edit ALL fields even when approved
  • Show warning banner: "⚠️ Editing approved submission"
  • Optional: Add audit trail (edit_history JSON column)

3. User Correction Request

Regular users should be able to request corrections via email form.

Implementation:

  • New route: GET /submissions/:id/request-correction
  • New route: POST /submissions/:id/request-correction
  • Form with:
    • Submission context (read-only)
    • Text area: "What needs to be corrected?"
  • Email sent to admins with:
    • Link to submission
    • Correction request text
    • Link to admin edit page
  • Button on submission view: "Request Correction" (only for approved submissions owned by user)

Implementation Plan

Phase 1: User Photo-Only Edit

New files:

  • src/views/submission/add-photos.pug - Photo upload form

Modified files:

  • src/routes/submission.ts - Add renderAddPhotos() and updatePhotos() handlers
  • src/views/submission/review.pug - Add "Add Photos" button
  • src/routes/api/upload.ts - Update permissions to allow photo upload/delete for approved submissions

Phase 2: Admin Full Edit

Modified files:

  • src/routes/submission.ts - Update permission checks in update() function
  • src/views/submission/review.pug - Uncomment/fix admin edit button (line 71-74)
  • Edit form template - Add warning banner for approved submissions

Phase 3: Correction Request

New files:

  • src/views/submission/request-correction.pug - Correction request form

Modified files:

  • src/notifications.ts - Add sendCorrectionRequest() function
  • src/routes/submission.ts - Add correction request handlers
  • src/views/submission/review.pug - Add "Request Correction" button

Security Considerations

✅ Photo editing: Only owner, only images field, approved submissions only
✅ Admin editing: Full access with warning/logging
✅ Correction requests: Rate limited, email only (no direct DB changes)
✅ Upload API: Already has authentication + rate limiting

Testing Checklist

  • User can add photos to their own approved submission
  • User cannot edit data fields on approved submission
  • User cannot add photos to others' submissions
  • Admin can fully edit any approved submission
  • Admin edit shows warning banner
  • User can request correction on approved submission
  • Correction request sends email to admins
  • Correction request includes submission link

Files to Create/Modify

New files:

  • src/views/submission/add-photos.pug
  • src/views/submission/request-correction.pug

Modified files:

  • src/routes/submission.ts
  • src/views/submission/review.pug
  • src/routes/api/upload.ts
  • src/notifications.ts

Activity

  1. jra3 commented on Oct 7, 2025

    @jra3
    OwnerAuthor

    Note: This issue is tracked as part of master issue #115 (Image Upload System - Future Enhancements). See #115 for comprehensive planning of all image-related improvements including this photo editing feature.

  2. jra3 commented on Oct 21, 2025

    @jra3
    OwnerAuthor

    ✅ Implemented photo and video editing for submission owners on approved submissions.

    What was implemented:

    • Users can now add/edit/delete photos and videos on their approved submissions
    • New route: GET /submissions/:id/edit-media
    • New route: PATCH /submissions/:id/media
    • 'Edit Photos & Video' button appears on approved submissions for the owner
    • Enforces 5 photo limit
    • Only updates images and video_url fields (no breeding data modification)
    • Validated with proper TypeScript types and permissions

    What was NOT implemented from the original issue:

    • Admin full edit is already implemented (via /admin/submissions/:id/edit-approved)
    • User correction request feature deferred (can be implemented separately if needed)

    Closes with commit e8cf8c3

  3. added a commit that references this issue on Oct 21, 2025
    18d7960
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0