##// END OF EJS Templates
auth: fix failure when editing inactive users...
Mads Kiilerich -
r7638:1f831a8a default
parent child Browse files
Show More
@@ -440,32 +440,18 b' class AuthUser(object):'
440 assert dbuser is not None
440 assert dbuser is not None
441 log.debug('Auth User lookup by database user %s', dbuser)
441 log.debug('Auth User lookup by database user %s', dbuser)
442
442
443 if self._fill_data(dbuser):
443 log.debug('filling %s data', dbuser)
444 self.is_default_user = dbuser.is_default_user
444 self.is_anonymous = dbuser.is_default_user
445 else:
445 if dbuser.is_default_user and not dbuser.active:
446 assert dbuser.is_default_user
447 assert not self.username
448 self.username = 'None'
446 self.username = 'None'
449 self.is_default_user = False
447 self.is_default_user = False
450 self.is_anonymous = dbuser.is_default_user
448 else:
451
449 # copy non-confidential database fields from a `db.User` to this `AuthUser`.
452 log.debug('Auth User is now %s', self)
453
454 def _fill_data(self, dbuser):
455 """
456 Copies database fields from a `db.User` to this `AuthUser`. Does
457 not copy `api_keys` and `permissions` attributes.
458
459 Checks that `dbuser` is `active` (and not None) before copying;
460 returns True on success.
461 """
462 if dbuser is not None and dbuser.active:
463 log.debug('filling %s data', dbuser)
464 for k, v in dbuser.get_dict().iteritems():
450 for k, v in dbuser.get_dict().iteritems():
465 assert k not in ['api_keys', 'permissions']
451 assert k not in ['api_keys', 'permissions']
466 setattr(self, k, v)
452 setattr(self, k, v)
467 return True
453 self.is_default_user = dbuser.is_default_user
468 return False
454 log.debug('Auth User is now %s', self)
469
455
470 @LazyProperty
456 @LazyProperty
471 def permissions(self):
457 def permissions(self):
General Comments 0
You need to be logged in to leave comments. Login now