acmfi / discord-bot

Discord bot developed during summer 2020 as a summer project :D
1 stars 0 forks source link

Funcionalidad 4: Proteccion Link invitacion #12

Closed JustAntoRS closed 4 years ago

JustAntoRS commented 4 years ago

Debido a que ACM somos una organizacion "grande" y el link que ahora mismo estamos usando para que la gente se una al canal de Discord es un link permanente, podria ocurrir que alguien son raideara (gente que no forma parte de ACM se una al servidor para trollear/molestar)

Para evitar esto y no tener que estar generando un link nuevo cada vez que alguien se quiera unir....

Podemos diseñar un sistema de proteccion donde cuando entras al servidor se te haga una pregunta y en base a la respuesta te deje entrar o no.

Este sistema se puede mejorar su diseño e implementacion y hacer cosas muy chulas.

JustAntoRS commented 4 years ago

Se puede asumir que el 100% de los usuarios tienen Telegram.

onmax commented 4 years ago

Por lo que veo en la documentación se pueden crear tantos links de invitación como se quieran: https://discord.com/developers/docs/resources/channel#create-channel-invite. Se puede hacer para que el link expire pasado X tiempo o con un número máximo de personas que pueden acceder a través de él.

Aunque lo que más puede ayudar es lo siguiente:

unique | boolean | if true, don't try to reuse a similar invite (useful for creating many unique one time use invites)

Quizás podríamos integrarlo con el bot de Telegram para que una vez que el usuario ya este en el grupo de ACM, pueda por lo tanto interactuar con el bot de Telegram por privado y solicitarle un link de este tipo.

Seguramente que se os ocurra alguna solución mejor que no use el bot de Telegram pero esto es lo que se me ha ocurrido a mí

jonsalchichonnn commented 4 years ago

Cuando nos unimos a ACM nos pidieron un correo al cual nos mandaron un mensaje de bienvenida donde se incluía información sobre la asociación. Si todo el mundo al unirse a ACM tiene que darnos un correo, entonces podemos usarlo como "contraseña" para unirse al server de Discord (Suponiendo que tenemos acceso a una base de datos / excel con todos esos correos)

onmax commented 4 years ago

Desde luego que esa prodría ser una solución. Pero creo que habría que añadir entonces una opción para que el usuario pudiera volver a unirse al servidor de Discord sin solicitar el link a un administrador. Esto puede ocurrir si un usuario se sale del servidor y luego quiere volver a entrar o si se crea otra cuenta.

No sé si lo veis también un problema como yo o lo dejamos como dice @jonsalchichonnn y el usuario solo tendrá acceso al principio cuando se envié el link. Si el usuario quiere volver a obtener un link tendrá que ser de manera manual y por medio de una persona con acceso al servidor

JustAntoRS commented 4 years ago

Veo lo que dice @jonsalchichonnn

El link funciona solo una vez, se te pide el correo cuando lo usas para asegurarnos de que eres tu. Y si te piras del servidor, para volver a invitarte un admin tiene que generar un otro link de invitacion.

Para esto habria que hacer alguna forma de generar links de invitacion no?

onmax commented 4 years ago

Si, lo que se me ocurre es crear un endpoint en el bot de Discord con algún tipo de protección (con algún token o con una lista de IP que sean válidas para realizar la petición) y que desde el script que se usa para enviar el correo se haga una petición a este endpoint.

De hecho si el script que se usa para enviar el correo y el bot de Discord se alojan en el mismo servidor, no haría falta abrir el endpoint a Internet y se podría hacer con una petición al localhost.

jonsalchichonnn commented 4 years ago

Yo lo que haría es dejar el link permanente para no estar generando links constantemente; pero que tengamos un txt o lo que sea de los emails ya unidos en discord , entonces, cada vez que alguien nuevo se una al server se comprueba si el email introducido está en la base de datos de ACM, si está y no en el txt de unidos pues le deja unirse y lo añade al txt; si ya está en el txt (en el caso de que se quiera unir con otra cuenta de discord) en tal caso sí que tendría que hablar con un admin; por último, si se pira del server se borra su correo del txt de unidos para que cuando se quiera volver a unirse lo pueda hacer sin problemas.

Quizás es una rayada jaja

onmax commented 4 years ago

Yo creo que tener una misma información en dos sitios diferentes genera una gran desincronización en los datos y crearía más problemas que soluciones. Yo sigo insistiendo que cuanto más automático sean las acciones y menos responsabilidad conlleve a los admins mejor. De todas formas, sugiero reunirnos por llamada del Discord y discutir todas estas ideas y sacar una conclusión. Os parece buena idea? Si es así, propongo este miércoles 19 a las 19, os va bien?

jonsalchichonnn commented 4 years ago

Por mi si

JustAntoRS commented 4 years ago

Miercoles a las 19:00 a mi me va mal, no confirmo asistencia, pero hacedlo sin mi y subid aqui un comentario de lo que hableis

onmax commented 4 years ago

Como el jueves tenemos reunión, he pensado que mejor la reunión de mañana la movemos al jueves, ya que en esa reunión hablaremos de las distintas funcionalidades y ahí podemos discutir la implementación. O si el debate se extiende podemos esperar a finalizar la reunión del jueves.

JustAntoRS commented 4 years ago

Esta tarea esta bloqueada hasta que se decida como hacemos el bot de Telegram para administrar el bot de Discord.

  1. Crear repo para bot de Telegram
JustAntoRS commented 4 years ago

Implementado por la PR #36