def listpriv(self, bot, cli, ev): if not len(ev.splitd) > 0: cli.msg(ev.target, "\00304Error\003: Faltan parametros.") return 0 user = User.get(User.name == ev.splitd[0].lower()) if user is False: cli.msg(ev.target, "\003Error\003: El usuario no existe.") else: resp = "El usuario \2{0}\2 tiene los siguientes privilegios:" \ .format(user.name) privs = UserPriv.select().where(UserPriv.uid == user.uid) for priv in privs: resp += " \2{0}\2 en el módulo \2{1}\2 en el canal \2{2}\2" \ .format(priv.priv, priv.secmod, priv.secchan) cli.msg(ev.target, resp)
def addpriv(self, bot, cli, ev): if not len(ev.splitd) > 1: cli.msg(ev.target, "\00304Error\003: Faltan parametros.") return 0 #guh uname = ev.splitd[0].lower() priv = int(ev.splitd[1]) if len(ev.splitd) > 2: module = ev.splitd[2] else: module = "*" if len(ev.splitd) > 3: chan = ev.splitd[3] else: chan = "*" user = User.get(User.name == uname) if user is False: cli.msg(ev.target, "\003Error\003: El usuario no existe") return 0 uprivs = UserPriv.select().where(UserPriv.uid == user.uid) p = 0 for upriv in uprivs: if upriv.priv >= priv: p += 1 if upriv.secchan == chan or upriv.secchan == "*": p += 1 if upriv.secmod == module or upriv.secmod == "*": p += 1 if p == 3: cli.msg(ev.target, "\003Error\003: El usuario ya tiene priv" "ilegios iguales o superiores a los que se intento otorgar.") return 0 if upriv.secchan == chan and upriv.secmod == module: upriv.priv = priv upriv.save() cli.msg(ev.target, "Se han otorgado los privilegios.") return 0 UserPriv.create(uid=user.uid, priv=priv, secchan=chan, secmod=module) cli.msg(ev.target, "Se han otorgado los privilegios.")
def delpriv(self, bot, cli, ev): if not len(ev.splitd) > 1: cli.msg(ev.target, "\00304Error\003: Faltan parametros.") return 0 #guh x2 uname = ev.splitd[0].lower() priv = int(ev.splitd[1]) if len(ev.splitd) > 2: module = ev.splitd[2] else: module = "*" if len(ev.splitd) > 3: chan = ev.splitd[3] else: chan = "*" user = User.get(User.name == uname) if user is False: cli.msg(ev.target, "\003Error\003: El usuario no existe") return 0 uprivs = UserPriv.select().where(UserPriv.uid == user.uid) p = 0 tot = 0 for upriv in uprivs: if upriv.priv >= priv: p += 1 if upriv.secchan == chan or chan == "*": p += 1 if upriv.secmod == module or module == "*": p += 1 if p == 3: upriv.delete_instance() tot += 1 if tot == 0: cli.msg(ev.target, "\003Error\003: No se ha encontrado ningun " "privilegio coincidiendo para borrar.") else: cli.msg(ev.target, "Se han borrado {0} privilegios".format(tot))