-
Notifications
You must be signed in to change notification settings - Fork 9
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
Topic invitations - User to accept invitation, no auto accept. #112
Comments
Triage #4 - Topics added to Group will remain auto accept. Possibly, invites coming from "friends", will also be auto-accepted (TBD). |
@kevincrepin, this is likely to go into dev within the next weeks. Can you please have a look at this? UX tasks are in the description. When done, please remove yourself as an assigned person and assign Ilmar instead. Thank you! |
Maybe misunderstanding this, but isn't this something we've had already for a long time? :) https://projects.invisionapp.com/d/main#/console/9829159/210112074/preview |
Questions:
|
Implementation detailsInformation that is displayed and otherwise would not be available to the User:
To provide this information we could:
|
@tiblu I see the attack vector you've indentified. I'd like to test how Google Docs, for example, does this. My current thinking is, that we release invites with static topic title at this time and put down the access token idea into backlog for future development. But my thinking may change, if I test this on a few other services andsee, that they are all doing tokens. Will have time to test this later today. |
I think invites should expire regardless of whether we go with token access or static invites. Everything dies. Invites should too :) 14 days sounds as good a lifetime as any. We should clearly communicate this to the user, though, both when sending and on the invite itself. |
@kevincrepin I'll leave this to you. I think it's much better UX, if invites are show in UI, too, but that's an unqualified opinion. WDYT? |
We should avoid double invites to the same e-mail. When attempted, there should be a clear message, indicating that the invite failed, because this e-mail has already been invited. What's the estimated extra work time, if we do indicate invited users in the Topic members list? |
@loorm Now that I think about it, it MAY be better to allow double invites. Let's say a person I hardly know invites me to a Topic, in my eyes, he/she has not the mojo to convince me to join. But as a second invite I get from a close friend, who certainly has the mojo to make ma participate. Also, the more invites, the more people think that the person can contribute.
@loorm Not sure, but I'll just say 3 days extra. |
@loorm Google Drive has kind of hybrid solution where in the e-mail content and title you have the outdated info and in the attachment you have up-to-date info. I have never received a spam invite from Google, so they MAY tackle the issue some other way. TBH, we have no way of providing fresh info in the e-mail itself, but when a User opens up the invite landing page in the Citizen OS, we should show fresh. It is possible, but I have to figure out what extra effort it takes. |
@loorm @tiblu Slightly more elaborate: invites section within the activity feed but not as part of the filter since it might be hard to find there and invites are of such nature that we want the user to quickly find them. So maybe the feed exists of 2 "tabs" (for example): notifications & invites. For both these solutions we can create an icon that shows if there's an invitation instead of the general activity feed. This icon would show if there's a new (unread) invitation within the feed. Bigger picture solution: notifications and/or invites could be more visible in the future dashboard, so that users wouldn't even have to click on anything to see them. Or a dynamic notification that shows up, for example on the top of the dashboard, similar to "success" or "error" notifications. |
1. Invites by e-mail 2. Join links |
@tiblu I see your point. In my mind, the attack vector of sending a thousand "double" invites outweighs the benefit of +1-ing invites. However, if we can prevent double invites to the same e-mail by the same user, we get your benefits and solve a majority of the spam risk. I don't know if that makes any difference, but I'm reluctant to make our system send out e-mails indiscriminately. |
@tiblu It's settled then, yes? Static info in the e-mail, up-to-date info, once you follow the link and enter our system. |
@loorm Yes, it's settled then - static in the e-mail, up-to-date when you follow the link. |
Dynamic (fresh) content in e-mails It is possible to add dynamic content in the e-mails using Amp for Emails - https://amp.dev/about/email/. Examples of what Citizen OS could do:
BUT, you need to consider:
@loorm Just to keep you in the loop, maybe knowing that there is new technology helps to think of new cool solutions in Citizen OS. Sources:
|
… basically duplicates Google/FB User connection creation - citizenos/citizenos-fe#112
…lement invite expiry dialog, fix activity translations - citizenos/citizenos-fe#112
Pre release testing
|
…ware and deprecation warning for old members API - citizenos/citizenos-fe#112
…ite after accepting, update existing member level if invite level is higher than current - citizenos/citizenos-fe#112
Done! Development time: 97.67 hours |
Tested. Not working. Topic was a private topic called "Spring Push for Design Perfection". I am admin with my gmail account. I invited my other account. I see the pending invitation in the user list (see screenshot). The invite action also shows up in activity feed (see screenshot). Then, as you can see in the linked screencast (sry for the WeTransfer, but I didn't know how else to attach mp4 video), clicking on the invitation link in the email opens the correct dialog window, but that's where it stops. I'm not getting access to the topic. |
UPDATE: I tried the scenario in the video several times and each time nothing happened. However, on other occasions (different topics, different rights), the invite flow worked and my other user was successfully added. So it only seems to fail under certain circumstances, that are not clear as of now. The only thing I did outside of expected primary flow was to click the "Read more about Citizen OS" at the bottom of the dialog, BEFORE clicking the "Log in as ..." big blue button. |
@loorm Great spotting! Fixed! The bug appeared only if tried to accept the invite by logging in with username/password. While at it, also removed level |
Tested. Working. |
Legally reviewed, during the discussions legal input provided. |
Overview
When User is invited to a Topic, he gets added automatically.
This may cause issues in the future where spammers may use this do distribute their content.
TODO
/invites/:inviteId
->/invites/users/:inviteId
so that there is a clear distinction between User and Group invites.API: VERSIONING - Backward comp - Partners (RAA.ee) use the auto-accept!Not needed, as the old API will remain with deprecation warning in the docs.POST /topics/:topicId/invites
- auth: Topic adminGET /topics/:topicId/invites/:inviteId
- auth: knowing theinviteId
(uuidv4)POST /api/users/:userId/topics/:topicId/invites/:inviteId/accept
- auth: knowing theinviteId
(uuidv4) &&user.id === invite.userId
DELETE/topics/:topicId/invites/:inviteId
- auth: Topic admin - New Crowdin updates citizenos-fe#112 (comment)/topics/:topicId/invites
->/topics/:topicId/invites/users/
so that there is a clear distinction between User and Group invites.Related to:
The text was updated successfully, but these errors were encountered: