Source code for mods.users

# mods/users.py
#
#

""" user related commands. """

from mads.misc import stripped
from mads.getters import slice

from mids import kernel, users

[docs]def meet(event): """ create an user record. """ if not users.allowed(event.origin, "OPER"): event.reply("you are not allowed to give the meet command.") return try: origin, *permissions = event._parsed.rest.split() except: event.reply("meet <origin> [<perm1> <perm2>]") return if not permissions: permissions = ["USER", ] for bot in fleet: if "irc" in bot.id(): if origin in bot._userhosts: origin = bot._userhosts user = users.add(origin, permissions) event.reply("user %s created" % origin)
[docs]def perm(event): """ add/change permissions of an user. """ if not users.allowed(event.origin, "OPER"): event.reply("you are not allowed to give the perm command.") return try: origin, permission = event._parsed.args except: event.reply("perm <origin> <perm>") return user = users.set(origin, permission) if not user: event.reply("can't find a user matching %s" % origin) return event.reply(slice(user, skip=["type"]))
[docs]def delperm(event): """ delete permissions of an user. """ if not users.allowed(event.origin, "OPER"): event.reply("you are not allowed to give the delperm command.") return try: origin, permission = event._parsed.args except: event.reply("delperm <origin> <perm>") return try: user = users.delete(origin, permission) except Exception as ex: event.reply(str(ex)) return if not user: event.reply("can't find a user matching %s" % origin) return event.reply(slice(user, skip=["type"]))
[docs]def user(event): """ show user selected by userhost. """ if not event._parsed.rest: event.reply("user <origin>") return event.reply(slice(users.fetch(event._parsed.rest), skip=["type"]))
[docs]def w(event): """ show user data. """ event.reply(slice(users.fetch(stripped(event.origin)), skip=["type"]))