Skip to content

Commit a3fccd7

Browse files
authored
fix: Portal frontend 50 (#132)
* fix: use old login approach * fix order
1 parent aacceba commit a3fccd7

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

codeforlife/user/models/user.py

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -434,8 +434,10 @@ def create_user( # type: ignore[override]
434434
# pylint: disable-next=import-outside-toplevel
435435
from .student import Student
436436

437-
# pylint: disable-next=protected-access
437+
# pylint: disable=protected-access
438438
password = StudentUser._get_random_password()
439+
login_id, hashed_login_id = StudentUser._get_random_login_id()
440+
# pylint: enable=protected-access
439441

440442
user = super().create_user(
441443
**extra_fields,
@@ -444,17 +446,18 @@ def create_user( # type: ignore[override]
444446
password=password,
445447
)
446448

447-
# pylint: disable-next=protected-access
448-
user._password = password
449-
450449
Student.objects.create(
451450
class_field=klass,
452451
user=UserProfile.objects.create(user=user),
453452
new_user=user,
454-
# pylint: disable-next=protected-access
455-
login_id=StudentUser._get_random_login_id(),
453+
login_id=hashed_login_id,
456454
)
457455

456+
# pylint: disable=protected-access
457+
user._password = password
458+
user._login_id = login_id
459+
# pylint: enable=protected-access
460+
458461
# TODO: delete this in new data schema
459462
TotalActivity.objects.update(
460463
student_registrations=F("student_registrations") + 1
@@ -477,6 +480,9 @@ def get_queryset(self):
477480
class StudentUser(User):
478481
"""A user that is a student."""
479482

483+
# TODO: move this is to Student model in new schema.
484+
_login_id: t.Optional[str]
485+
480486
teacher: None
481487
student: "Student"
482488

@@ -497,22 +503,25 @@ def _get_random_password():
497503
@staticmethod
498504
def _get_random_login_id():
499505
# pylint: disable-next=import-outside-toplevel
500-
from .student import Student
506+
# from .student import Student
501507

502-
login_id = None
503-
while (
504-
login_id is None
505-
or Student.objects.filter(login_id=login_id).exists()
506-
):
507-
login_id = get_random_string(length=64)
508+
# login_id = None
509+
# while (
510+
# login_id is None
511+
# or Student.objects.filter(login_id=login_id).exists()
512+
# ):
513+
# login_id = get_random_string(length=64)
508514

509-
return login_id
515+
# TODO: replace below code with commented out code above.
516+
# pylint: disable-next=import-outside-toplevel
517+
from common.helpers.generators import generate_login_id
518+
519+
return generate_login_id()
510520

511521
@staticmethod
512522
def get_random_username():
513523
"""Generate a random username that is unique."""
514524
username = None
515-
516525
while (
517526
username is None or User.objects.filter(username=username).exists()
518527
):
@@ -523,7 +532,7 @@ def get_random_username():
523532
# pylint: disable-next=arguments-differ
524533
def set_password(self, raw_password: t.Optional[str] = None):
525534
super().set_password(raw_password or self._get_random_password())
526-
self.student.login_id = self._get_random_login_id()
535+
self._login_id, self.student.login_id = self._get_random_login_id()
527536

528537

529538
# pylint: disable-next=missing-class-docstring,too-few-public-methods

0 commit comments

Comments
 (0)