def get_or_create_user(backend, username): try: authentication_data = AuthenticationData.objects.get(backend=backend, username=username) return authentication_data.user, False except AuthenticationData.DoesNotExist: user = User(username=username) user.set_unusable_password() user.save() data = AuthenticationData(user=user, backend=backend, username=username.lower()) data.save() profile = Profile(user=user) profile.save() return user, True
def get_or_create_user(backend, username): try: authentication_data = AuthenticationData.objects.get(backend=backend, username=username) return authentication_data.user, False except AuthenticationData.DoesNotExist: user = User(username=username) user.set_unusable_password() user.save() data = AuthenticationData(user=user, backend=backend, username=username.lower()) data.save() profile = Profile(user=user) profile.save() return user, True
def user_add(request, radius_username, first_name, last_name, email): """ Add a new user to Alexia. An user must have an unique radius_username and a valid email address. Returns the user information on success. radius_username -- Unique RADIUS username first_name -- First name last_name -- Last name email -- Valid email address Example result value: { "first_name": "John", "last_name": "Doe", "radius_username": "******" } Raises error -32602 (Invalid params) if the radius_username already exists. """ if User.objects.filter(username=radius_username).exists() or \ AuthenticationData.objects.filter(backend=RADIUS_BACKEND_NAME, username__iexact=radius_username).exists(): raise InvalidParametersError('User with provided radius_username already exists') user = User(username=radius_username, first_name=first_name, last_name=last_name, email=email) user.save() data = AuthenticationData(user=user, backend=RADIUS_BACKEND_NAME, username=radius_username.lower()) data.save() user.profile = Profile() user.profile.save() return format_user(user)