Joystream / discord-bot

Joystream Discord Bots
GNU General Public License v3.0
0 stars 4 forks source link

Role bot requirements #5

Open bedeho opened 1 year ago

bedeho commented 1 year ago

IMPORTANTLY: we are starting from scratch here, the current bots have all sorts of legacy behaviours which should not carry over.

Background

Often in Discord one may want to address the member currently occupying a role, but one does not know who this member is, and looking it up on-chain is very tedious. Likewise, there are channel permissions which one wants to assocaited with on-chain roles, rather than Discord memberships. The solution for both of these problems is to automatically maintain what set of on-chain members should have a given Discord role membership, by exploiting the fact that on-chain memberships include the possibility of specifying.

Proposal

Maintiner

@DzhideX

Infra

Jsgensis operated.

Target chain

Carhtage

Requirements

This way of doing it means that regardless what interventinos members do in terms of changin their Discord handle on-chain, or someone manually updates Role sets in Discord, or Discord bot is down for maintenance, it will always just work, and it will be very easy to debug. The synchronization interval must be configurable.

mochet commented 12 months ago

for each on-chain member who has both a Discord handle in their metadat, and that handle exists on exactly one Discord member, then add that Discord member to that Discord role.

This part is a problem in that people can do impersonation attacks, especially if we assign distinct permissions to Discord roles. There is no clarification on what to do if two or more members claim the Discord handle. Furthermore, entering a Discord username on a Joystream profile does not verify it.

The current implementation of the bot requires a user to sign a challenge using polkadot-js to prove they own the Joystream membership handle.

image

This isn't included in your specification, but is this an acceptable method of verifying users?

bedeho commented 12 months ago

I did not understand this, can you raise the issue on a DAO meeting in the near future?

chrlschwb commented 10 months ago

@bedeho We have a question about the requirements. image Currently, the list_role_members [discord_role] command displays all users with [discord_role] like this. image If the viewer is interested in one of the displayed users, they can use the who_is command to learn more. I think it's excessive to display all the roles of all the users with [discord_role]

For example: If I type, list_role_members @FoundingMember, I want to see who are the founding members, and not what roles each of the founding members are occupying.

bedeho commented 10 months ago

I think it's excessive to display all the roles of all the users with [discord_role]

Agreed.

mochet commented 10 months ago

@chrlschwb I would suggest one thing in addition to what is present. There should be a discord role called something like on-chain member or similar which is registered to all users who have their Discord set up in their Pioneer profile. Although most people are founding members due to our community size, this could change and we could have workers etc that aren't--it makes it a bit easier in the long term in Discord to communicate with people who have actually gone to the trouble of properly setting up their Discord profiles.

We had the same thing with the old bot but it was called on-chain identity verified--we could use the same name.