@@ -89,9 +89,15 @@ def create_id(self, nformat, name_qualifier="", sp_name_qualifier=""):
89
89
return _id
90
90
91
91
def store (self , ident , name_id ):
92
+ """
93
+
94
+ :param ident: user identifier
95
+ :param name_id: NameID instance
96
+ """
92
97
if isinstance (ident , unicode ):
93
98
ident = ident .encode ("utf-8" )
94
99
100
+ # One user may have more than one NameID defined
95
101
try :
96
102
val = self .db [ident ].split (" " )
97
103
except KeyError :
@@ -100,19 +106,24 @@ def store(self, ident, name_id):
100
106
_cn = code (name_id )
101
107
val .append (_cn )
102
108
self .db [ident ] = " " .join (val )
103
- self .db [_cn ] = ident
109
+ self .db [name_id . text ] = ident
104
110
105
111
def remove_remote (self , name_id ):
112
+ """
113
+ Remove a NameID to userID mapping
114
+
115
+ :param name_id: NameID instance
116
+ """
106
117
_cn = code (name_id )
107
- _id = self .db [_cn ]
118
+ _id = self .db [name_id . text ]
108
119
try :
109
120
vals = self .db [_id ].split (" " )
110
121
vals .remove (_cn )
111
122
self .db [_id ] = " " .join (vals )
112
123
except KeyError :
113
124
pass
114
125
115
- del self .db [_cn ]
126
+ del self .db [name_id . text ]
116
127
117
128
def remove_local (self , sid ):
118
129
if isinstance (sid , unicode ):
@@ -121,7 +132,8 @@ def remove_local(self, sid):
121
132
try :
122
133
for val in self .db [sid ].split (" " ):
123
134
try :
124
- del self .db [val ]
135
+ nid = decode (val )
136
+ del self .db [nid .text ]
125
137
except KeyError :
126
138
pass
127
139
del self .db [sid ]
@@ -147,6 +159,13 @@ def get_nameid(self, userid, nformat, sp_name_qualifier, name_qualifier):
147
159
return nameid
148
160
149
161
def find_nameid (self , userid , ** kwargs ):
162
+ """
163
+ Find a set of NameID's that matches the search criteria.
164
+
165
+ :param userid: User id
166
+ :param kwargs: The search filter a set of attribute/value pairs
167
+ :return: a list of NameID instances
168
+ """
150
169
res = []
151
170
try :
152
171
_vals = self .db [userid ]
@@ -157,8 +176,8 @@ def find_nameid(self, userid, **kwargs):
157
176
for val in _vals .split (" " ):
158
177
nid = decode (val )
159
178
if kwargs :
160
- for key , val in kwargs .items ():
161
- if getattr (nid , key , None ) != val :
179
+ for key , _val in kwargs .items ():
180
+ if getattr (nid , key , None ) != _val :
162
181
break
163
182
else :
164
183
res .append (nid )
@@ -245,10 +264,10 @@ def find_local_id(self, name_id):
245
264
"""
246
265
247
266
try :
248
- return self .db [code ( name_id ) ]
267
+ return self .db [name_id . text ]
249
268
except KeyError :
250
- logger .debug ("name: %s" % code ( name_id ) )
251
- logger .debug ("id keys: %s" % self .db . keys ())
269
+ logger .debug ("name: %s" % name_id . text )
270
+ # logger.debug("id sub keys: %s" % self.subkeys ())
252
271
return None
253
272
254
273
def match_local_id (self , userid , sp_name_qualifier , name_qualifier ):
@@ -336,3 +355,7 @@ def handle_manage_name_id_request(self, name_id, new_id=None,
336
355
def close (self ):
337
356
if hasattr (self .db , 'close' ):
338
357
self .db .close ()
358
+
359
+ def sync (self ):
360
+ if hasattr (self .db , 'sync' ):
361
+ self .db .sync ()
0 commit comments