load-pratic-ldif: allow modifying existing users

This commit is contained in:
Benjamin Dauvergne 2015-11-25 15:33:32 +01:00
parent a0b156ffab
commit c83b694f58
1 changed files with 12 additions and 7 deletions

View File

@ -185,14 +185,20 @@ class PraticLDIFParser(ldif.LDIFParser):
'phone': 'telephoneNumber',
}
others = self.resolve_mapping(mapping, entry)
uid = others['uid']
last_login_duration = int(entry.get('cdg59lastConnectionDuration', [0])[0])
is_admin = entry.get('cdg59isAdmin', ['FALSE'])[0] == 'TRUE'
user = User(
collectivity=collectivity,
is_active=is_active,
last_login_duration=last_login_duration,
is_admin=is_admin,
**others)
try:
user = User.objects.get(uid=uid, collectivity=collectivity)
for k, v in others.iteritems():
setattr(user, k, v)
except User.DoesNotExist:
user = User(
collectivity=collectivity,
is_active=is_active,
last_login_duration=last_login_duration,
is_admin=is_admin,
**others)
if 'cdg59lastConnectionTime' in entry:
last_login = datetime.fromtimestamp(int(entry['cdg59lastConnectionTime'][0]))
last_login = make_aware(last_login, get_default_timezone())
@ -202,7 +208,6 @@ class PraticLDIFParser(ldif.LDIFParser):
user.password = password
user.clean()
self.users.append(user)
#accesses
for siid in entry.get('cdg59serviceAccesses', []):
def g(siid):
def f():