Import users/persons from LegacyLiaisonUser and LegacyWgPassword

- Legacy-Id: 3367
This commit is contained in:
Ole Laursen 2011-08-24 16:43:42 +00:00
parent 44b96ddc90
commit 1517c3d03b
3 changed files with 71 additions and 17 deletions

View file

@ -11,7 +11,8 @@ settings.USE_DB_REDESIGN_PROXY_CLASSES = False
from django.core import management
management.setup_environ(settings)
from ietf.idtracker.models import AreaDirector, IETFWG, PersonOrOrgInfo, IDAuthor
from ietf.idtracker.models import IESGLogin, AreaDirector, IETFWG, PersonOrOrgInfo, IDAuthor
from ietf.ietfauth.models import LegacyWgPassword, LegacyLiaisonUser
from ietf.liaisons.models import LiaisonDetail, LiaisonManagers, SDOAuthorizedIndividual
from redesign.person.models import *
from redesign.importing.utils import *
@ -54,6 +55,64 @@ system_email = Email.objects.get_or_create(
defaults=dict(active=True, person=system_person)
)
# LegacyWgPassword
for o in LegacyWgPassword.objects.all():
print "importing LegacyWgPassword", o.pk, o.person.first_name, o.person.last_name
email = get_or_create_email(o, create_fake=False)
if not email:
continue
username = o.login_name[:30]
persons = Person.objects.filter(user__username=username)
if persons:
if persons[0] != email.person:
print "SKIPPING", o.login_name, "who is connected to another person "
continue
user, _ = User.objects.get_or_create(username=username)
email.person.user = user
email.person.save()
# LegacyLiaisonUser
for o in LegacyLiaisonUser.objects.all():
print "importing LegacyLiaisonUser", o.pk, o.person.first_name, o.person.last_name
email = get_or_create_email(o, create_fake=False)
if not email:
continue
username = o.login_name[:30]
persons = Person.objects.filter(user__username=username)
if persons:
if persons[0] != email.person:
print "SKIPPING", o.login_name, "who is connected to another person "
continue
user, _ = User.objects.get_or_create(username=username)
email.person.user = user
email.person.save()
# IESGLogin
for o in IESGLogin.objects.all():
print "importing IESGLogin", o.pk, o.first_name, o.last_name
if not o.person:
persons = PersonOrOrgInfo.objects.filter(first_name=o.first_name, last_name=o.last_name)
if persons:
o.person = persons[0]
else:
print "NO PERSON", o.person_id
continue
email = get_or_create_email(o, create_fake=False)
if not email:
continue
user, _ = User.objects.get_or_create(username=o.login_name)
email.person.user = user
email.person.save()
# AreaDirector from IETFWG persons
for o in AreaDirector.objects.filter(ietfwg__in=IETFWG.objects.all()).exclude(area=None).distinct().order_by("pk").iterator():
print "importing AreaDirector (from IETFWG) persons", o.pk

View file

@ -27,11 +27,10 @@ from ietf.utils.history import *
# - persons have been imported
# - groups have been imported
# imports IESGLogin, AreaDirector, WGEditor, WGChair, IRTFChair,
# WGSecretary, WGTechAdvisor, NomCom chairs from ChairsHistory,
# IESGHistory, Role, LiaisonManagers, SDOAuthorizedIndividual
# FIXME: should probably import LegacyWgPassword, LegacyLiaisonUser
# imports roles from IESGLogin, AreaDirector, WGEditor, WGChair,
# IRTFChair, WGSecretary, WGTechAdvisor, NomCom chairs from
# ChairsHistory, IESGHistory, Role, LiaisonManagers,
# SDOAuthorizedIndividual
area_director_role = name(RoleName, "ad", "Area Director")
inactive_area_director_role = name(RoleName, "ex-ad", "Ex-Area Director", desc="Inactive Area Director")
@ -166,8 +165,8 @@ for o in ChairsHistory.objects.filter(chair_type=OldRole.NOMCOM_CHAIR):
# IESGLogin
for o in IESGLogin.objects.all():
print "importing IESGLogin", o.id, o.first_name, o.last_name
print "importing IESGLogin", o.pk, o.first_name, o.last_name
if not o.person:
persons = PersonOrOrgInfo.objects.filter(first_name=o.first_name, last_name=o.last_name)
if persons:
@ -175,15 +174,8 @@ for o in IESGLogin.objects.all():
else:
print "NO PERSON", o.person_id
continue
email = get_or_create_email(o, create_fake=False)
if not email:
continue
user, _ = User.objects.get_or_create(username=o.login_name)
email.person.user = user
email.person.save()
# current ADs are imported below
if o.user_level == IESGLogin.SECRETARIAT_LEVEL:
if not Role.objects.filter(name=secretary_role, email=email):

View file

@ -21,7 +21,10 @@ def old_person_to_person(person):
return Person.objects.get(alias__name=u"%s %s" % (person.first_name, person.last_name))
def old_person_to_email(person):
hardcoded_emails = { 'Dinara Suleymanova': "dinaras@ietf.org" }
hardcoded_emails = {
"Dinara Suleymanova": "dinaras@ietf.org",
"Dow Street": "dow.street@linquest.com",
}
return clean_email_address(person.email()[1] or hardcoded_emails.get("%s %s" % (person.first_name, person.last_name)) or "")