forked from DGNum/gestioCOF
Migrate django_cas_ng accounts to authens
This commit is contained in:
parent
0815f79739
commit
3967831e92
1 changed files with 40 additions and 0 deletions
40
gestioncof/migrations/0018_django_cas_to_authens.py
Normal file
40
gestioncof/migrations/0018_django_cas_to_authens.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from authens.shortcuts import fetch_cas_account
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
def to_authens(apps, schema_editor):
|
||||||
|
User = apps.get_model("auth", "User")
|
||||||
|
CASAccount = apps.get_model("authens", "CASAccount")
|
||||||
|
|
||||||
|
failures = []
|
||||||
|
for user in User.objects.select_related("profile").all():
|
||||||
|
login_clipper = user.profile.login_clipper
|
||||||
|
if login_clipper:
|
||||||
|
ldap_info = fetch_cas_account(login_clipper)
|
||||||
|
if ldap_info is None:
|
||||||
|
failures.append(user)
|
||||||
|
else:
|
||||||
|
entrance_year = ldap_info["entrance_year"]
|
||||||
|
CASAccount.objects.create(
|
||||||
|
user=user, cas_login=login_clipper, entrance_year=entrance_year
|
||||||
|
)
|
||||||
|
|
||||||
|
if failures:
|
||||||
|
sys.stderr.write(" ---------- \n")
|
||||||
|
sys.stderr.write("Some accounts could not be linked to a CAS account:\n")
|
||||||
|
for user in failures:
|
||||||
|
sys.stderr.write(f"- {user.username}\n")
|
||||||
|
sys.stderr.write(" ---------- \n")
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("gestioncof", "0017_petitscours_uniqueness"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(to_authens, migrations.RunPython.noop),
|
||||||
|
]
|
Loading…
Reference in a new issue