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
4 changes: 2 additions & 2 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ DB_USERS_PICTURES_COLLECTION=users.pictures
DB_USERS_CONTACTS_COLLECTION=users.contacts
DB_USERS_MESSAGES_COLLECTION=users.messages
LOG_DB_URL=
LOG_DATABASE_NAME=auth-logs
LOG_DATABASE_NAME=auth-service-logs
LOG_LEVEL=DEBUG
JWT_SECRET_KEY=
JWT_ALGORITHM=HS256
JWT_EXPIRE_MINUTES=15
JWT_EXPIRE_MINUTES=240
CORS_ALLOWED_HOSTS="http://localhost:8081,http://localhost:8002"
TOTP_SECRET=
TOTP_DIGEST=sha1
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ pip
fastapi
uvicorn[standard]
pymongo[srv]
log2mongo
python-dotenv
python-multipart
pyjwt
Expand Down
7 changes: 3 additions & 4 deletions src/dependency_injection/containers.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from dependency_injector import containers, providers
import os
from dotenv import load_dotenv
from log2mongo import log2mongo

from src.services import mongodb_service
from src.services.crypto_service import CryptoService
from src.logging.mongo_logging import MongoLogger
from src.services.totp_service import TOTP

load_dotenv()
Expand All @@ -27,11 +27,10 @@ class Container(containers.DeclarativeContainer):
#config = providers.Configuration(ini_files=["config.ini"])

logging = providers.Singleton(
MongoLogger,
log2mongo,
os.environ["LOG_DB_URL"], #config.log.db_url,
os.environ["LOG_DATABASE_NAME"], #config.log.db_database,
"",
os.environ["LOG_LEVEL"], #config.log.level
level = os.environ["LOG_LEVEL"], #config.log.level
)

database_client = providers.Singleton(
Expand Down
50 changes: 0 additions & 50 deletions src/logging/mongo_logging.py

This file was deleted.

2 changes: 1 addition & 1 deletion src/middlewares/auth_jwt.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ async def __call__(self, request: Request):
email = await verify_token(token)
return email
except Exception as e:
raise e
raise e
3 changes: 2 additions & 1 deletion src/middlewares/auth_roles_jwt.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ async def __call__(self, request: Request):
email = await verify_token_and_roles(token, ['admin'])
return email
except Exception as e:
raise e
raise e

4 changes: 2 additions & 2 deletions src/routers/admin/users_router.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from typing import Annotated
from fastapi import APIRouter, Depends, Response
from pymongo.asynchronous.database import AsyncDatabase
from log2mongo import log2mongo
from dependency_injector.wiring import Provide, inject

from src.models.user_model import User
Expand All @@ -9,7 +10,6 @@
from src.dependencies import get_db
from src.middlewares.auth_jwt import JWTCustom
from src.dependency_injection.containers import Container
from src.logging.mongo_logging import MongoLogger
import src.services.user_service as uSvc

oauth2_scheme = JWTCustom(tokenUrl="/auth/sign-in")
Expand All @@ -18,7 +18,7 @@
dependencies=[Depends(oauth2_scheme)],
prefix="/admin")
db_dependency = Annotated[AsyncDatabase, Depends(get_db)]
log_dependency = Annotated[MongoLogger, Depends(Provide[Container.logging])]
log_dependency = Annotated[log2mongo, Depends(Provide[Container.logging])]

@router.get("/user", response_model=User)
@inject
Expand Down
4 changes: 2 additions & 2 deletions src/routers/auth_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
from fastapi.security import OAuth2PasswordRequestForm
from fastapi.responses import JSONResponse
from dependency_injector.wiring import Provide, inject
from log2mongo import log2mongo

from src.middlewares.auth_jwt import JWTCustom
from src.models.sign_up_model import SignUp
from src.models.user_model import User
from src.services.mongodb_service import MongoAsyncService
from src.dependency_injection.containers import Container
from src.logging.mongo_logging import MongoLogger
from src.services.login_service import login
from src.services.user_service import create_user

Expand All @@ -19,7 +19,7 @@
)
oauth2_scheme = JWTCustom(tokenUrl="/auth/sign-in")
db_dependency = Annotated[MongoAsyncService, Depends(Provide[Container.database_client])]
log_dependency = Annotated[MongoLogger, Depends(Provide[Container.logging])]
log_dependency = Annotated[log2mongo, Depends(Provide[Container.logging])]

@router.post("/sign-up")
@inject
Expand Down
5 changes: 2 additions & 3 deletions src/services/crypto_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import padding
import base64

from src.logging.mongo_logging import MongoLogger
from log2mongo import log2mongo

class CryptoService:

#@inject
def __init__(self, log: MongoLogger) -> None:
def __init__(self, log: log2mongo) -> None:
self.private_key = self.get_private_key()
self.public_key = self.get_public_key()
self.pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
Expand Down
4 changes: 2 additions & 2 deletions src/services/jwt_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
from typing import Optional
from dependency_injector.wiring import Provide, inject
from fastapi import HTTPException, Request
from log2mongo import log2mongo
from dotenv import load_dotenv
import os, jwt

from src.services.crypto_service import CryptoService
from src.logging.mongo_logging import MongoLogger
from src.dependency_injection.containers import Container

crypto_service: CryptoService = Provide[Container.crypto_service]
log_service: MongoLogger = Provide[Container.logging]
log_service: log2mongo = Provide[Container.logging]
load_dotenv()

@inject
Expand Down
4 changes: 2 additions & 2 deletions src/services/login_service.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
from dependency_injector.wiring import Provide, inject
from log2mongo import log2mongo

from src.services.user_service import get_user
from src.services.jwt_service import create_token
from src.models.token_model import Token
from src.services.crypto_service import CryptoService
from src.logging.mongo_logging import MongoLogger
from src.dependency_injection.containers import Container

crypto_service: CryptoService = Provide[Container.crypto_service]
logger: MongoLogger = Provide[Container.logging]
logger: log2mongo = Provide[Container.logging]

@inject
async def login(username: str, password: str, db, crypto = crypto_service, log = logger):
Expand Down
5 changes: 2 additions & 3 deletions src/services/totp_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
from typing import Optional, Union
from src.services.otp_service import OTP
import time

from src.logging.mongo_logging import MongoLogger
from log2mongo import log2mongo

class TOTP(OTP):

def __init__(self, secret: str, digest: str, time_step: int, return_digits: int, log: MongoLogger) -> None:
def __init__(self, secret: str, digest: str, time_step: int, return_digits: int, log: log2mongo) -> None:
self.secret = secret
self.digest = digest
self.time_step = time_step
Expand Down
4 changes: 2 additions & 2 deletions src/services/user_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from fastapi import UploadFile
from pymongo.asynchronous.database import AsyncDatabase
from bson import ObjectId, Binary
from log2mongo import log2mongo
from dotenv import load_dotenv
import os

Expand All @@ -10,11 +11,10 @@
from src.models.user_picture import UserPicture
from src.models.user_model import User
from src.models.address_model import Address
from src.logging.mongo_logging import MongoLogger
from src.dependency_injection.containers import Container

crypto_service: CryptoService = Provide[Container.crypto_service]
log_service: MongoLogger = Provide[Container.logging]
log_service: log2mongo = Provide[Container.logging]
load_dotenv()
users_collection = str(os.environ["DB_USERS_COLLECTION"])
users_pics_collection = str(os.environ["DB_USERS_PICTURES_COLLECTION"])
Expand Down