forked from enviPath/enviPy
...
This commit is contained in:
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
|
||||
@ -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:
|
||||
|
||||
Reference in New Issue
Block a user