Update participants, add staff group

This commit is contained in:
Christian Cueni 2023-06-28 10:40:15 +02:00
parent 37fbae8b98
commit 18c21e00e7
3 changed files with 53 additions and 2 deletions

View File

@ -1,5 +1,5 @@
from django.contrib.auth.hashers import make_password
from django.contrib.auth.models import Group
from django.contrib.auth.models import Group, Permission
from environs import Env
env = Env()
@ -13,6 +13,8 @@ from vbv_lernwelt.core.constants import (
)
from vbv_lernwelt.core.models import User
VBV_STAFF_GROUP = "VBV Staff"
default_users = [
{
"email": "student",
@ -109,6 +111,18 @@ def create_default_users(user_model=User, group_model=Group, default_password=No
admin_user.groups.add(admin_group)
admin_user.save()
def _create_staff_user(
email, first_name, last_name, id=None, password=default_password
):
staff_user, created = _get_or_create_user(
user_model=user_model, username=email, password=password, id=id
)
staff_user.is_staff = True
staff_user.first_name = first_name
staff_user.last_name = last_name
staff_user.groups.add(_get_or_create_vbv_staff_group())
staff_user.save()
_create_admin_user(
email="info@iterativ.ch",
first_name="Info",
@ -270,6 +284,11 @@ def create_default_users(user_model=User, group_model=Group, default_password=No
last_name="Student2",
avatar_url="/static/avatars/uk1.lina.egger.jpg",
)
_create_staff_user(
email="matthias.wirth@vbv-afa.ch",
first_name="Matthias",
last_name="Wirth",
)
def _get_or_create_user(user_model, *args, **kwargs):
@ -291,3 +310,35 @@ def _get_or_create_user(user_model, *args, **kwargs):
)
created = True
return user, created
def _get_or_create_vbv_staff_group():
group, created = Group.objects.get_or_create(name=VBV_STAFF_GROUP)
if not created:
return group
permission_codenames = [
"add_user",
"change_user",
"delete_user",
"view_user",
"add_coursesession",
"change_coursesession",
"delete_coursesession",
"view_coursesession",
"add_coursesessionuser",
"change_coursesessionuser",
"delete_coursesessionuser",
"view_coursesessionuser",
]
for codename in permission_codenames:
try:
permission = Permission.objects.get(codename=codename)
except Permission.DoesNotExist:
print(f"Permission with codename '{codename}' does not exist.")
continue
group.permissions.add(permission)
return group

View File

@ -31,7 +31,7 @@ class ImportStudentsTestCase(TestCase):
print(row)
create_or_update_student(dict(row))
self.assertEqual(CourseSessionUser.objects.count(), 14)
self.assertEqual(CourseSessionUser.objects.count(), 15)
class CreateOrUpdateStudentTestCase(TestCase):