Example #1
0
def invoke(update, context, _):

    # Ignore unprivileged people
    who = Permissions.e_whois(update)
    if not Permissions.is_user(who):
        return

    # If /help admin was requested
    admin_mods = Permissions.admin_modules()
    if Permissions.is_admin and len(context.args) > 0:
        if context.args[0] == 'admin':
            help_admin(update, admin_mods)
            return

    # Get descriptions of the loaded modules that the user may invoke
    mods = set(Loader.loaded()) & set(Permissions.user_modules(who))
    mods -= set(['start', 'logout'])
    mod_list = list(mods - admin_mods)
    if who != raw_whois(update):
        mod_list.append('logout')
    descs = ['/' + i + ': ' + Permissions.info(i) for i in mod_list]

    # Reply
    if Permissions.is_admin(who):
        descs.insert(0, 'Admin: /help admin for admin modules')
    reply(update, '@' + who + ' may use:' + djoin(descs))
Example #2
0
def invoke(update, *_):
    # raw_user should not be able to log out e_user
    raw_user = raw_whois(update)
    if raw_user == Permissions.e_whois(update):
        raise DispatcherHandlerContinue
    # If invoked by e_user
    try:
        Permissions.remove_user_translation(raw_user)
        reply(update, 'Success')
    except AssertionError as err:
        logging.error(str(err))
        reply(update, 'Error: ' + str(err))
Example #3
0
def invoke(update, context, _):
    if 'logout' not in Loader.loaded():
        reply(update, 'Refusing to login, logout module is not loaded')
        return
    try:
        user = Permissions.e_whois(update)
        new_u = context.args[0]
        try:
            Permissions.add_user_translation(user, new_u)
            msg = '@' + user + ' logged in as @' + new_u
            logging.info(msg)
            reply(update, msg)
        except AssertionError as err:
            reply(update, 'Error: ' + str(err))
    except IndexError:
        reply(update, 'usage: /login <user>')