293 user.clear_related_cache('in_group', 'subject') |
293 user.clear_related_cache('in_group', 'subject') |
294 if commit: |
294 if commit: |
295 self._orig_cnx.commit() |
295 self._orig_cnx.commit() |
296 return user |
296 return user |
297 |
297 |
298 def login(self, login, password=None): |
298 def login(self, login, **kwargs): |
299 """return a connection for the given login/password""" |
299 """return a connection for the given login/password""" |
300 if login == self.admlogin: |
300 if login == self.admlogin: |
301 self.restore_connection() |
301 self.restore_connection() |
302 else: |
302 else: |
|
303 if not kwargs: |
|
304 kwargs['password'] = str(login) |
303 self.cnx = repo_connect(self.repo, unicode(login), |
305 self.cnx = repo_connect(self.repo, unicode(login), |
304 password or str(login), |
306 cnxprops=ConnectionProperties('inmemory'), |
305 ConnectionProperties('inmemory')) |
307 **kwargs) |
306 if login == self.vreg.config.anonymous_user()[0]: |
308 if login == self.vreg.config.anonymous_user()[0]: |
307 self.cnx.anonymous_connection = True |
309 self.cnx.anonymous_connection = True |
308 return self.cnx |
310 return self.cnx |
309 |
311 |
310 def restore_connection(self): |
312 def restore_connection(self): |