Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: model view set test case #60

Merged
merged 11 commits into from
Jan 23, 2024
Merged

fix: model view set test case #60

merged 11 commits into from
Jan 23, 2024

Conversation

SKairinos
Copy link
Contributor

@SKairinos SKairinos commented Jan 20, 2024

This change is Reviewable

Copy link
Contributor

@faucomte97 faucomte97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 22 of 22 files at r1, all commit messages.
Reviewable status: all files reviewed, 6 unresolved discussions (waiting on @SKairinos)


codeforlife/user/serializers/school.py line 29 at r1 (raw file):

            "id": instance.id,
            "name": instance.name,
            "country": str(instance.country),

Why do you stringify this?


codeforlife/user/serializers/student.py line 27 at r1 (raw file):

            "id": instance.id,
            "klass": instance.class_field.access_code,
            "school": instance.class_field.teacher.school.pk,

school isn't listed in the fields, is this OK?


codeforlife/user/serializers/user.py line 31 at r1 (raw file):

            "teacher",
            "id",
            "password",

I thought the issue with __all__ was that it included fields like password yet it's still here?


codeforlife/user/tests/views/test_user.py line 266 at r1 (raw file):

        )

        self.client.retrieve(other_user, status.HTTP_404_NOT_FOUND)

Confused as to why a student can't retrieve their own teacher?


codeforlife/user/tests/views/test_user.py line 449 at r1 (raw file):

    def test_list__teacher(self):
        """
        Teacher can list all the users in the same school.

Teacher should only be allowed to list all teachers in the same school & all students in their classes.
Only admin teachers can list all the users in the same school.


codeforlife/user/tests/views/test_user.py line 479 at r1 (raw file):

    def test_list__student(self):
        """
        Student can list only themself.

Can't student list all users in their class? ie classmates + teacher?

Copy link
Contributor Author

@SKairinos SKairinos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 20 of 22 files reviewed, 6 unresolved discussions (waiting on @faucomte97)


codeforlife/user/serializers/school.py line 29 at r1 (raw file):

Previously, faucomte97 (Florian Aucomte) wrote…

Why do you stringify this?

yes. otherwise JSON cannot serialize this object.


codeforlife/user/serializers/student.py line 27 at r1 (raw file):

Previously, faucomte97 (Florian Aucomte) wrote…

school isn't listed in the fields, is this OK?

no. it should be. fixed.


codeforlife/user/serializers/user.py line 31 at r1 (raw file):

Previously, faucomte97 (Florian Aucomte) wrote…

I thought the issue with __all__ was that it included fields like password yet it's still here?

password needs to be added in the fields so you can PATCH your password. however, down below in extra_kwargs I specify password is write_only=True (cannnot read)


codeforlife/user/tests/views/test_user.py line 266 at r1 (raw file):

Previously, faucomte97 (Florian Aucomte) wrote…

Confused as to why a student can't retrieve their own teacher?

I think it's just because no where in the app do we allow students to see their class' teacher. We can change this later if need be but I disallowed it for now as I'm trying to follow the principal of minimal privilege/access.


codeforlife/user/tests/views/test_user.py line 449 at r1 (raw file):

Previously, faucomte97 (Florian Aucomte) wrote…

Teacher should only be allowed to list all teachers in the same school & all students in their classes.
Only admin teachers can list all the users in the same school.

The test does check that. Just the test description was wrong


codeforlife/user/tests/views/test_user.py line 479 at r1 (raw file):

Previously, faucomte97 (Florian Aucomte) wrote…

Can't student list all users in their class? ie classmates + teacher?

yes! fixed!

Copy link
Contributor

@faucomte97 faucomte97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 2 of 2 files at r2, all commit messages.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @SKairinos)


codeforlife/user/tests/views/test_user.py line 266 at r1 (raw file):

Previously, SKairinos (Stefan Kairinos) wrote…

I think it's just because no where in the app do we allow students to see their class' teacher. We can change this later if need be but I disallowed it for now as I'm trying to follow the principal of minimal privilege/access.

They can in rapid router because they can see custom levels created by their teacher and they can share created levels with their teacher. Can add a to-do if we don't want to allow it yet


codeforlife/user/tests/views/test_user.py line 479 at r1 (raw file):

Previously, SKairinos (Stefan Kairinos) wrote…

yes! fixed!

Adding a note that this still doesn't include the teachers (unless I'm wrong)

Copy link
Contributor Author

@SKairinos SKairinos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 20 of 23 files reviewed, 1 unresolved discussion (waiting on @faucomte97)


codeforlife/user/tests/views/test_user.py line 266 at r1 (raw file):

Previously, faucomte97 (Florian Aucomte) wrote…

They can in rapid router because they can see custom levels created by their teacher and they can share created levels with their teacher. Can add a to-do if we don't want to allow it yet

if that's the case, you're right. fixed.


codeforlife/user/tests/views/test_user.py line 479 at r1 (raw file):

Previously, faucomte97 (Florian Aucomte) wrote…

Adding a note that this still doesn't include the teachers (unless I'm wrong)

Fixed.

Copy link
Contributor

@faucomte97 faucomte97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 3 of 3 files at r3, all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @SKairinos)

Copy link
Contributor

@faucomte97 faucomte97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @SKairinos)

Copy link
Contributor

@faucomte97 faucomte97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 3 of 3 files at r4, all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @SKairinos)

@SKairinos SKairinos merged commit 9fd9129 into main Jan 23, 2024
4 checks passed
@SKairinos SKairinos deleted the code-checkers branch January 23, 2024 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants