dodan user

This commit is contained in:
emaric 2024-01-22 09:12:29 +01:00
parent 44a9b4570b
commit bc9afd396b
6 changed files with 95 additions and 9 deletions

View File

@ -0,0 +1,22 @@
# Generated by Django 4.2.9 on 2024-01-22 07:59
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('plovidba_aplikacija', '0008_objektsigurnosti_e_br_objektsigurnosti_fotografija_and_more'),
]
operations = [
migrations.AddField(
model_name='objektsigurnosti',
name='operater',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
preserve_default=False,
),
]

View File

@ -1,6 +1,7 @@
from django.db import models
from django.contrib.gis.db import models
from django.contrib.auth.models import User
from django.conf import settings
class ObjektSigurnosti(models.Model):
naziv = models.CharField(max_length=255)
@ -12,7 +13,7 @@ class ObjektSigurnosti(models.Model):
fotografija = models.CharField(max_length=255, null=True, blank=True)
id_ais = models.CharField(max_length=255, null=True, blank=True)
simbol_oznaka = models.CharField(max_length=255, null=True, blank=True)
#operater = models.ForeignKey(User, on_delete=models.CASCADE)
operater = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
def __str__(self):
return self.naziv

View File

@ -18,6 +18,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent
# dodano
import os
from osgeo import gdal
from datetime import timedelta
from .env import BASE_DIR, ENV_BOOL, ENV_LIST, ENV_NUM, ENV_STR, PARDIR # noqa
@ -31,10 +32,25 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = 'django-insecure-6iovioyxw5hqwp)0=zu&yu&p!ql34g+x(p4xgk79vs57zpinio'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# DEBUG = ENV_BOOL("DEBUG")
ALLOWED_HOSTS = []
# CSRF_TRUSTED_ORIGINS = ENV_LIST("CSRF_TRUSTED_ORIGINS", ",", []),
# CORS settings
CORS_ALLOW_ALL_ORIGINS = False
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOWED_ORIGINS = ENV_LIST("CORS_ALLOWED_ORIGINS", ",", [])
# HTTP -> HTTPS
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
# Frontend
FRONTEND_URL = ENV_STR("FRONTEND_URL")
# Application definition
@ -130,6 +146,9 @@ AUTH_PASSWORD_VALIDATORS = [
},
]
# Substituting a custom User model
AUTH_USER_MODEL = "user.User"
# Define DRF settings
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": [
@ -143,6 +162,34 @@ REST_FRAMEWORK = {
"PAGE_SIZE": 100,
}
# # # AUTH SETTINGS
# Force email based auth
# Custom auth variables
AUTH_AUTHENTICATION_METHOD = "email" # Options: username | email | username_email
AUTH_EMAIL_REQUIRED = True
AUTH_USERNAME_REQUIRED = False # Require username in registration
AUTH_EMAIL_VERIFICATION = "mandatory" # <mandatory|optional|None>
AUTH_ACCESS_TOKEN_NAME = "access" # set access token name
AUTH_REFRESH_TOKEN_NAME = "refresh" # set access token name
# Simple JWT config
SIMPLE_JWT = {
"REFRESH_TOKEN_LIFETIME": timedelta(
days=ENV_NUM("JWT_REFRESH_TOKEN_LIFETIME_DAYS", 15)
),
"ROTATE_REFRESH_TOKENS": True,
"ACCESS_TOKEN_LIFETIME": timedelta(
minutes=ENV_NUM("JWT_ACCESS_TOKEN_LIFETIME_MINUTES", 10)
),
"AUTH_COOKIE_SECURE": True,
"AUTH_COOKIE_SAMESITE": "None",
"AUTH_COOKIE_HTTP_ONLY": True,
}
# API docs
SHOW_API_DOCS = ENV_BOOL("SHOW_API_DOCS", True)
@ -161,14 +208,10 @@ USE_TZ = True
LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")]
PROJ_LIB = ENV_STR("PROJ_LIB", None)
GDAL_DATA = ENV_STR("GDAL_DATA", None)
if PROJ_LIB:
os.environ["PROJ_LIB"] = PROJ_LIB
if GDAL_DATA:
os.environ["GDAL_DATA"] = GDAL_DATA
# Available languages
LANGUAGES = [
("hr", ("Croatian")),
]
# Static files (CSS, JavaScript, Images)
@ -195,6 +238,18 @@ RESOURCES_DIR = os.path.join(BASE_DIR, "resources")
# TEMP DIR
TEMP_DIR = os.path.join(BASE_DIR, "temp")
# # # Email and support settings # # #
ADMIN_EMAIL = ENV_STR("ADMIN_EMAIL")
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = ENV_STR("EMAIL_HOST", "smtp.office365.com")
EMAIL_USE_TLS = ENV_BOOL("EMAIL_USER_TLS", True)
EMAIL_PORT = ENV_NUM("EMAIL_PORT", 587)
EMAIL_HOST_USER = ENV_STR("EMAIL_HOST_USER")
EMAIL_HOST_PASSWORD = ENV_STR("EMAIL_HOST_PASSWORD")
DEFAULT_FROM_EMAIL = ENV_STR("DEFAULT_FROM_EMAIL")
EMAIL_USE_SSL = ENV_BOOL("EMAIL_USER_TLS", False)
# Default primary key field type
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
@ -202,3 +257,11 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
PROJ_LIB = ENV_STR("PROJ_LIB", None)
GDAL_DATA = ENV_STR("GDAL_DATA", None)
if PROJ_LIB:
os.environ["PROJ_LIB"] = PROJ_LIB
if GDAL_DATA:
os.environ["GDAL_DATA"] = GDAL_DATA