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:
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
);
|
||||
}
|
||||
}),
|
||||
{
|
||||
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user