Team invitation and notificaton for members#218
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces configurable team member management modes - invitation mode (requiring explicit acceptance) and notification mode (immediate addition with notification). The implementation includes email notifications, null-safe handling for optional source data in the coding interface, and various UI improvements.
Key changes:
- Added
TEAM_INVITATION_REQUIREDenvironment configuration to toggle between invitation and notification modes - Implemented notification email functionality when team members are added directly
- Enhanced coding page to handle scenarios where no source is available
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
web/.env.example |
Added TEAM_INVITATION_REQUIRED configuration option |
web/config/jetstream.php |
Configured team features based on invitation requirement setting |
web/app/Mail/TeamMemberAddedNotification.php |
New mailable class for notifying users when added to teams |
web/resources/views/emails/team-added.blade.php |
Email template for team member added notifications |
web/app/Actions/Jetstream/AddTeamMember.php |
Added email notification when members are directly added to teams |
web/app/Actions/Jetstream/InviteTeamMember.php |
Added validation requiring users to exist before invitation |
web/app/Http/Controllers/CodingController.php |
Refactored to handle cases where no locked source exists |
web/resources/js/Pages/CodingPage.vue |
Added fallback UI and messaging when no source is available |
web/resources/js/domain/codes/useCodes.js |
Added null-safe access for source properties |
web/resources/js/Pages/coding/selections/useSelections.js |
Added null-safe access for source ID |
web/resources/js/form/InputField.vue |
Adjusted placeholder opacity for better visibility |
web/resources/js/Pages/Teams/Partials/TeamMemberManager.vue |
Updated cancel invitation button styling and improved leave team dialog message |
web/resources/js/Pages/Projects/ProjectsListMenu.vue |
Enhanced project list icons to distinguish between owners and collaborators |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@jankapunkt I've opened a new pull request, #219, to work on those changes. Once the pull request is ready, I'll request review from you. |
…ontroller (#219) * Initial plan * fix: add path validation to prevent arbitrary file read in CodingController and SourceController Co-authored-by: jankapunkt <[email protected]> * refactor: extract validateStoragePath to trait and improve path validation security Co-authored-by: jankapunkt <[email protected]> * fix: create test file in test_update_source_content to pass path validation Co-authored-by: jankapunkt <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: jankapunkt <[email protected]>
kadewe
left a comment
There was a problem hiding this comment.
This is ok for me for now to have this option configured in an .env file for deployment. We may have to keep this in mind when we have a more out of a box deployment installer and an SITE_ADMIN role for running an instance
This PR introduces a config for .env files to optionally switch between two modes: