diff --git a/mandayejs/mandaye/management/commands/migrate-users.py b/mandayejs/mandaye/management/commands/migrate-users.py index d41b3c4..a9d6d08 100644 --- a/mandayejs/mandaye/management/commands/migrate-users.py +++ b/mandayejs/mandaye/management/commands/migrate-users.py @@ -9,6 +9,7 @@ from django.core.management.base import BaseCommand from django.db import IntegrityError from django.contrib.auth.models import User from django.core.exceptions import ImproperlyConfigured +from django.utils.encoding import force_text from mandayejs.mandaye.models import UserCredentials from mellon.models import UserSAMLIdentifier @@ -54,15 +55,15 @@ class Command(BaseCommand): data = self.get_ldif_data(filename) data = [d[1] for d in data] data = [ - {k: ''.join(v) for k, v in d.items()} for d in data] + {k: b''.join(v) for k, v in d.items()} for d in data] self.migrate(data) def get_ldif_data(self, filename): - with open(filename, 'rb') as fd: + with open(filename, 'r') as fd: return ldif.ParseLDIF(fd) def get_csv_data(self, filename): - with open(filename, 'rb') as fd: + with open(filename, 'r') as fd: fieldnames = ['idpUniqueID', 'spPostValues'] reader = csv.DictReader(fd, delimiter=';', quotechar='|', fieldnames=fieldnames) return list(reader) @@ -72,11 +73,11 @@ class Command(BaseCommand): for data in parsed_data: try: - name_id = data.get('idpUniqueID') + name_id = force_text(data.get('idpUniqueID')) credentials = json.loads(data.get('spPostValues')) user, created = User.objects.get_or_create( - username=name_id, last_name=data.get('spLogin', '')) + username=name_id, last_name=force_text(data.get('spLogin', ''))) uc = UserCredentials(user=user, locators=credentials) uc.save()