py3: fix encoding management in migrate-users command
This commit is contained in:
parent
3bde928c12
commit
88fcce8f37
|
@ -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()
|
||||
|
|
Reference in New Issue