def test_user_is_not_authorized_but_authorized_in_another_guild(self):
     ctx = FakeContext()
     guild2 = FakeGuild2()
     AuthorizedUser.create(guild_id=guild2.id, user_id=ctx.author.id)
     result = asyncio.run(
         is_authorized_or_owner(ctx, is_owner=returns_false))
     self.assertFalse(result)
Ejemplo n.º 2
0
    def test_has_users_in_different_guild(self):
        ctx = FakeContext()
        guild2 = FakeGuild2()
        AuthorizedUser.create(guild_id=guild2.id, user_id=ctx.author.id)
        asyncio.run(list_user(ctx, fetch_user=fake_fetch_user))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Não há usuários autorizados")
Ejemplo n.º 3
0
async def add_user(ctx, *, user: User):
    """Adds a user to the authorized user list."""
    logging.info(
        "Estão tentando adicionar o usuário com ID %s aos usuários autorizados",  # noqa E501
        user.id)
    try:
        AuthorizedUser.create(guild_id=ctx.guild.id, user_id=user.id)
        await ctx.send("Adicionado usuário {}".format(user.name))
    except IntegrityError:
        await ctx.send("Usuário já autorizado")
Ejemplo n.º 4
0
    def test_user_does_not_exist_in_this_guild(self):
        user = FakeUser()
        ctx = FakeContext()
        guild2 = FakeGuild2()
        AuthorizedUser.create(guild_id=guild2.id, user_id=user.id)
        asyncio.run(remove_user(ctx, user=user))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters,
                         "Usuário não estava autorizado: {}".format(user.name))
Ejemplo n.º 5
0
    def test_user_exists(self):
        user = FakeUser()
        ctx = FakeContext()
        AuthorizedUser.create(guild_id=ctx.guild.id, user_id=user.id)

        asyncio.run(remove_user(ctx, user=user))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters,
                         "Usuário {} desautorizado".format(user.name))
Ejemplo n.º 6
0
    def test_has_results_in_same_guild(self):
        user = FakeUser()
        ctx = FakeContext()
        AuthorizedUser.create(guild_id=ctx.guild.id, user_id=user.id)

        asyncio.run(list_user(ctx, fetch_user=fake_fetch_user))

        self.assertTrue(ctx.send_called)
        self.assertEqual(
            ctx.send_parameters,
            "Estes são os usuários autorizados: \n- {}".format(user.name))
Ejemplo n.º 7
0
async def is_authorized_or_owner(ctx, is_owner=bot.is_owner):
    if await is_owner(ctx.author):
        return True
    user = AuthorizedUser.get_or_none(
        (AuthorizedUser.user_id == ctx.author.id)
        & (AuthorizedUser.guild_id == ctx.guild.id))
    return user is not None
Ejemplo n.º 8
0
    def test_add_user(self):
        ctx = FakeContext()
        user = FakeUser()
        asyncio.run(add_user(ctx, user=user))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Adicionado usuário foo")

        authorized_user = AuthorizedUser.get(
            (AuthorizedUser.guild_id == ctx.guild.id)
            & (AuthorizedUser.user_id == user.id))

        self.assertEqual(authorized_user.user_id, user.id)

        ctx = FakeContext()
        asyncio.run(add_user(ctx, user=user))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Usuário já autorizado")

        ctx = FakeContext(guild=FakeGuild2())
        asyncio.run(add_user(ctx, user=user))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Adicionado usuário foo")
Ejemplo n.º 9
0
async def remove_user(ctx, *, user: User):
    """Removes a user from the authorized user list."""
    logging.info(
        "Estão tentando remover o usuário com ID %s dos usuários autorizados",
        user.id)
    query = AuthorizedUser.delete().where(
        (AuthorizedUser.user_id == user.id)
        & (AuthorizedUser.guild_id == ctx.guild.id))
    rows_removed = query.execute()
    if rows_removed > 0:
        await ctx.send("Usuário {} desautorizado".format(user.name))
    else:
        await ctx.send("Usuário não estava autorizado: {}".format(user.name))
Ejemplo n.º 10
0
async def list_user(ctx, fetch_user=bot.fetch_user):
    """Lists the authorized users."""
    logging.info("Estão tentando listar os usuários autorizados")
    authorized_users = AuthorizedUser.select().where(
        AuthorizedUser.guild_id == ctx.guild.id)
    if authorized_users.count() == 0:  # pylint: disable=no-value-for-parameter
        await ctx.send("Não há usuários autorizados")
        return
    output = "Estes são os usuários autorizados: "
    for authorized_user in authorized_users:
        discord_user = await fetch_user(authorized_user.user_id)
        output += "\n- {}".format(discord_user.name)
    await ctx.send(output)
 def test_user_is_authorized(self):
     ctx = FakeContext()
     AuthorizedUser.create(guild_id=ctx.guild.id, user_id=ctx.author.id)
     result = asyncio.run(
         is_authorized_or_owner(ctx, is_owner=returns_false))
     self.assertTrue(result)