Commit 11672ca0 authored by impfundev's avatar impfundev

feat: setup authentication

parent 486a28c4
from django.contrib import admin
# Register your models here.
from django.apps import AppConfig
class ApiConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'api'
from django.contrib.auth import get_user_model
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()
fields = ["url", "id", "username", "email", "is_staff"]
from django.test import TestCase
# Create your tests here.
from django.urls import path, include
from rest_framework import routers
from api.views import UserViewSet
router = routers.DefaultRouter()
router.register(r"users", UserViewSet, basename="user")
urlpatterns = [
path("", include(router.urls)),
]
from rest_framework.viewsets import ModelViewSet
from rest_framework.permissions import IsAuthenticated
from api.serializers import get_user_model, UserSerializer
class UserViewSet(ModelViewSet):
permission_classes = [IsAuthenticated]
queryset = get_user_model().objects.all().order_by("id")
serializer_class = UserSerializer
......@@ -54,21 +54,44 @@ if DEBUG:
# Application definition
INSTALLED_APPS = [
"books.apps.BooksConfig",
"book_loans.apps.BookLoansConfig",
"members.apps.MembersConfig",
"librarians.apps.LibrariansConfig",
"authentications.apps.AuthenticationsConfig",
"dashboards.apps.DashboardsConfig",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
# 3rd party
"debug_toolbar",
"rest_framework",
"rest_framework.authtoken",
"allauth",
"allauth.account",
"allauth.socialaccount",
"dj_rest_auth",
"dj_rest_auth.registration",
# local
"api.apps.ApiConfig",
"books.apps.BooksConfig",
"members.apps.MembersConfig",
"book_loans.apps.BookLoansConfig",
"librarians.apps.LibrariansConfig",
"dashboards.apps.DashboardsConfig",
"authentications.apps.AuthenticationsConfig",
]
# 3rd party config
# DJANGO REST FRAMEWORK CONFIG
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": [
"rest_framework.authentication.SessionAuthentication",
"rest_framework.authentication.TokenAuthentication",
],
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
"PAGE_SIZE": 10,
}
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"whitenoise.middleware.WhiteNoiseMiddleware",
......@@ -78,10 +101,11 @@ MIDDLEWARE = [
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
"authentications.middleware.AuthMiddleware",
# 3rd party
"debug_toolbar.middleware.DebugToolbarMiddleware",
# "django.middleware.cache.UpdateCacheMiddleware",
# "django.middleware.cache.FetchFromCacheMiddleware",
"allauth.account.middleware.AccountMiddleware",
# local
"authentications.middleware.AuthMiddleware",
]
ROOT_URLCONF = "config.urls"
......
......@@ -19,17 +19,16 @@ from django.contrib import admin
from django.urls import path
from django.conf.urls import include
from dashboards.views import home
from django.views.decorators.cache import cache_page
from django.conf import settings
urlpatterns = [
path(
"",
cache_page(settings.CACHE_TTL, key_prefix="homepage")(home),
name="homepage",
),
path("", home, name="homepage"),
path("dashboard/", include("dashboards.urls")),
path("admin/", admin.site.urls),
path("auth/", include("authentications.urls")),
path("__debug__/", include("debug_toolbar.urls")),
# API
path("api/v1/", include("api.urls")),
path("api/v1/auth/", include("dj_rest_auth.urls")),
path("api/v1/auth/registration/", include("dj_rest_auth.registration.urls")),
path("api-auth/", include("rest_framework.urls")),
]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment