2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-16 20:15:44 +00:00

move auth settings to status

This commit is contained in:
Matthias Mair
2025-01-21 00:09:33 +01:00
parent aaa0219059
commit 5746364351
4 changed files with 37 additions and 7 deletions

View File

@ -20,7 +20,10 @@ from rest_framework.views import APIView
import InvenTree.version
import users.models
from common.settings import get_global_setting
from InvenTree.auth_overrides import registration_enabled
from InvenTree.mixins import ListCreateAPI
from InvenTree.sso import sso_registration_enabled
from InvenTree.templatetags.inventree_extras import plugins_info
from part.models import Part
from plugin.serializers import MetadataSerializer
@ -198,6 +201,13 @@ class VersionTextView(ListAPI):
class InfoApiSerializer(serializers.Serializer):
"""InvenTree server information - some information might be blanked if called without elevated credentials."""
class SettingsSerializer(serializers.Serializer):
"""Serializer for InfoApiSerializer."""
sso_registration = serializers.BooleanField()
registration_enabled = serializers.BooleanField()
password_forgotten_enabled = serializers.BooleanField()
server = serializers.CharField(read_only=True)
version = serializers.CharField(read_only=True)
instance = serializers.CharField(read_only=True)
@ -220,6 +230,7 @@ class InfoApiSerializer(serializers.Serializer):
installer = serializers.CharField(read_only=True)
target = serializers.CharField(read_only=True)
django_admin = serializers.CharField(read_only=True)
settings = SettingsSerializer(read_only=True, many=False)
class InfoView(APIView):
@ -272,6 +283,13 @@ class InfoView(APIView):
'django_admin': settings.INVENTREE_ADMIN_URL
if (is_staff and settings.INVENTREE_ADMIN_ENABLED)
else None,
'settings': {
'sso_registration': sso_registration_enabled(),
'registration_enabled': registration_enabled(),
'password_forgotten_enabled': get_global_setting(
'LOGIN_ENABLE_PWD_FORGOT'
),
},
}
return JsonResponse(data)

View File

@ -19,7 +19,8 @@ export const emptyServerAPI = {
installer: null,
target: null,
default_locale: null,
django_admin: null
django_admin: null,
settings: null
};
export interface SiteMarkProps {

View File

@ -19,6 +19,13 @@ interface ServerApiStateProps {
password_forgotten_enabled: () => boolean;
}
function get_server_setting(val: any) {
if (val === null || val === undefined) {
return false;
}
return val;
}
export const useServerApiState = create<ServerApiStateProps>()(
persist(
(set, get) => ({
@ -58,16 +65,15 @@ export const useServerApiState = create<ServerApiStateProps>()(
return !(data === undefined || data.length == 0);
},
registration_enabled: () => {
// TODO
return false;
return get_server_setting(get().server?.settings?.registration_enabled);
},
sso_registration_enabled: () => {
// TODO
return false;
return get_server_setting(get().server?.settings?.sso_registration);
},
password_forgotten_enabled: () => {
// TODO
return false;
return get_server_setting(
get().server?.settings?.password_forgotten_enabled
);
}
}),
{

View File

@ -48,6 +48,11 @@ export interface ServerAPIProps {
target: null | string;
default_locale: null | string;
django_admin: null | string;
settings: {
sso_registration: null | boolean;
registration_enabled: null | boolean;
password_forgotten_enabled: null | boolean;
} | null;
}
export interface AuthContext {