diff --git a/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py b/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py new file mode 100644 index 00000000..6df2d2cc --- /dev/null +++ b/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.13 on 2023-06-02 12:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0002_alter_user_managers'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='avatar_url', + field=models.CharField(blank=True, default='/static/avatars/myvbv-default-avatar.png', max_length=254), + ), + ] diff --git a/server/vbv_lernwelt/core/models.py b/server/vbv_lernwelt/core/models.py index bd687d08..c1a09d96 100644 --- a/server/vbv_lernwelt/core/models.py +++ b/server/vbv_lernwelt/core/models.py @@ -17,7 +17,9 @@ class User(AbstractUser): # FIXME: look into it... # objects = UserManager() - avatar_url = models.CharField(max_length=254, blank=True, default="") + avatar_url = models.CharField( + max_length=254, blank=True, default="/static/avatars/myvbv-default-avatar.png" + ) email = models.EmailField("email address", unique=True) sso_id = models.UUIDField( "SSO subscriber ID", unique=True, null=True, blank=True, default=None diff --git a/server/vbv_lernwelt/importer/services.py b/server/vbv_lernwelt/importer/services.py index 0588e84c..d75fe9a0 100644 --- a/server/vbv_lernwelt/importer/services.py +++ b/server/vbv_lernwelt/importer/services.py @@ -43,9 +43,9 @@ def create_or_update_user( user.email = email user.sso_id = user.sso_id or sso_id + user.first_name = first_name or user.first_name + user.last_name = last_name or user.last_name user.username = email - user.first_name = first_name - user.last_name = last_name user.set_unusable_password() user.save() diff --git a/server/vbv_lernwelt/importer/tests/Schulungen_Teilnehmende.xlsx b/server/vbv_lernwelt/importer/tests/Schulungen_Teilnehmende.xlsx index 4674281c..f2f57358 100644 Binary files a/server/vbv_lernwelt/importer/tests/Schulungen_Teilnehmende.xlsx and b/server/vbv_lernwelt/importer/tests/Schulungen_Teilnehmende.xlsx differ diff --git a/server/vbv_lernwelt/importer/tests/test_services.py b/server/vbv_lernwelt/importer/tests/test_services.py index 3402ef88..c39aded5 100644 --- a/server/vbv_lernwelt/importer/tests/test_services.py +++ b/server/vbv_lernwelt/importer/tests/test_services.py @@ -31,7 +31,6 @@ class CreateOrUpdateUserTestCase(TestCase): create_or_update_user( email="daniel@example.com", - first_name="Daniel", last_name="Egger", sso_id="12229620-81ea-483d-8d96-6ba8be5f9eb7", ) diff --git a/server/vbv_lernwelt/sso/views.py b/server/vbv_lernwelt/sso/views.py index ba0c208c..98aa587e 100644 --- a/server/vbv_lernwelt/sso/views.py +++ b/server/vbv_lernwelt/sso/views.py @@ -36,7 +36,12 @@ def authorize(request): return redirect(f"/{OAUTH_FAIL_REDIRECT}?state=someerror") # to be defined user_data = _user_data_from_token_data(decoded_token) - user = create_or_update_user(**user_data) + user = create_or_update_user( + email=user_data.get("email"), + sso_id=user_data.get("sso_id"), + first_name=user_data.get("first_name", ""), + last_name=user_data.get("last_name", ""), + ) dj_login(request, user) return redirect(f"/") diff --git a/server/vbv_lernwelt/static/avatars/myvbv-default-avatar.png b/server/vbv_lernwelt/static/avatars/myvbv-default-avatar.png new file mode 100644 index 00000000..684656de Binary files /dev/null and b/server/vbv_lernwelt/static/avatars/myvbv-default-avatar.png differ