Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add "Request Access" button for workspaces #141

Open
jjnesbitt opened this issue Nov 19, 2020 · 1 comment
Open

Add "Request Access" button for workspaces #141

jjnesbitt opened this issue Nov 19, 2020 · 1 comment

Comments

@jjnesbitt
Copy link
Member

If someone is a reader on a workspace, and wishes to request further access, we could add a button (maybe in the same menu as the permissions and AQL Wizard menu), which would send an email to the owner of the repo, detailing that a user has requested a specific access level.

There's two ways we could go about this (if we choose to address it). The first approach is to ignore dealing with sending emails ourselves, and just open an email link with a populated template. This would expose the workspace owner's email to any and all readers, and doesn't provide any integration with our application, but would be less work.

The second option is to handle sending emails ourselves. So, when a user clicks the "Request Access" button, our server sends an email to the owner, who can then open multinet and give them access.

The second option may allow for more features, like sending emails to a user who's been granted access to a workspace (kind of like what Github does). However, it's more work to setup email sending on the backend, although I'll admit I'm not sure how much work that is. I'm inclined to believe it's not that much, this is a pip module for Flask which may provide easy integration.

Furthermore, adding support for sending emails may allow for notifications beyond permissions. For example (this is thinking down the line), if a user uploads a very large dataset and we validate/process it asynchronously, then we could notify the user by email when it has completed, if it failed/succeeded, etc.

@waxlamp
Copy link
Contributor

waxlamp commented Nov 20, 2020

If someone is a reader on a workspace, and wishes to request further access, we could add a button (maybe in the same menu as the permissions and AQL Wizard menu), which would send an email to the owner of the repo, detailing that a user has requested a specific access level.

There's two ways we could go about this (if we choose to address it). The first approach is to ignore dealing with sending emails ourselves, and just open an email link with a populated template. This would expose the workspace owner's email to any and all readers, and doesn't provide any integration with our application, but would be less work.

This feels janky to me: it's a throwback to mailto links from the late 90s, and it has the problem of exposing people's contact info, as you state. Let's nix this approach.

The second option is to handle sending emails ourselves. So, when a user clicks the "Request Access" button, our server sends an email to the owner, who can then open multinet and give them access.

The second option may allow for more features, like sending emails to a user who's been granted access to a workspace (kind of like what Github does). However, it's more work to setup email sending on the backend, although I'll admit I'm not sure how much work that is. I'm inclined to believe it's not that much, this is a pip module for Flask which may provide easy integration.

Furthermore, adding support for sending emails may allow for notifications beyond permissions. For example (this is thinking down the line), if a user uploads a very large dataset and we validate/process it asynchronously, then we could notify the user by email when it has completed, if it failed/succeeded, etc.

All of these application ideas for server-managed emails are good ideas. Furthermore, D&A has plenty of experience with this type of feature (in Girder, for example, among other projects). There are also services like Mailgun that can do this for us if we get to that point.

Thanks for laying out your thoughts on this. Let's think about this if and when we get to enough of a user base during the remainder of the project that we need this sort of feature. It could also come up during a commercialization effort for the software as well.

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

No branches or pull requests

2 participants