perf: Third-party user login settings default organization

This commit is contained in:
feng
2024-08-01 18:36:01 +08:00
committed by Bryan
parent 96399f8315
commit bd3909ad27
19 changed files with 120 additions and 30 deletions

View File

@@ -0,0 +1 @@
from .backends import *

View File

@@ -2,12 +2,12 @@
#
import traceback
from django.conf import settings
from django.contrib.auth import get_user_model
from radiusauth.backends import RADIUSBackend, RADIUSRealmBackend
from django.conf import settings
from .base import JMSBaseAuthBackend
from authentication.backends.base import JMSBaseAuthBackend
from .signals import radius_create_user
User = get_user_model()
@@ -28,8 +28,8 @@ class CreateUserMixin:
email = '{}@{}'.format(username, email_suffix)
user = User(username=username, name=username, email=email)
user.source = user.Source.radius.value
user.save()
radius_create_user.send(sender=user.__class__, user=user)
return user
def _perform_radius_auth(self, client, packet):

View File

@@ -0,0 +1,3 @@
from django.dispatch import Signal
radius_create_user = Signal()

View File

@@ -15,7 +15,7 @@ from common.utils import get_logger
from common.utils.common import get_request_ip
from common.utils.django import reverse, get_object_or_none
from users.models import User
from users.signal_handlers import check_only_allow_exist_user_auth
from users.signal_handlers import check_only_allow_exist_user_auth, bind_user_to_org_role
from .mixins import FlashMessageMixin
logger = get_logger(__file__)
@@ -64,6 +64,7 @@ class BaseLoginCallbackView(AuthMixin, FlashMessageMixin, IMClientMixin, View):
setattr(user, f'{self.user_type}_id', user_id)
if create:
setattr(user, 'source', self.user_type)
bind_user_to_org_role(user)
user.save()
except IntegrityError as err:
logger.error(f'{self.msg_client_err}: create user error: {err}')