def set_rule(self, acl, rule, index): if not ACLDB.set_rule(self, acl, rule, index): return False query = """update aclrules set rule = '%s' where name = '%s' and weight = %d""" self.sql_update(query % (Q(rule), Q(acl), index)) return True
def del_rule(self, acl, index): if index is not None: query = """delete from aclrules where name = '%s' and weight = %d""" self.sql_del(query % (Q(acl), index)) query = """update aclrules set weight = weight-1 where name = '%s' and weight >= %d""" self.sql_update(query % (Q(acl), index)) return ACLDB.del_rule(self, acl, index)
def add_rule(self, acl, rule=None, index=None, updatedb=True): index = ACLDB.add_rule(self, acl, rule, index) if not updatedb: return index if index < len(self.rules[acl]): query = """update aclrules set weight = weight+1 where name = '%s' and weight >= %d""" self.sql_update(query % (Q(acl), index)) query = """insert into aclrules (name, rule, weight) values ('%s', '%s', %d)""" self.sql_add(query % (Q(acl), Q(rule), index)) return index
def __reginit__(self): self.open_db() ACLDB.__reginit__(self)