Files
kbcrm/Client/Components/auth/models/users.ts
T
gg 9ed5e88e01 Menü Projekt-Berechtigungen, Übersichtssichten und AppAdmin-Erkennung
- Menü: Dropdown "Projekt-Berechtigungen" unter Optionen mit
  Unterpunkten "Projekt-Zugriffe" und "Nutzer-Zugriffe" (nur SysAdmin/AppAdmin)
- AppAdmin-Erkennung: Server liefert isAppAdmin-Flag im Login- und
  getusers-Response (applikationsspezifisch via has_permission)
- Login: CurrentUserIsAppAdmin in sessionStorage speichern/entfernen
- Projekt-Zugriffe: geschachtelter Treetable (Projekt → Nutzer) als
  reine Anzeige, Detail-Sicht aus Projekt-Maske mit Bearbeitung
- Nutzer-Zugriffe: neue Komponente user_projektliste.ts, geschachtelter
  Treetable (Nutzer → Projekte), reine Anzeige
- Server: neuer Endpunkt GET /xhr/projektuser/listall (nur AppAdmin/SysAdmin)
- Server: get_all_projekt_users() mit Batch-Query für Projekte und User
- Treetable-Widget: Platzhalter-Pfeil bei kinderlosen Nodes nur wenn
  Geschwister mit Kindern existieren (hasSiblingsWithChildren)
- Datei projekt_user.ts umbenannt in projekt_userliste.ts (konsistent
  mit user_projektliste.ts)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-07 16:04:06 +02:00

25 lines
726 B
TypeScript

import { iUserApp } from "./applications"
import { iRole } from "./roles"
export interface iUser {
id: number
userid: string
username: string
password: string
email: string
telefon: string
isSysAdmin: boolean
isAppAdmin: boolean
userapps: iUserApp[]
}
export function hasAppRole(user: iUser, appid: number, roleid: number) {
let userapp: iUserApp = user.userapps.find((userapp: iUserApp) => {return userapp.appid == appid})
if (userapp != undefined) {
let userapprole: iRole = userapp.userapp_roles.find((role: iRole) => {return role.id == roleid})
if (userapprole != undefined) {
return true
}
}
return false
}