I did some work to scope this feature out further. It really would take quite a while so I'm punting on it until required for Azores nearshore planning.
Public Groups
Admins can define user groups that are publicly listed.
When signing up, users will be prompted to request access to these groups and administrators can decide whether to admit them.
Admins receive email notification of access requests
From this email they can approve or deny the request directly from the email, or follow a link back to seasketch to manager users
Access requests are also shown in the user management list
From the project-user perspective, users see their access request whenever viewing areas that may have protected content, like forums, sketching tools, or data layers.
Groups may be set to automatically approve access requests
Users will need a way to manage access requests after initial approval
User groups will need to be translatable
Tasks
[] create feature flag for group-requests (1 hr)
[] add translatedProps support for group labels (2 hrs)
[] schema support (8 hrs)
[] add supports_access_requests boolean to project_groups
[] somehow rationalize group access requests with the main access request workflow
[] add stored procedures to approve or deny requests
[] add "advertised" boolean to forums to encourage access requests
[] email notifications (16 hrs)
[] send emails for project access requests
[] send emails for group access requests
[] add rest endpoints that support direct approval/denial from email
[] add workflow to notify all users in a project of a new group (8 hrs)
[] add rest endpoints for end users to request access to a group (4 hrs)
[] Admin UI
[] translatedProps for group labels (1 hr)
[] group acl controls (1 hr)
[] advertised boolean and validation with group acl (2 hrs)
[] access request listing (12 hrs)
[] End-User UI
[] Add group request to "join project workflow"
[] Join project (2 hrs)
[] Request access for private projects (1 hr)
[] Show request access prompt when attempting to view restricted forums (4 hrs)
[] Add access request form and status indicator to user profile (4 hrs)
I did some work to scope this feature out further. It really would take quite a while so I'm punting on it until required for Azores nearshore planning.
Public Groups
Tasks
66 hours total