Skip to content

Commit

Permalink
Merge pull request #308 from SELab-2/backend_extras
Browse files Browse the repository at this point in the history
Backend extras
  • Loading branch information
sPAICEcake authored May 22, 2024
2 parents c9c0b3d + 59c5e01 commit 163b913
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 44 deletions.
20 changes: 20 additions & 0 deletions api/base_templates/file_type.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash

#@param
# Vul hieronder het type dat het bestand moet hebben
file_type="pdf"


file_exists=false
for file in *.$file_type; do
if [ -e "$file" ]; then
file_exists=true
break
fi
done

if [ "$file_exists" = true ]; then
echo "$file_type: OK"
else
echo "$file_type: FAIL"
fi
29 changes: 3 additions & 26 deletions api/serializers/gebruiker.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,9 @@ def update(self, instance, validated_data):
Returns:
Gebruiker: De bijgewerkte gebruiker.
"""
is_lesgever = validated_data.pop("is_lesgever", instance.is_lesgever)
if instance.is_lesgever != is_lesgever:
validate_lesgever_change(instance)
instance.is_lesgever = is_lesgever

validated_data.pop("user", None)
validated_data.pop("is_lesgever", None)

gepinde_vakken = validated_data.pop(
"gepinde_vakken", instance.gepinde_vakken.all()
Expand All @@ -76,28 +75,6 @@ def update(self, instance, validated_data):
return instance


def validate_lesgever_change(instance):
"""
Valideert of de lesgever wijziging geldig is.
Args:
instance (Gebruiker): De gebruiker waarvoor de wijziging wordt gecontroleerd.
Raises:
serializers.ValidationError: Als de lesgever eerst verwijderd moet worden uit zijn/haar huidige vakken.
"""
if instance.is_lesgever and Vak.objects.filter(lesgevers=instance):
raise serializers.ValidationError(
f"De lesgever {instance} moet eerst verwijderd worden \
als lesgever in zijn huidige vakken"
)
elif not instance.is_lesgever and Vak.objects.filter(studenten=instance):
raise serializers.ValidationError(
f"De student {instance} moet eerst verwijderd worden \
als student in zijn huidige vakken"
)


def validate_gepinde_vakken(instance, gepinde_vakken):
"""
Valideert of de gepinde vakken geldig zijn voor de gebruiker.
Expand Down
17 changes: 4 additions & 13 deletions api/views/gebruiker.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,7 @@ def gebruiker_list(request):
Response: Een lijst van gebruikers.
"""

if has_permissions(request.user):
gebruikers = Gebruiker.objects.all()
else:
gebruikers = Gebruiker.objects.filter(user=request.user.id)
gebruikers = Gebruiker.objects.all()

if "is_lesgever" in request.GET and request.GET.get("is_lesgever").lower() in [
"true",
Expand Down Expand Up @@ -64,16 +61,10 @@ def gebruiker_detail(request, id):
return Response(status=status.HTTP_404_NOT_FOUND)

if request.method == "GET":
if (
has_permissions(request.user)
or int(id) == request.user.id
or gebruiker.is_lesgever
):
serializer = GebruikerSerializer(gebruiker)
return Response(serializer.data)
return Response(status=status.HTTP_403_FORBIDDEN)
serializer = GebruikerSerializer(gebruiker)
return Response(serializer.data)
elif request.method in ["PUT", "PATCH"]:
if request.user.is_superuser:
if has_permissions(request.user) or request.user.id == id:
if request.method == "PUT":
serializer = GebruikerSerializer(gebruiker, data=request.data)
else:
Expand Down
8 changes: 3 additions & 5 deletions api/views/restrictie.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def restrictie_list(request, format=None):
Returns:
Response: Een http-respons met de opgevraagde of gemaakte restricties.
"""

if request.method == "GET":
restricties = Restrictie.objects.all()

Expand All @@ -33,9 +33,7 @@ def restrictie_list(request, format=None):
except NameError:
return Response(status=status.HTTP_400_BAD_REQUEST)

if "moet_slagen" in request.GET and request.GET.get(
"moet_slagen"
).lower() in [
if "moet_slagen" in request.GET and request.GET.get("moet_slagen").lower() in [
"true",
"false",
]:
Expand All @@ -45,7 +43,7 @@ def restrictie_list(request, format=None):

serializer = RestrictieSerializer(restricties, many=True)
return Response(serializer.data)

if has_permissions(request.user):
if request.method == "POST":
serializer = RestrictieSerializer(data=request.data)
Expand Down

0 comments on commit 163b913

Please sign in to comment.