From bc9afd396b68f5af4eabd8dbfbd7f288f09b1066 Mon Sep 17 00:00:00 2001 From: emaric Date: Mon, 22 Jan 2024 09:12:29 +0100 Subject: [PATCH] dodan user --- .../__pycache__/models.cpython-38.pyc | Bin 975 -> 1105 bytes .../0009_objektsigurnosti_operater.py | 22 +++++ ...9_objektsigurnosti_operater.cpython-38.pyc | Bin 0 -> 923 bytes plovidba_aplikacija/models.py | 3 +- .../__pycache__/settings.cpython-38.pyc | Bin 3793 -> 4989 bytes plovidba_projekt/settings.py | 79 ++++++++++++++++-- 6 files changed, 95 insertions(+), 9 deletions(-) create mode 100644 plovidba_aplikacija/migrations/0009_objektsigurnosti_operater.py create mode 100644 plovidba_aplikacija/migrations/__pycache__/0009_objektsigurnosti_operater.cpython-38.pyc diff --git a/plovidba_aplikacija/__pycache__/models.cpython-38.pyc b/plovidba_aplikacija/__pycache__/models.cpython-38.pyc index 17ad5fe8e5ff66f6fa5b4bccae10dcde3b6fdbb8..29ae890ecd67123e8f7e4200da0444c9b730383e 100644 GIT binary patch delta 400 zcmX@levyMWl$V!_0SI)gR;4bR$Scd}Hc?yMJ%u5KIfpfuEsBki!JQ$6C55$xA%!)S zF^j#KIf^5NEto-*{Uu17CgUx(-29Z(oMIr0CA2uT2uO1jrd1lEu)PlJJ7r$4j^%hH7O@CFI$rd z%qs%94`?c9eqKD#qSTVq$x|7v8Tlq(WK3lgnrzOb#wa#9j>(jfXYv%L^2l3UZuv#2 zndy1nsg*@6Ak+9ALqj~`LxWv|;(h&HTzzh_J39tDJG!_=apV`I7A2OX78MDA?B+uy z_(5D&Ai)O2#bT57nZ>vng_yuXewv(<{g^#{xKpwc^V0M6lJoP@Ahxmkf`S9A2%CYo XIBbC7RhpA(#|SbNbP-3|N622OutNFa+Dtin%|eexb=PYYIGkPpB@*i5^{ XVFUDHX-=vgBgjaQb9sP9@-P7aWA8Ql diff --git a/plovidba_aplikacija/migrations/0009_objektsigurnosti_operater.py b/plovidba_aplikacija/migrations/0009_objektsigurnosti_operater.py new file mode 100644 index 0000000..166e146 --- /dev/null +++ b/plovidba_aplikacija/migrations/0009_objektsigurnosti_operater.py @@ -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, + ), + ] diff --git a/plovidba_aplikacija/migrations/__pycache__/0009_objektsigurnosti_operater.cpython-38.pyc b/plovidba_aplikacija/migrations/__pycache__/0009_objektsigurnosti_operater.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..59ac68e461a90e070b5d318e92053442074ea9f1 GIT binary patch literal 923 zcmZWn&2G~`5cc{nj+@d*^iU3P;Fe2NZh#PK)HWbNi$uu9vb1tC6U(mcHD0GET;bXi zF91g_yaw;ES5AEegn(I_G!-3dM>FFY&3yCCbbH%3NIu>FhTl!Y_@SNaVv}<~Pd+9E z2C&S?S-_aK&CJZLz{>5wZhR|q0{58#HaH&*aL`ISAFQAQ*2EaNmsD>InDQjnbyCD~ zU@AXP;wq{WQAp+H0x*-ObDeixJaP``$uTK30tQB4qV?HECw0FtV6ho=sFw#OSlCT{ zuyHHxrQLKpy`^)&xv;>6&V?PbU((^K?J^VR3CtoMm05BY&66|=4)*u= zA968E@vN3fysQc#>x3hpRX3vxQ44~yph6xMz;jVy(EqrvycYlX^*m)DOZVlxMXl!!;vezQW@C%H?GxG$EV7hOuySO(Ajj=q5|+?GMXU z<@V2Q{I!7uBVzF>5}TPKJ%=OGX_J-XxA=ArZawf(!w&~if1XAUP z^tBbpuaOFmm8z-|{RjO8eck>7-jFJ_5>iFatV2i;JDM|lzB%`E=FhSJCK9E1JmSM| za`abrXzY1nRQz3hK6SY*fPX7ei_)mzg8&4#VzmGb)Z#Q=OVC8EhxXKxG+FDVy@HPg zAN9TH-$w_S^itr91|UQSAxwuVJ~|8$dIJq9N|*T-1^PQ4T>0)*i- zOu!kKgj7YY3UGEut_bu5oTDdU3eH0sF5tQd(=f9Ws0#EH%%b~CFt;sM1$GLi4*Q@z zzu<$*^fX*S)d`q|t7vEzu6gvjM;EF>MW$ywsT=6_Chl9fZ-WAhJAOI|8JfcU&SKu@ zK&4Ya=y}M}G>ftxSc2TP2-*)AuE#IK3i5f*Ljl5VDDDL41r`S#!rLOf2&;4&?$8-D zIE(ud?zz3Z4W2ih2NUV#J=A(B(koD+SND*+h+Km;dVLSMhseSnw~pKmtOea}3-l&@ zMsFeWIedWu+{RG8^g>ZEdK>N|wurZ7>{HJdc(uuX?GAJXyVHOn?g z)*xoiw)7QJwDVe)SXzPDs0NZIVpMAavjWrWA;& zSp*FX>=X4$s2B6=oxdYzdsCv5!Z_Vf#%YvW)pETv6TRMcql$`Y*rcFn`KRaLQMq1e zq&FH4OY=IWACxz~Vs&Vyo3+;CG~w7{7jh$>j-As@>uH~N-Pqi$Zm`+;IW$nCiSB*L zB!+F}&G+)Fx?xpUM2w_|6z0*ZXTj!TZvO|9_Nro&YZ=E3i zIU!EMobXOM(axLbjVc}bFr9ox-_Pd(JYx`*6fI53n@$XM-2u$wz}WKgxWnD9@fp6i zZks0NOca$E4xhBn`PeUQI^s2y6K*e~Sejn63&hIlD(&~~y0tOLosx!L>5vEVvK6uY zI7++t@IK+Y#L%+4#Bj2PFXT;W9S;4IqSO~lj+t9fGM3vebof5n!fZaA+LmrBYK zF*|c{t?i_F((!I+i%JIHlImR8hw*Y?^PP)`In$iXa5DRm2$tkSpD`ZY&T1sDI+wWc z92X8^x2jH~{t&qSMO3TQL0dM~g+*A;H delta 728 zcmYjPJ8u&~5Wd|zpB>w`ek9J*j-8idCvl!YATf{&j)Nmhjv#5Kar2!{j&LkpBs!EL zq=x7yT_h3`LZZtLprE0pbwxpgM2{#?*fYptM>G1q*>7iONBcYbB_$3GBdEyL`S{K{ zPh5y3|G_R6)=z!Vp9Pyb>CF&@nqdkz4KkX7L^DDWrda-?=w8NSF@#}^U=(AvpN5d6VWhmOrz z&q&X9=ioKGgCE# zwe((b%AUIH-o%cEKTD{E!)jCwurSZ?q+e4tuIcWp_>1*8zu}s6Rb!m-pSltB$-RFT U 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" # +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 \ No newline at end of file