Feature: Privacy, Terms and Research Consent#210
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a comprehensive privacy, terms, and research consent system for OpenQDA. It enables users to review legal documents, accept required terms during registration, and opt-in to research participation with a double opt-in email confirmation workflow.
- Adds privacy policy and terms of use pages with markdown content
- Implements a research consent system with email verification workflow
- Updates registration to require acceptance of terms and privacy policy
Reviewed Changes
Copilot reviewed 32 out of 33 changed files in this pull request and generated 27 comments.
Show a summary per file
| File | Description |
|---|---|
| web/vite.config.js | Configures custom element support for altcha-widget |
| web/tests/Feature/UserController.php | Adds tests for research consent endpoints |
| web/tests/Feature/ResearchConsentService.php | Adds unit tests for ResearchConsentService |
| web/tests/Feature/RegistrationTest.php | Updates registration test to include consent fields |
| web/routes/web.php | Adds routes for privacy/terms pages and research consent endpoints |
| web/resources/views/emails/user-research.blade.php | Email template for research participation confirmation |
| web/resources/markdown/terms.md | Complete terms of use document |
| web/resources/markdown/privacy.md | Complete privacy policy document |
| web/resources/markdown/policy.md | Removes old placeholder policy file |
| web/resources/js/form/InputError.vue | Updates error styling with background color |
| web/resources/js/form/Checkbox.vue | Adds label slot for custom checkbox content |
| web/resources/js/Pages/ProjectsList.vue | Adds footer component to project list page |
| web/resources/js/Pages/ProjectOverview.vue | Adds footer component to project overview page |
| web/resources/js/Pages/Profile/Show.vue | Integrates LegalForm component in profile |
| web/resources/js/Pages/Profile/Partials/LegalForm.vue | New component for managing legal documents and research consent |
| web/resources/js/Pages/PreparationPage.vue | Adds footer component to preparation page |
| web/resources/js/Pages/CodingPage.vue | Adds footer component to coding page |
| web/resources/js/Pages/Auth/Register.vue | Updates registration form with consent checkboxes |
| web/resources/js/Pages/AnalysisPage.vue | Adds footer component to analysis page |
| web/resources/js/Layouts/Footer.vue | Adds Privacy link to footer navigation |
| web/resources/js/Layouts/AuthenticatedLayout.vue | Integrates footer in mobile navigation |
| web/resources/js/Components/Altcha.vue | Updates altcha widget configuration |
| web/package.json | Updates altcha dependency to v2.2.4 |
| web/package-lock.json | Reflects package.json dependency updates |
| web/database/migrations/2025_11_18_125742_add_research_confirmation_to_users_table.php | Adds research consent database fields to users table |
| web/app/Services/ResearchConsentService.php | New service for handling research consent workflow |
| web/app/Models/User.php | Adds research consent fields to User model |
| web/app/Mail/ResearchConfirmation.php | Mailable class for research confirmation emails |
| web/app/Http/Middleware/HandleInertiaRequests.php | Shares research consent data with frontend |
| web/app/Http/Controllers/UserController.php | Adds endpoints for research consent management |
| web/app/Actions/Fortify/CreateNewUser.php | Validates and handles research consent during registration |
| docs/development/backend/testing.md | Updates testing documentation with linter instructions |
| .github/workflows/client_tests.yml | Adds npm audit job to CI workflow |
Files not reviewed (1)
- web/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
hohse
left a comment
There was a problem hiding this comment.
Den Code habe ich mehr so überflogen - da habe ich keine Kompetenz. Die beiden legal-Sachen habe ich gelesen und für hervorragend befunden.
|
Thank you @hohse that's a great step forward! I just found we need one more feature and that is, that we need to add the consent flags to the audit.This is, because privacy and terms might change in the future and users have to actively give consent to each updated privacy and terms. |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 39 out of 40 changed files in this pull request and generated 17 comments.
Files not reviewed (1)
- web/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
…acy files do not exist Update web/app/Http/Middleware/HandleInertiaRequests.php Co-authored-by: Copilot <[email protected]>
kadewe
left a comment
There was a problem hiding this comment.
ok, i think you have added the footer to all the relevant views and implemented all the consent logic and ui
This adds our privacy declaration, terms of use and research consent system for openqda.org and other instances (usable as blueprint).