Opsæt rolle- og gruppestyret pluginsynlighed
Formål og versionsgrundlag
Sektion kaldt “Formål og versionsgrundlag”Vejledningen bygger på Nordiq nqgis-2026-10-sep, MapStores udtrykssystem og den lokale reference om pluginsynlighed. disablePluginIf kan fjerne et plugin fra brugerfladen ud fra overvåget applikationstilstand.
Dette er en UI-kontrol. Den skal altid suppleres med GeoStore-rettigheder og reel GeoServer-/backendautorisation.
Forudsætninger
Sektion kaldt “Forudsætninger”- Den aktive, eventuelt eksternaliserede
localConfig.jsoner identificeret og sikkerhedskopieret. - Rollen eller gruppen findes i den aktive identitetsløsning.
- En testbruger i og uden for målgruppen er tilgængelig.
- Backendadgangen er besluttet uafhængigt af synlighedsreglen.
Berørte filer og tjenester
Sektion kaldt “Berørte filer og tjenester”- aktiv
localConfig.json - identitetskilde og gruppesynkronisering
- GeoStore-ressourcer
- GeoServer/backend for de data, pluginet bruger
Trin-for-trin
Sektion kaldt “Trin-for-trin”- Tag backup af den aktive
localConfig.json. - Find
monitorStatei filens topniveau. - Ved rollestyring: kontrollér, at aliaset
userrolepeger påsecurity.user.role. Dette er allerede tilfældet i den undersøgte referencekonfiguration. - Ved gruppestyring: verificér i browserens tilstand eller den relevante sikkerhedskode, hvilken sti der indeholder grupper i den aktive integration.
- Tilføj først et
securityGroups-alias, når stien er verificeret. - Find pluginet i den relevante
plugins-liste, og skriv det som et objekt mednameogcfg. - Tilføj en
disablePluginIf-regel. - Validér JSON og genindlæs konfigurationen.
- Test pluginets synlighed med begge testbrugere.
- Test derefter den reelle ressource- og dataadgang direkte; den må ikke afhænge af UI-reglen.
Konfiguration
Sektion kaldt “Konfiguration”Eksempel på rollestyring, hvor pluginet kun indlæses for administratorer:
{ "name": "PLUGINNAVN", "cfg": { "disablePluginIf": "{state('userrole') !== 'ADMIN'}" }}Den lokale råkilde viser følgende gruppesti:
{ "name": "securityGroups", "path": "security.user.groups.group"}Når gruppestien er verificeret, kan en regel følge dette mønster:
{ "name": "PLUGINNAVN", "cfg": { "disablePluginIf": "{_.intersection(_.map(state('securityGroups'), 'groupName'), ['WEBGIS_GRUPPE']).length === 0}" }}Brug generiske gruppenavne i dokumentation. Gruppereglen skal håndtere anonym bruger og manglende gruppedata uden at gøre data offentlige.
Aktivering eller genstart
Sektion kaldt “Aktivering eller genstart”Genindlæs den eksternaliserede konfiguration efter miljøets procedure. Brugeren kan skulle logge ud og ind for at få opdaterede gruppeoplysninger.
Kontrol og rollback
Sektion kaldt “Kontrol og rollback”- Test anonym bruger, bruger uden gruppe, bruger med gruppe og administrator.
- Kontrollér både menu og direkte navigation.
- Kontrollér GeoStore-ressourcen med et direkte link.
- Kontrollér GeoServer-/backendkald uden pluginet.
- Ved fejl: gendan backupfilen og genindlæs. Ændr ikke backendregler som rollback for en UI-fejl.
Sikkerhed
Sektion kaldt “Sikkerhed”disablePluginIf vurderes i klienten og er ikke en autorisationsgrænse. Følsomme ressourcer skal sikres i GeoStore, og data skal sikres ved GeoServer/backend. Hemmeligheder må ikke indgå i synlighedsudtryk eller dokumentation.
Fejlfinding
Sektion kaldt “Fejlfinding”Problem: Pluginet er skjult for alle.
Mulig årsag: Aliaset findes ikke, gruppestien er forkert, eller udtrykket returnerer true for alle brugere.
Løsning: Kontrollér monitorState og brugerens faktiske rolle-/gruppestruktur i et testmiljø.
Problem: Pluginet vises efter ændring af gruppemedlemskab.
Mulig årsag: Sessionen indeholder gamle sikkerhedsoplysninger.
Løsning: Log ud og ind, og test igen.
Problem: Pluginet er skjult, men data kan stadig hentes.
Mulig årsag: Backend er ikke sikret.
Løsning: Implementér GeoServer-/backendautorisation; udvid ikke UI-reglen.