Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,4 @@ Le Frontend est en ReactJS + Vite, dans le dossier [webapp](./webapp).

## Règles de collaboration :

- Aucun Push ne doit être fait directement sur main.
- Pour travailler sur une évolution du site, il vous faudra d'abord créer une branche et l'associer à une tâche du tableau Kanban.
- Pour plus de clarté et faciliter la collaboration, il serait préférable de nommer vos branches selon le format suivant:
`{votrePseudo}/{tâche}`, par exemple `arnaudfnr/gestion_auth`
- Lorsque votre code est prêt, il faudra créer une Pull Request avec une description claire et concise du code ajouté.
- La Pull Request sera ensuite revue par un autre dev, puis fusionnée avec la branche main une fois que les changements auront été validés.
[Voir le guide de contribution](https://outline.services.dataforgood.fr/doc/onboarding-dev-dzWHb9O90Q)
17 changes: 9 additions & 8 deletions backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,14 @@ Endpoints
------------

- `http://localhost:8000/admin`: interface d'administration par défaut de Django, permettant de gérer les utilisateurs et les groupes.
- `http://localhost:8000/users`: permet de récupérer la liste des utilsiateurs.
- `http://localhost:8000/groups`: permet de récupérer la liste des groupes.
- `htpp://localhost:8000/admin/doc` : interface de documentation des applications installées sur Django.
- `http://localhost:8000/api/users`: permet de récupérer la liste des utilisateurs, nécessite d'être adminisitrateur.
- `http://localhost:8000/api/groups`: permet de récupérer la liste des groupes., nécessite d'être administrateur.
- `http://localhost:8000/token`: permet de créer un token JWT à partir des identifiants de connexion d'un utilisateur.
- `http://localhost:8000/token/refresh`: permet de rafraîchir un token JWT.

Plus d'infos sur la gestion des tokens:
https://django-rest-framework-simplejwt.readthedocs.io/en/latest/index.html

Installation
------------
Expand All @@ -29,12 +35,7 @@ pip install -r requirements.txt
python manage.py migrate
```

2. Load data into the mysql database
``` bash
python manage.py loaddata db.json
```

3. Create admin user
2. Create admin user
``` bash
python manage.py createsuperuser
```
Expand Down
5 changes: 5 additions & 0 deletions backend/all4trees/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,14 @@

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework_simplejwt',
]

MIDDLEWARE = [
Expand Down Expand Up @@ -120,4 +122,7 @@
REST_FRAMEWORK = {
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
"PAGE_SIZE": 10,
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
}
10 changes: 2 additions & 8 deletions backend/all4trees/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,11 @@
"""
from django.contrib import admin
from django.urls import include, path
from rest_framework import routers

from users import views

router = routers.DefaultRouter()
router.register(r"users", views.UserViewSet)
router.register(r"groups", views.GroupViewSet)


urlpatterns = [
path('admin/doc/', include('django.contrib.admindocs.urls')),
path('admin/', admin.site.urls),
path("", include(router.urls)),
path("api/", include('users.urls')),
path("api-auth/", include("rest_framework.urls", namespace="rest_framework")),
]
2 changes: 2 additions & 0 deletions backend/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
asgiref==3.8.1
Django==4.2.2
djangorestframework==3.16.0
djangorestframework_simplejwt==5.5.1
docutils==0.22
15 changes: 15 additions & 0 deletions backend/users/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from django.urls import path
from rest_framework import routers
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
from .views import UserViewSet, GroupViewSet

router = routers.DefaultRouter()
router.register(r"users", UserViewSet)
router.register(r"groups", GroupViewSet)

urlpatterns = [
path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
]

urlpatterns += router.urls
4 changes: 2 additions & 2 deletions backend/users/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class UserViewSet(viewsets.ModelViewSet):

queryset = User.objects.all().order_by("-date_joined")
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
permission_classes = [permissions.IsAdminUser]


class GroupViewSet(viewsets.ModelViewSet):
Expand All @@ -21,4 +21,4 @@ class GroupViewSet(viewsets.ModelViewSet):

queryset = Group.objects.all().order_by("name")
serializer_class = GroupSerializer
permission_classes = [permissions.IsAuthenticated]
permission_classes = [permissions.IsAdminUser]
17 changes: 16 additions & 1 deletion webapp/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.