Esempio n. 1
0
    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.")
Esempio n. 2
0
    def register(self, bot, cli, ev):
        if len(ev.splitd) != 2:
            cli.msg(ev.target, "\00304Error\003: Faltan parametros.")
            return 0
        passw = hashlib.sha1(ev.splitd[1].encode('utf-8')).hexdigest()

        u = User.get(User.name == ev.splitd[0].lower())
        if u is False:
            u = User()
            u.name = ev.splitd[0].lower()
            u.password = passw
            u.save()
            # Si no hago esto no puedo obtener el uid :\
            user = User.get(User.name == ev.splitd[0].lower())
            UserPriv.create(uid=user.uid, priv=0, secmod="*", secchan="*")
            cli.msg(ev.target, "Te has registrado exitosamente. Ahora"
            " debes identificarte (\2{0}help auth\2)".format(bot.conf['prefix']
            ))
            self.whouid = user.uid
            cli.who(ev.target, "%atn,9")
        else:
            cli.msg(ev.target, "\00304Error\003: Ya estás registrado.")
Esempio n. 3
0
 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)
Esempio n. 4
0
    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))