X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FKeys.py;h=d8e54e6788f6ee736be883e9cf842f11ce61294b;hb=c995a05c7d3b7031f1ff8ee8ffc9b8d3a88ac688;hp=3018015145e3ac727c89b876a034fe1c20bbdf97;hpb=09e9046e82759600165dd42b297011854708b859;p=plcapi.git diff --git a/PLC/Keys.py b/PLC/Keys.py index 3018015..d8e54e6 100644 --- a/PLC/Keys.py +++ b/PLC/Keys.py @@ -1,3 +1,5 @@ +# $Id$ +# $URL$ import re from PLC.Faults import * @@ -16,19 +18,16 @@ class Key(Row): table_name = 'keys' primary_key = 'key_id' - join_tables = ['person_key'] + join_tables = ['person_key', 'peer_key'] fields = { 'key_id': Parameter(int, "Key identifier"), 'key_type': Parameter(str, "Key type"), 'key': Parameter(str, "Key value", max = 4096), - 'peer_id': Parameter(int, "Peer at which this node is managed", nullok = True), + 'person_id': Parameter(int, "User to which this key belongs", nullok = True), + 'peer_id': Parameter(int, "Peer to which this key belongs", nullok = True), + 'peer_key_id': Parameter(int, "Foreign key identifier at peer", nullok = True), } - # for Cache - class_key= 'key' - foreign_fields = ['key_type'] - foreign_xrefs = [] - def validate_key_type(self, key_type): key_types = [row['key_type'] for row in KeyTypes(self.api)] if key_type not in key_types: @@ -91,7 +90,7 @@ class Key(Row): " WHERE key_id IN (%s)" % ", ".join(map(str, key_ids))) # But disassociate them from all join tables - for table in ['person_key']: + for table in self.join_tables: self.api.db.do("DELETE FROM %s WHERE key_id IN (%s)" % \ (table, ", ".join(map(str, key_ids)))) @@ -107,7 +106,7 @@ class Keys(Table): def __init__(self, api, key_filter = None, columns = None): Table.__init__(self, api, Key, columns) - sql = "SELECT %s FROM keys WHERE is_blacklisted IS False" % \ + sql = "SELECT %s FROM view_keys WHERE is_blacklisted IS False" % \ ", ".join(self.columns) if key_filter is not None: @@ -115,6 +114,6 @@ class Keys(Table): key_filter = Filter(Key.fields, {'key_id': key_filter}) elif isinstance(key_filter, dict): key_filter = Filter(Key.fields, key_filter) - sql += " AND (%s)" % key_filter.sql(api) + sql += " AND (%s) %s" % key_filter.sql(api) self.selectall(sql)