Skip to content

Commit 9cfec12

Browse files
feat: add edx-drf-extensions lib
* Add SessionAuthentication * Add JwtAuthentication
1 parent 20a2f73 commit 9cfec12

File tree

13 files changed

+421
-106
lines changed

13 files changed

+421
-106
lines changed

ai_aside/config_api/permissions.py

+7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ def has_permission(self, request, view):
1414
"""
1515
Check permissions for this class.
1616
"""
17+
18+
if not request.user.is_authenticated:
19+
return False
20+
21+
if not request.user.is_active:
22+
return False
23+
1724
course_key_string = view.kwargs.get('course_id')
1825
course_key = validate_course_key(course_key_string)
1926

ai_aside/config_api/view_utils.py

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
"""
44
import logging
55

6+
from edx_rest_framework_extensions.auth.jwt.authentication import JwtAuthentication
7+
from edx_rest_framework_extensions.auth.session.authentication import SessionAuthentication
68
from rest_framework import status
79
from rest_framework.response import Response
810
from rest_framework.views import APIView
@@ -37,6 +39,7 @@ class AiAsideAPIView(APIView):
3739
Base API View with authentication and permissions.
3840
"""
3941

42+
authentication_classes = (JwtAuthentication, SessionAuthentication,)
4043
permission_classes = (HasStudioWriteAccess,)
4144

4245
def handle_exception(self, exc):

requirements/base.in

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ edx_django_utils
66
xblock
77
edx-opaque-keys
88
djangorestframework
9+
edx-drf-extensions

requirements/base.txt

+54-14
Original file line numberDiff line numberDiff line change
@@ -8,57 +8,93 @@ appdirs==1.4.4
88
# via fs
99
asgiref==3.7.2
1010
# via django
11+
certifi==2023.7.22
12+
# via requests
1113
cffi==1.15.1
12-
# via pynacl
13-
click==8.1.6
14+
# via
15+
# cryptography
16+
# pynacl
17+
charset-normalizer==3.2.0
18+
# via requests
19+
click==8.1.7
1420
# via edx-django-utils
15-
django==3.2.20
21+
cryptography==41.0.3
22+
# via pyjwt
23+
django==3.2.21
1624
# via
1725
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
1826
# -r requirements/base.in
1927
# django-crum
2028
# django-waffle
2129
# djangorestframework
30+
# drf-jwt
2231
# edx-django-utils
32+
# edx-drf-extensions
2333
django-crum==0.7.9
2434
# via edx-django-utils
2535
django-waffle==4.0.0
26-
# via edx-django-utils
36+
# via
37+
# edx-django-utils
38+
# edx-drf-extensions
2739
djangorestframework==3.14.0
40+
# via
41+
# -r requirements/base.in
42+
# drf-jwt
43+
# edx-drf-extensions
44+
drf-jwt==1.19.2
45+
# via edx-drf-extensions
46+
edx-django-utils==5.7.0
47+
# via
48+
# -r requirements/base.in
49+
# edx-drf-extensions
50+
edx-drf-extensions==8.9.2
2851
# via -r requirements/base.in
29-
edx-django-utils==5.6.0
30-
# via -r requirements/base.in
31-
edx-opaque-keys==2.3.0
32-
# via -r requirements/base.in
52+
edx-opaque-keys==2.5.0
53+
# via
54+
# -r requirements/base.in
55+
# edx-drf-extensions
3356
fs==2.4.16
3457
# via xblock
58+
idna==3.4
59+
# via requests
3560
lxml==4.9.3
3661
# via xblock
3762
markupsafe==2.1.3
3863
# via xblock
39-
newrelic==8.8.1
64+
newrelic==9.0.0
4065
# via edx-django-utils
4166
pbr==5.11.1
4267
# via stevedore
4368
psutil==5.9.5
4469
# via edx-django-utils
4570
pycparser==2.21
4671
# via cffi
72+
pyjwt[crypto]==2.8.0
73+
# via
74+
# drf-jwt
75+
# edx-drf-extensions
4776
pymongo==3.13.0
4877
# via edx-opaque-keys
4978
pynacl==1.5.0
5079
# via edx-django-utils
5180
python-dateutil==2.8.2
52-
# via xblock
53-
pytz==2023.3
81+
# via
82+
# edx-drf-extensions
83+
# xblock
84+
pytz==2023.3.post1
5485
# via
5586
# django
5687
# djangorestframework
5788
# xblock
5889
pyyaml==6.0.1
5990
# via xblock
91+
requests==2.31.0
92+
# via edx-drf-extensions
93+
semantic-version==2.10.0
94+
# via edx-drf-extensions
6095
six==1.16.0
6196
# via
97+
# edx-drf-extensions
6298
# fs
6399
# python-dateutil
64100
sqlparse==0.4.4
@@ -68,12 +104,16 @@ stevedore==5.1.0
68104
# edx-django-utils
69105
# edx-opaque-keys
70106
typing-extensions==4.7.1
71-
# via asgiref
72-
web-fragments==2.0.0
107+
# via
108+
# asgiref
109+
# edx-opaque-keys
110+
urllib3==2.0.4
111+
# via requests
112+
web-fragments==2.1.0
73113
# via xblock
74114
webob==1.8.7
75115
# via xblock
76-
xblock==1.6.2
116+
xblock==1.7.0
77117
# via -r requirements/base.in
78118

79119
# The following packages are considered to be unsafe in a requirements file:

requirements/ci.txt

+7-5
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
#
77
distlib==0.3.7
88
# via virtualenv
9-
filelock==3.12.2
9+
filelock==3.12.3
1010
# via
1111
# tox
1212
# virtualenv
1313
packaging==23.1
1414
# via tox
15-
platformdirs==3.9.1
15+
platformdirs==3.10.0
1616
# via virtualenv
17-
pluggy==1.2.0
17+
pluggy==1.3.0
1818
# via tox
1919
py==1.11.0
2020
# via tox
@@ -27,7 +27,9 @@ tox==3.28.0
2727
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
2828
# -r requirements/ci.in
2929
# tox-battery
30-
tox-battery==0.6.1
30+
tox-battery==0.6.2
3131
# via -r requirements/ci.in
32-
virtualenv==20.24.2
32+
typing-extensions==4.7.1
33+
# via filelock
34+
virtualenv==20.24.4
3335
# via tox

0 commit comments

Comments
 (0)