diff --git a/epauth/views.py b/epauth/views.py index a75fe9ac..5a5746a4 100644 --- a/epauth/views.py +++ b/epauth/views.py @@ -94,7 +94,7 @@ def entra_callback(request): auth_log.info(f"Registering {user_name} with OID {user_oid}") u = UserManager.create_user(user_name, user_email, None, uuid=user_oid, is_active=True) - auth_log.info(f"User {user_name} {"(admin)" if u.is_superuser else ""} with OID {user_oid} successfully logged in as {u.username} from {get_remote_address(request)}") + auth_log.info(f"User {user_name} {'(admin) ' if u.is_superuser else ''}with OID {user_oid} successfully logged in as {u.username} from {get_remote_address(request)}") login(request, u) # EDIT START diff --git a/epdb/legacy_api.py b/epdb/legacy_api.py index 7ab9636b..c6228e7a 100644 --- a/epdb/legacy_api.py +++ b/epdb/legacy_api.py @@ -1,3 +1,4 @@ +import logging from collections import defaultdict from typing import Any, Dict, List, Optional @@ -9,13 +10,11 @@ from django.contrib.auth import get_user_model from django.core.cache import cache from django.http import HttpResponse, JsonResponse from django.shortcuts import redirect -from jwt import InvalidIssuerError from ninja import Field, Form, Query, Router, Schema from ninja.security import HttpBearer from utilities.chem import FormatConverter from utilities.misc import PackageExporter - from .logic import ( EPDBURLParser, GroupManager, @@ -46,9 +45,12 @@ from .models import ( User, UserPackagePermission, ) +from .views import get_remote_address Package = s.GET_PACKAGE_MODEL() +auth_log = logging.get_logger("auth") + def get_cached_jwks(tenant_id: str, force=False) -> Dict: """Get JWKS using Django cache""" @@ -116,15 +118,22 @@ def validate_token(token: str) -> dict: class MSBearerTokenAuth(HttpBearer): def authenticate(self, request, token): + + auth_log.info(f"Authentication request by {get_remote_address(request)}") + if token is None: return None claims = validate_token(token) if not User.objects.filter(uuid=claims['oid']).exists(): + auth_log.info(f"Authentication request by {get_remote_address(request)} failed!") return None - request.user = User.objects.get(uuid=claims['oid']) + user = User.objects.get(uuid=claims['oid']) + request.user = user + auth_log.info( + f"User {user.username} {'(admin) ' if user.is_superuser else ''}with OID {user.uuid} successfully logged in as {user.username} from {get_remote_address(request)}") return request.user diff --git a/epdb/logic.py b/epdb/logic.py index 77175ab7..7189b19e 100644 --- a/epdb/logic.py +++ b/epdb/logic.py @@ -585,9 +585,11 @@ class PackageManager(object): if isinstance(grantee, User): perm_cls = UserPackagePermission data["user"] = grantee + grantee_name = grantee.username else: perm_cls = GroupPackagePermission data["group"] = grantee + grantee_name = grantee.name if new_perm is None: qs = perm_cls.objects.filter(**data) @@ -596,7 +598,7 @@ class PackageManager(object): if qs.count() != 0: logger.info(f"Deleting Perm {qs.first()}") qs.delete() - auth_log.info(f"{caller.username} ({caller.url}) revokes {grantee.name} ({grantee.url}) all Permissions on {package.name} ({package.url})") + auth_log.info(f"{caller.username} ({caller.url}) revokes {grantee_name} ({grantee.url}) all Permissions on {package.name} ({package.url})") else: logger.debug(f"No Permission object for {perm_cls} with filter {data} found!") else: @@ -608,8 +610,6 @@ class PackageManager(object): _ = perm_cls.objects.update_or_create(defaults={"permission": new_perm}, **data) - grantee_name = grantee.username if isinstance(grantee, User) else grantee.name - if old_perm is None: auth_log.info(f"{caller.username} ({caller.url}) grants {grantee_name} ({grantee.url}) '{new_perm}' Permissions on {package.name} ({package.url})") else: