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

Feat/330 private groups #753

Open
wants to merge 24 commits into
base: master
Choose a base branch
from
Open

Feat/330 private groups #753

wants to merge 24 commits into from

Conversation

tomitheninja
Copy link
Contributor

Closes #330

@tomitheninja tomitheninja added enhancement New feature or request UI / UX Affects the UI and UX of app low priority No hurry, this can wait. labels Jun 30, 2021
@tomitheninja tomitheninja self-assigned this Jun 30, 2021
src/config/passport.ts Outdated Show resolved Hide resolved
When this is enabled, the website can be easily tested with multiple accounts
@tomitheninja tomitheninja force-pushed the feat/330-anon-join branch 2 times, most recently from 4507127 to b931f77 Compare August 25, 2021 13:36
@tomitheninja tomitheninja changed the title Feat/330 anon join Feat/330 private groups Aug 27, 2021
@tomitheninja
Copy link
Contributor Author

tomitheninja commented Aug 27, 2021

Status report on user experience

Actions on /groups

Group creation

When the user creates a group a new option is available on the form, where they can select the type of the group.
image

Classic groups

In case of classic groups, nothing changes. The absence of labels and warnings shows that this is a classic group.

Visiting a private group

When an outsider user visits a private group, a label warns them, that this group is private.
The user can't see any id of the joined members, but the owner of the group.
image

Joining a private group

The process is the same as with a classic group, however, the role "unapproved" gets assigned to the new user.
The user can see their profile, with the label "applicant", but the other group members and applicants remain anonymized
To outsiders, the user is anomyzed.
Group members can see the name of the joined, but not approved user.
image

Managing a private group

The owner of the private group can choose to approve a request or kick the user.
image
image

Viewing as approved member

Anomalisation is disabled for approved members (viewing as user 3)
image

Editing and copying a group

The client receives the previous group type and sets it as default value.
image

Actions on /users

Group owner's profile

A private group will show up on its owner's profile, when viewing from any profile, but will be marked as private with a crossed-out eye symbol.
image

Viewing self

Every group is shown, but private ones are marked with the eye symbol.
image

Viewing member as the group owner

The "my group" and the "private group" markers are both visible next to the group on the user's profile.
image

Viewing as anybody else

This includes

  • Viewing the other group members
  • Viewing as an outsider

The event doesn't appear on the user's profile


Update on user profiles

  • Private groups are now displayed on the other users profiles, when the requesting user is an approved member of that group.
  • Role in group is now displayed for both private and classic groups.

image

I choose color-800 instead of color-600, because it just feels better. Probably because of the black text everywhere around the label.

@tomitheninja
Copy link
Contributor Author

We could send emails to the user when they are approved or kicked out.

}

export async function down(knex: Knex): Promise<void> {
// TODO: drop enum `group_roles`
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop the enum on migrate:down, or else the second migrate:up will fail, because the enum already exists

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could use some help with this one 😅

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried searching knex docs but didn't really find anything, worst case you can use .raw with DROP TYPE group_roles.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request low priority No hurry, this can wait. UI / UX Affects the UI and UX of app
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Private groups
3 participants