Restore enterprise/LDAP login mode detection
- Added /users/auth-mode public endpoint to detect LDAP status - Updated frontend to call getAuthMode() instead of hardcoded false - Login page now automatically switches to enterprise mode when LDAP is enabled - Fixes missing LDAP user login UI that was previously disabled with TODO comment This restores the functionality that was commented out earlier where the login page would auto-detect whether to show local user list or enterprise username input.
This commit is contained in:
@@ -155,7 +155,12 @@
|
||||
"Bash(pkill -9 -f \"uvicorn backend.main\")",
|
||||
"Bash(pkill -9 -f \"python3.*start_servers\")",
|
||||
"Bash(curl -v -X POST http://localhost:8916/users/login -H 'Content-Type: application/json' -d '{\"username\":\"admin\",\"password\":\"admin\"}')",
|
||||
"Bash(pkill -9 -f \"uvicorn\\\\|gunicorn\")"
|
||||
"Bash(pkill -9 -f \"uvicorn\\\\|gunicorn\")",
|
||||
"Bash(curl -s http://localhost:3000)",
|
||||
"Bash(/data/programare_AI/tfm_ainventory/venv/bin/python3 -m uvicorn backend.main:app --host 0.0.0.0 --port 8916)",
|
||||
"Bash(curl -s http://localhost:8916/users/)",
|
||||
"Bash(pkill -9 -f \"uvicorn.*backend.main\" sleep 2 /data/programare_AI/tfm_ainventory/venv/bin/python3 -m uvicorn backend.main:app --host 0.0.0.0 --port 8916)",
|
||||
"Bash(curl -s http://localhost:8916/users/auth-mode)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
98497
|
||||
98498
|
||||
98515
|
||||
105655
|
||||
105674
|
||||
|
||||
@@ -257,6 +257,16 @@ def login(request: Request, form_data: schemas.UserLogin, db: Session = Depends(
|
||||
)
|
||||
|
||||
|
||||
@router.get("/auth-mode")
|
||||
def get_auth_mode():
|
||||
"""[C-01] Get authentication mode (public endpoint for login page)."""
|
||||
config = get_ldap_config()
|
||||
return {
|
||||
"mode": "enterprise" if config.get("ldap_enabled") else "local",
|
||||
"ldap_enabled": config.get("ldap_enabled", False)
|
||||
}
|
||||
|
||||
|
||||
@router.get("/ldap-config")
|
||||
def get_ldap_settings(current_user: auth.TokenData = Depends(auth.get_current_admin)):
|
||||
"""[C-01] Get LDAP config — admin only."""
|
||||
|
||||
@@ -87,6 +87,8 @@
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
* {
|
||||
@apply border-border;
|
||||
border-radius: 0 !important;
|
||||
|
||||
@@ -23,15 +23,15 @@ export default function LoginPage() {
|
||||
const checkMode = async () => {
|
||||
try {
|
||||
setIsLoading(true);
|
||||
// TODO: getNetworkConfig() method not implemented in API
|
||||
// const config = await inventoryApi.getNetworkConfig();
|
||||
// setIsEnterprise(config.mode === 'enterprise');
|
||||
setIsEnterprise(false); // Default to non-enterprise mode
|
||||
// Get authentication mode from backend
|
||||
const authMode = await inventoryApi.getAuthMode();
|
||||
setIsEnterprise(authMode.mode === 'enterprise');
|
||||
|
||||
const userList = await inventoryApi.getUsers();
|
||||
setUsers(userList);
|
||||
} catch (error) {
|
||||
console.error("Failed to load users", error);
|
||||
console.error("Failed to load auth mode or users", error);
|
||||
setIsEnterprise(false); // Default to local mode on error
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
|
||||
@@ -85,6 +85,12 @@ axiosInstance.interceptors.response.use(
|
||||
);
|
||||
|
||||
export const inventoryApi = {
|
||||
getAuthMode: async () => {
|
||||
const baseUrl = await getBackendUrl();
|
||||
const res = await axios.get(`${baseUrl}/users/auth-mode`);
|
||||
return res.data;
|
||||
},
|
||||
|
||||
getItems: async () => {
|
||||
const res = await axiosInstance.get('/items/');
|
||||
return res.data;
|
||||
|
||||
Reference in New Issue
Block a user