Commit 06213f1f authored by Seblu's avatar Seblu
Browse files

delrights allow multiple rule deletion in one command

parent ddd5df1f
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -80,26 +80,28 @@ class Command_delright(TqlCommand):
    def __init__(self, cli, argv0):
        TqlCommand.__init__(self, cli, argv0)
        self.tql_filter += "&a&r=cli"
        self.set_usage('''%prog [options] <tql> <index>

<index> * means all''')
        self.set_usage("%prog [options] <tql> <index> ...\n<index> * means all")

    def __call__(self, argv):
        # argv check
        self.parse_args(argv)
        if len(self.args) != 2:
            raise cmdBadArgument()
        if len(self.args) < 2:
            raise cmdBadArgument("No enough argument")
        # building list of index
        try:
            l = [ int(x) for x in self.args[1:] if x != "*" ]
            # we sort list in reverse order to avoid removing error
            l.sort()
            l.reverse()
        except ValueError as e:
            raise cmdBadArgument("Indexes must be numbers")
        # if all is detected
        if "*" in self.args[1:]:
            self.rpccall("delright", self.args[0], None)
        else:
            self.rpccall("list", self.args[0], _status=False)
            for index in l:
                self.rpccall("delright", self.args[0], index)
                self.rpccall("delright", self.args[0], index, _direct=True)

    def remote_functions(self):
        return set(('delright',))