22from django .db .models import QuerySet
33from django .contrib .auth .models import User
44from django .http import Http404
5+ from django .conf import settings
6+ from django .core .exceptions import PermissionDenied
57
68from hknweb .utils import allow_public_access , get_access_level , GROUP_TO_ACCESSLEVEL
79
@@ -16,6 +18,13 @@ def people(request):
1618 if "semester" in request .GET and not request .GET ["semester" ].isdigit ():
1719 raise Http404
1820
21+ is_bridge = request .user .groups .filter (name = settings .BRIDGE_GROUP ).exists ()
22+
23+ # Prevents unauthorized users from just typing the url to edit the page
24+ if request .GET .get ("edit" ) == "true" :
25+ if not is_bridge :
26+ raise PermissionDenied
27+
1928 semester : Semester = Semester .objects .filter (
2029 pk = request .GET .get ("semester" ) or None
2130 ).first ()
@@ -40,10 +49,8 @@ def people(request):
4049 committee__is_exec = False
4150 ).order_by ("committee__name" )
4251
43- is_officer = get_access_level (request .user ) <= GROUP_TO_ACCESSLEVEL ["officer" ]
44-
4552 form = ProfilePictureForm (request .POST )
46- if is_officer and request .method == "POST" :
53+ if is_bridge and request .method == "POST" :
4754 user = User .objects .get (pk = request .POST ["user_id" ])
4855 form .instance = user .profile
4956 if form .is_valid ():
@@ -52,7 +59,6 @@ def people(request):
5259 context = {
5360 "execs" : execs ,
5461 "committeeships" : committeeships ,
55- "is_officer" : is_officer ,
5662 "form" : form ,
5763 "semester_select_form" : SemesterSelectForm ({"semester" : semester }),
5864 }
0 commit comments