emilsoftware-utilities 2.0.0-dev.58 → 2.0.0-dev.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/README.MD +1 -1
  2. package/dist/accessi-module/Console/console.css +9 -0
  3. package/dist/accessi-module/Console/console.js +8 -8
  4. package/dist/accessi-module/Console/console.js.map +1 -1
  5. package/dist/accessi-module/Console/generated/accessiApi.d.ts +1 -1
  6. package/dist/accessi-module/Console/generated/accessiApi.js.map +1 -1
  7. package/dist/accessi-module/Console/generated/model/loginAsResult.d.ts +1 -1
  8. package/dist/accessi-module/Console/generated/model/loginAsResult.js.map +1 -1
  9. package/dist/accessi-module/Console/help.js +1 -1
  10. package/dist/accessi-module/Console/help.js.map +1 -1
  11. package/dist/accessi-module/Console/wiki.js +2 -2
  12. package/dist/accessi-module/Console/wiki.js.map +1 -1
  13. package/dist/accessi-module/Controllers/UserController.js +7 -3
  14. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  15. package/dist/accessi-module/Dtos/LoginAsDtos.js +4 -1
  16. package/dist/accessi-module/Dtos/LoginAsDtos.js.map +1 -1
  17. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +2 -2
  18. package/dist/accessi-module/Services/AuthService/AuthService.js +2 -4
  19. package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
  20. package/dist/accessi-module/index.d.ts +1 -1
  21. package/dist/accessi-module/index.js +1 -2
  22. package/dist/accessi-module/index.js.map +1 -1
  23. package/dist/accessi-module/security/loginAs.d.ts +0 -2
  24. package/dist/accessi-module/security/loginAs.js +1 -3
  25. package/dist/accessi-module/security/loginAs.js.map +1 -1
  26. package/dist/emilsoftware-utilities-2.0.0-dev.59.tgz +0 -0
  27. package/package.json +1 -1
  28. package/dist/emilsoftware-utilities-2.0.0-dev.58.tgz +0 -0
@@ -320,7 +320,7 @@ export type forcePasswordResetLegacyResponse = {
320
320
  export declare const getForcePasswordResetLegacyUrl: () => string;
321
321
  export declare const forcePasswordResetLegacy: (options?: RequestInit) => Promise<forcePasswordResetLegacyResponse>;
322
322
  /**
323
- * Riservato a superutenti e admin (con la gerarchia ADMIN > SUPER). Genera un token per l utente target, valido 5 minuti, e lo allega all URL indicato come query parameter loginAsToken. Il token e una credenziale: non condividerlo e non registrarlo. Da quel momento l applicazione di destinazione decide come consumarlo.
323
+ * Riservato a superutenti e admin (con la gerarchia ADMIN > SUPER). Genera un token per l utente target, con la stessa durata della sessione Accessi standard (jwtOptions.expiresIn), e lo allega all URL indicato come query parameter loginAsToken. Il token e una credenziale: non condividerlo e non registrarlo. Da quel momento l applicazione di destinazione decide come consumarlo.
324
324
  * @summary Genera un URL di accesso temporaneo come un altro utente
325
325
  */
326
326
  export type createLoginAsUrlResponse = {
@@ -1 +1 @@
1
- {"version":3,"file":"accessiApi.js","sourceRoot":"","sources":["../../../../src/accessi-module/Console/generated/accessiApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Generated by orval v6.31.0 🍺\n * Do not edit manually.\n * Accessi API\n * OpenAPI spec version: 1.0\n */\nimport type {\n ActionResponse,\n AdminBootstrapStatusResponse,\n AssignPermissionsToUserRequest,\n AssignRolesToUserRequest,\n BootstrapAdminRequest,\n BootstrapAdminResponse,\n ConfirmResetPasswordRequest,\n ConsoleEntryExchangeRequest,\n ConsoleEntrySessionResponse,\n ConsoleEntryTicketResponse,\n CreateFederatedIdentityRequest,\n CreateFederatedProviderRequest,\n CreateFederatedUserRequest,\n CreateFilterTypeRequest,\n CreateMenuGroupRequest,\n CreateMenuRequest,\n CreateMenuTypeRequest,\n CreateServiceTokenRequest,\n CreateServiceTokenResponse,\n ErrorResponse,\n FederatedIdentityListResponse,\n FederatedIdentityResponse,\n FederatedProviderListResponse,\n FederatedProviderResponse,\n FiltriUtente,\n GetFiltriResponse,\n GetFiltriUtenteParams,\n GetFiltriUtenteResponse,\n GetGroupsWithMenusParams,\n GetGroupsWithMenusResponse,\n GetMenuTypesResponse,\n GetMenusResponse,\n GetRolesResponse,\n GetSchemaResponse,\n GetServiceTokensParams,\n GetServiceTokensResponse,\n GetUserByTokenRequest,\n GetUserByTokenResponse,\n GetUsersParams,\n GetUsersResponse,\n LoginAsRequest,\n LoginAsResponse,\n LoginRequest,\n LoginResponse,\n PublicRegisterRequest,\n RegisterRequest,\n RegisterResponse,\n ResendTwoFactorRequest,\n Role,\n SendResetPasswordEmailRequest,\n ServeResetPasswordPageParams,\n SetPasswordLoginPolicyRequest,\n SetStatoRegistrazioneDto,\n SetUserPasswordRequest,\n UpdateEnabledStatusRequest,\n UpdateFederatedIdentityRequest,\n UpdateFederatedProviderRequest,\n UpdateFilterTypeRequest,\n UpdateMenuGroupRequest,\n UpdateMenuRequest,\n UpdateMenuTypeRequest,\n UserDto,\n UserGrantsResponse,\n VerifyTwoFactorRequest\n} from './model'\nimport { accessiFetch } from '../accessiFetch';\n\n\n/**\n * @summary Serve una pagina per il reset della password\n */\nexport type serveResetPasswordPageResponse = {\n data: void;\n status: number;\n}\n\nexport const getServeResetPasswordPageUrl = (token: string,\n params?: ServeResetPasswordPageParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/email/reset-password-page/${token}?${normalizedParams.toString()}`\n}\n\nexport const serveResetPasswordPage = async (token: string,\n params?: ServeResetPasswordPageParams, options?: RequestInit): Promise<serveResetPasswordPageResponse> => {\nreturn accessiFetch<Promise<serveResetPasswordPageResponse>>(getServeResetPasswordPageUrl(token,params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Invia una e-mail per il reset della password\n */\nexport type sendPasswordResetEmailResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSendPasswordResetEmailUrl = () => {\n\n\n return `/api/accessi/email/send-reset-password-email`\n}\n\nexport const sendPasswordResetEmail = async (sendResetPasswordEmailRequest: SendResetPasswordEmailRequest, options?: RequestInit): Promise<sendPasswordResetEmailResponse> => {\nreturn accessiFetch<Promise<sendPasswordResetEmailResponse>>(getSendPasswordResetEmailUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n sendResetPasswordEmailRequest,)\n }\n);}\n\n\n/**\n * @summary Conferma il reset della password\n */\nexport type resetPasswordResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getResetPasswordUrl = (token: string,) => {\n\n\n return `/api/accessi/auth/confirm-reset-password/${token}`\n}\n\nexport const resetPassword = async (token: string,\n confirmResetPasswordRequest: ConfirmResetPasswordRequest, options?: RequestInit): Promise<resetPasswordResponse> => {\nreturn accessiFetch<Promise<resetPasswordResponse>>(getResetPasswordUrl(token),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n confirmResetPasswordRequest,)\n }\n);}\n\n\n/**\n * @summary Recupera le informazioni utente dal token JWT\n */\nexport type getUserByTokenResponse = {\n data: GetUserByTokenResponse;\n status: number;\n}\n\nexport const getGetUserByTokenUrl = () => {\n\n\n return `/api/accessi/auth/get-user-by-token`\n}\n\nexport const getUserByToken = async (getUserByTokenRequest: GetUserByTokenRequest, options?: RequestInit): Promise<getUserByTokenResponse> => {\nreturn accessiFetch<Promise<getUserByTokenResponse>>(getGetUserByTokenUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n getUserByTokenRequest,)\n }\n);}\n\n\n/**\n * Con sola email restituisce passwordRequired oppure avvia il codice per utenti passwordless. Con password valida restituisce il login completo o challenge se la 2FA e attiva. Nessun JWT viene emesso prima della verifica del codice.\n * @summary Effettua il login utente\n */\nexport type loginResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getLoginUrl = () => {\n\n\n return `/api/accessi/auth/login`\n}\n\nexport const login = async (loginRequest: LoginRequest, options?: RequestInit): Promise<loginResponse> => {\nreturn accessiFetch<Promise<loginResponse>>(getLoginUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n loginRequest,)\n }\n);}\n\n\n/**\n * @summary Verifica il codice e completa il login\n */\nexport type verifyTwoFactorResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getVerifyTwoFactorUrl = () => {\n\n\n return `/api/accessi/auth/two-factor/verify`\n}\n\nexport const verifyTwoFactor = async (verifyTwoFactorRequest: VerifyTwoFactorRequest, options?: RequestInit): Promise<verifyTwoFactorResponse> => {\nreturn accessiFetch<Promise<verifyTwoFactorResponse>>(getVerifyTwoFactorUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n verifyTwoFactorRequest,)\n }\n);}\n\n\n/**\n * @summary Reinvia il codice, invalidando il precedente\n */\nexport type resendTwoFactorResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getResendTwoFactorUrl = () => {\n\n\n return `/api/accessi/auth/two-factor/resend`\n}\n\nexport const resendTwoFactor = async (resendTwoFactorRequest: ResendTwoFactorRequest, options?: RequestInit): Promise<resendTwoFactorResponse> => {\nreturn accessiFetch<Promise<resendTwoFactorResponse>>(getResendTwoFactorUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n resendTwoFactorRequest,)\n }\n);}\n\n\n/**\n * Endpoint pubblico ma protetto dal token di avvio: attivo solo con adminBootstrap.enabled. Crea un utente in stato confermato senza email, con flag admin (e super opzionale) e password fornita o generata.\n * @summary Crea il primo utente admin (bootstrap)\n */\nexport type bootstrapAdminResponse = {\n data: BootstrapAdminResponse;\n status: number;\n}\n\nexport const getBootstrapAdminUrl = () => {\n\n\n return `/api/accessi/auth/bootstrap-admin`\n}\n\nexport const bootstrapAdmin = async (bootstrapAdminRequest: BootstrapAdminRequest, options?: RequestInit): Promise<bootstrapAdminResponse> => {\nreturn accessiFetch<Promise<bootstrapAdminResponse>>(getBootstrapAdminUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n bootstrapAdminRequest,)\n }\n);}\n\n\n/**\n * Endpoint pubblico: la console mostra la sezione \"Crea utente admin\" solo quando enabled e true.\n * @summary Indica se il bootstrap admin e abilitato\n */\nexport type getAdminBootstrapStatusResponse = {\n data: AdminBootstrapStatusResponse;\n status: number;\n}\n\nexport const getGetAdminBootstrapStatusUrl = () => {\n\n\n return `/api/accessi/auth/bootstrap-admin/status`\n}\n\nexport const getAdminBootstrapStatus = async ( options?: RequestInit): Promise<getAdminBootstrapStatusResponse> => {\nreturn accessiFetch<Promise<getAdminBootstrapStatusResponse>>(getGetAdminBootstrapStatusUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Recupera tutti i ruoli presenti nel sistema con le relative voci di menu.\n * @summary Ritorna i ruoli disponibili con i relativi menu\n */\nexport type getRolesResponse = {\n data: GetRolesResponse;\n status: number;\n}\n\nexport const getGetRolesUrl = () => {\n\n\n return `/api/accessi/permission/roles`\n}\n\nexport const getRoles = async ( options?: RequestInit): Promise<getRolesResponse> => {\nreturn accessiFetch<Promise<getRolesResponse>>(getGetRolesUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Aggiorna un ruolo esistente\n */\nexport type updateRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateRoleUrl = (codiceRuolo: number,) => {\n\n\n return `/api/accessi/permission/update-role/${codiceRuolo}`\n}\n\nexport const updateRole = async (codiceRuolo: number,\n role: Role, options?: RequestInit): Promise<updateRoleResponse> => {\nreturn accessiFetch<Promise<updateRoleResponse>>(getUpdateRoleUrl(codiceRuolo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n role,)\n }\n);}\n\n\n/**\n * @summary Crea un nuovo ruolo\n */\nexport type createRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateRoleUrl = () => {\n\n\n return `/api/accessi/permission/create-role`\n}\n\nexport const createRole = async (role: Role, options?: RequestInit): Promise<createRoleResponse> => {\nreturn accessiFetch<Promise<createRoleResponse>>(getCreateRoleUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n role,)\n }\n);}\n\n\n/**\n * @summary Assegna piu ruoli a un utente\n */\nexport type assignRolesToUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getAssignRolesToUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/assign-roles/${codiceUtente}`\n}\n\nexport const assignRolesToUser = async (codiceUtente: number,\n assignRolesToUserRequest: AssignRolesToUserRequest, options?: RequestInit): Promise<assignRolesToUserResponse> => {\nreturn accessiFetch<Promise<assignRolesToUserResponse>>(getAssignRolesToUserUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n assignRolesToUserRequest,)\n }\n);}\n\n\n/**\n * @summary Assegna abilitazioni dirette a un utente\n */\nexport type assignPermissionsToUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getAssignPermissionsToUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/assign-permissions/${codiceUtente}`\n}\n\nexport const assignPermissionsToUser = async (codiceUtente: number,\n assignPermissionsToUserRequest: AssignPermissionsToUserRequest, options?: RequestInit): Promise<assignPermissionsToUserResponse> => {\nreturn accessiFetch<Promise<assignPermissionsToUserResponse>>(getAssignPermissionsToUserUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n assignPermissionsToUserRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un ruolo esistente\n */\nexport type deleteRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteRoleUrl = (codiceRuolo: number,) => {\n\n\n return `/api/accessi/permission/delete-role/${codiceRuolo}`\n}\n\nexport const deleteRole = async (codiceRuolo: number, options?: RequestInit): Promise<deleteRoleResponse> => {\nreturn accessiFetch<Promise<deleteRoleResponse>>(getDeleteRoleUrl(codiceRuolo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Recupera tutti i menu disponibili\n */\nexport type getMenusResponse = {\n data: GetMenusResponse;\n status: number;\n}\n\nexport const getGetMenusUrl = () => {\n\n\n return `/api/accessi/permission/menus`\n}\n\nexport const getMenus = async ( options?: RequestInit): Promise<getMenusResponse> => {\nreturn accessiFetch<Promise<getMenusResponse>>(getGetMenusUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo menu\n */\nexport type createMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuUrl = () => {\n\n\n return `/api/accessi/permission/menus`\n}\n\nexport const createMenu = async (createMenuRequest: CreateMenuRequest, options?: RequestInit): Promise<createMenuResponse> => {\nreturn accessiFetch<Promise<createMenuResponse>>(getCreateMenuUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuRequest,)\n }\n);}\n\n\n/**\n * @summary Recupera tutti i gruppi disponibili con i relativi menu\n */\nexport type getGroupsWithMenusResponse = {\n data: GetGroupsWithMenusResponse;\n status: number;\n}\n\nexport const getGetGroupsWithMenusUrl = (params?: GetGroupsWithMenusParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/permission/groups-with-menus?${normalizedParams.toString()}`\n}\n\nexport const getGroupsWithMenus = async (params?: GetGroupsWithMenusParams, options?: RequestInit): Promise<getGroupsWithMenusResponse> => {\nreturn accessiFetch<Promise<getGroupsWithMenusResponse>>(getGetGroupsWithMenusUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Recupera il catalogo dei tipi menu\n */\nexport type getMenuTypesResponse = {\n data: GetMenuTypesResponse;\n status: number;\n}\n\nexport const getGetMenuTypesUrl = () => {\n\n\n return `/api/accessi/permission/menu-types`\n}\n\nexport const getMenuTypes = async ( options?: RequestInit): Promise<getMenuTypesResponse> => {\nreturn accessiFetch<Promise<getMenuTypesResponse>>(getGetMenuTypesUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo tipo menu\n */\nexport type createMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuTypeUrl = () => {\n\n\n return `/api/accessi/permission/menu-types`\n}\n\nexport const createMenuType = async (createMenuTypeRequest: CreateMenuTypeRequest, options?: RequestInit): Promise<createMenuTypeResponse> => {\nreturn accessiFetch<Promise<createMenuTypeResponse>>(getCreateMenuTypeUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuTypeRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un menu esistente\n */\nexport type updateMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/permission/menus/${codiceMenu}`\n}\n\nexport const updateMenu = async (codiceMenu: string,\n updateMenuRequest: UpdateMenuRequest, options?: RequestInit): Promise<updateMenuResponse> => {\nreturn accessiFetch<Promise<updateMenuResponse>>(getUpdateMenuUrl(codiceMenu),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un menu\n */\nexport type deleteMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/permission/menus/${codiceMenu}`\n}\n\nexport const deleteMenu = async (codiceMenu: string, options?: RequestInit): Promise<deleteMenuResponse> => {\nreturn accessiFetch<Promise<deleteMenuResponse>>(getDeleteMenuUrl(codiceMenu),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo gruppo menu\n */\nexport type createMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuGroupUrl = () => {\n\n\n return `/api/accessi/permission/menu-groups`\n}\n\nexport const createMenuGroup = async (createMenuGroupRequest: CreateMenuGroupRequest, options?: RequestInit): Promise<createMenuGroupResponse> => {\nreturn accessiFetch<Promise<createMenuGroupResponse>>(getCreateMenuGroupUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuGroupRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un gruppo menu\n */\nexport type updateMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuGroupUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/permission/menu-groups/${codiceGruppo}`\n}\n\nexport const updateMenuGroup = async (codiceGruppo: string,\n updateMenuGroupRequest: UpdateMenuGroupRequest, options?: RequestInit): Promise<updateMenuGroupResponse> => {\nreturn accessiFetch<Promise<updateMenuGroupResponse>>(getUpdateMenuGroupUrl(codiceGruppo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuGroupRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un gruppo menu\n */\nexport type deleteMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuGroupUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/permission/menu-groups/${codiceGruppo}`\n}\n\nexport const deleteMenuGroup = async (codiceGruppo: string, options?: RequestInit): Promise<deleteMenuGroupResponse> => {\nreturn accessiFetch<Promise<deleteMenuGroupResponse>>(getDeleteMenuGroupUrl(codiceGruppo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Aggiorna un tipo menu\n */\nexport type updateMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuTypeUrl = (codiceTipo: string,) => {\n\n\n return `/api/accessi/permission/menu-types/${codiceTipo}`\n}\n\nexport const updateMenuType = async (codiceTipo: string,\n updateMenuTypeRequest: UpdateMenuTypeRequest, options?: RequestInit): Promise<updateMenuTypeResponse> => {\nreturn accessiFetch<Promise<updateMenuTypeResponse>>(getUpdateMenuTypeUrl(codiceTipo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuTypeRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un tipo menu\n */\nexport type deleteMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuTypeUrl = (codiceTipo: string,) => {\n\n\n return `/api/accessi/permission/menu-types/${codiceTipo}`\n}\n\nexport const deleteMenuType = async (codiceTipo: string, options?: RequestInit): Promise<deleteMenuTypeResponse> => {\nreturn accessiFetch<Promise<deleteMenuTypeResponse>>(getDeleteMenuTypeUrl(codiceTipo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Recupera i ruoli e i menu di un utente\n */\nexport type getUserRolesAndGrantsResponse = {\n data: UserGrantsResponse;\n status: number;\n}\n\nexport const getGetUserRolesAndGrantsUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/grants/${codiceUtente}`\n}\n\nexport const getUserRolesAndGrants = async (codiceUtente: number, options?: RequestInit): Promise<getUserRolesAndGrantsResponse> => {\nreturn accessiFetch<Promise<getUserRolesAndGrantsResponse>>(getGetUserRolesAndGrantsUrl(codiceUtente),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Serve la pagina di reset password\n */\nexport type serveResetPasswordPageUserResponse = {\n data: void;\n status: number;\n}\n\nexport const getServeResetPasswordPageUserUrl = (token: string,) => {\n\n\n return `/api/accessi/user/reset-password/${token}`\n}\n\nexport const serveResetPasswordPageUser = async (token: string, options?: RequestInit): Promise<serveResetPasswordPageUserResponse> => {\nreturn accessiFetch<Promise<serveResetPasswordPageUserResponse>>(getServeResetPasswordPageUserUrl(token),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Recupera la lista degli utenti\n */\nexport type getUsersResponse = {\n data: GetUsersResponse;\n status: number;\n}\n\nexport const getGetUsersUrl = (params?: GetUsersParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/user/get-users?${normalizedParams.toString()}`\n}\n\nexport const getUsers = async (params?: GetUsersParams, options?: RequestInit): Promise<getUsersResponse> => {\nreturn accessiFetch<Promise<getUsersResponse>>(getGetUsersUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Imposta lo stato di un utente a eliminato senza rimuovere i record.\n * @summary Elimina un utente\n */\nexport type deleteUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/delete-user/${codiceUtente}`\n}\n\nexport const deleteUser = async (codiceUtente: number, options?: RequestInit): Promise<deleteUserResponse> => {\nreturn accessiFetch<Promise<deleteUserResponse>>(getDeleteUserUrl(codiceUtente),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Rimuove l utente e tutti i record collegati. Operazione distruttiva riservata agli admin.\n * @summary Elimina definitivamente un utente\n */\nexport type deleteUserPermanentlyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteUserPermanentlyUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/delete-user-permanent/${codiceUtente}`\n}\n\nexport const deleteUserPermanently = async (codiceUtente: number, options?: RequestInit): Promise<deleteUserPermanentlyResponse> => {\nreturn accessiFetch<Promise<deleteUserPermanentlyResponse>>(getDeleteUserPermanentlyUrl(codiceUtente),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato al superutente. Richiede un servizio email configurato; altrimenti risponde con ACCESSI_EMAIL_NOT_CONFIGURED.\n * @summary Forza l invio dell email di reset password a un utente\n */\nexport type forcePasswordResetResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getForcePasswordResetUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/force-password-reset/${codiceUtente}`\n}\n\nexport const forcePasswordReset = async (codiceUtente: number, options?: RequestInit): Promise<forcePasswordResetResponse> => {\nreturn accessiFetch<Promise<forcePasswordResetResponse>>(getForcePasswordResetUrl(codiceUtente),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Riservato al superutente. Invia l email di reset a tutti gli utenti la cui password non e ancora nel formato moderno. Richiede un servizio email configurato.\n * @summary Forza il reset password per tutti gli utenti con password legacy\n */\nexport type forcePasswordResetLegacyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getForcePasswordResetLegacyUrl = () => {\n\n\n return `/api/accessi/user/force-password-reset-legacy`\n}\n\nexport const forcePasswordResetLegacy = async ( options?: RequestInit): Promise<forcePasswordResetLegacyResponse> => {\nreturn accessiFetch<Promise<forcePasswordResetLegacyResponse>>(getForcePasswordResetLegacyUrl(),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Riservato a superutenti e admin (con la gerarchia ADMIN > SUPER). Genera un token per l utente target, valido 5 minuti, e lo allega all URL indicato come query parameter loginAsToken. Il token e una credenziale: non condividerlo e non registrarlo. Da quel momento l applicazione di destinazione decide come consumarlo.\n * @summary Genera un URL di accesso temporaneo come un altro utente\n */\nexport type createLoginAsUrlResponse = {\n data: LoginAsResponse;\n status: number;\n}\n\nexport const getCreateLoginAsUrlUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/login-as/${codiceUtente}`\n}\n\nexport const createLoginAsUrl = async (codiceUtente: number,\n loginAsRequest: LoginAsRequest, options?: RequestInit): Promise<createLoginAsUrlResponse> => {\nreturn accessiFetch<Promise<createLoginAsUrlResponse>>(getCreateLoginAsUrlUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n loginAsRequest,)\n }\n);}\n\n\n/**\n * Riservato agli amministratori. Hasha la password, aggiorna la scadenza secondo la policy e non invia email.\n * @summary Imposta direttamente la password di un utente\n */\nexport type setUserPasswordResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetUserPasswordUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/set-password/${codiceUtente}`\n}\n\nexport const setUserPassword = async (codiceUtente: number,\n setUserPasswordRequest: SetUserPasswordRequest, options?: RequestInit): Promise<setUserPasswordResponse> => {\nreturn accessiFetch<Promise<setUserPasswordResponse>>(getSetUserPasswordUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n setUserPasswordRequest,)\n }\n);}\n\n\n/**\n * @summary Imposta lo stato di registrazione di un utente\n */\nexport type setStatoRegistrazioneResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetStatoRegistrazioneUrl = () => {\n\n\n return `/api/accessi/user/set-stato`\n}\n\nexport const setStatoRegistrazione = async (setStatoRegistrazioneDto: SetStatoRegistrazioneDto, options?: RequestInit): Promise<setStatoRegistrazioneResponse> => {\nreturn accessiFetch<Promise<setStatoRegistrazioneResponse>>(getSetStatoRegistrazioneUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n setStatoRegistrazioneDto,)\n }\n);}\n\n\n/**\n * Disponibile soltanto quando publicRegistration.enabled e true. Per utenti SSO usare il provisioning master nel tag Federated authentication.\n * @summary Registra un nuovo utente\n */\nexport type registerResponse = {\n data: RegisterResponse;\n status: number;\n}\n\nexport const getRegisterUrl = () => {\n\n\n return `/api/accessi/user/register`\n}\n\nexport const register = async (publicRegisterRequest: PublicRegisterRequest, options?: RequestInit): Promise<registerResponse> => {\nreturn accessiFetch<Promise<registerResponse>>(getRegisterUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n publicRegisterRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Crea un utente in attesa di impostazione password e invia la mail di reset.\n * @summary Crea un utente locale da amministrazione\n */\nexport type createManagedUserResponse = {\n data: RegisterResponse;\n status: number;\n}\n\nexport const getCreateManagedUserUrl = () => {\n\n\n return `/api/accessi/user/create-managed-user`\n}\n\nexport const createManagedUser = async (registerRequest: RegisterRequest, options?: RequestInit): Promise<createManagedUserResponse> => {\nreturn accessiFetch<Promise<createManagedUserResponse>>(getCreateManagedUserUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n registerRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un utente esistente\n */\nexport type updateUtenteResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateUtenteUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/update-user/${codiceUtente}`\n}\n\nexport const updateUtente = async (codiceUtente: number,\n userDto: UserDto, options?: RequestInit): Promise<updateUtenteResponse> => {\nreturn accessiFetch<Promise<updateUtenteResponse>>(getUpdateUtenteUrl(codiceUtente),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n userDto,)\n }\n);}\n\n\n/**\n * @summary Imposta il consenso GDPR per un utente\n */\nexport type setGdprResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetGdprUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/set-gdpr/${codiceUtente}`\n}\n\nexport const setGdpr = async (codiceUtente: number, options?: RequestInit): Promise<setGdprResponse> => {\nreturn accessiFetch<Promise<setGdprResponse>>(getSetGdprUrl(codiceUtente),\n { \n ...options,\n method: 'PATCH'\n \n }\n);}\n\n\n/**\n * Ritorna tutti i tipi di filtri disponibili nel sistema\n * @deprecated\n * @summary Recupera la lista dei tipi di filtri\n */\nexport type getTipiFiltroResponse = {\n data: GetFiltriResponse;\n status: number;\n}\n\nexport const getGetTipiFiltroUrl = () => {\n\n\n return `/api/accessi/filtri/tipi`\n}\n\nexport const getTipiFiltro = async ( options?: RequestInit): Promise<getTipiFiltroResponse> => {\nreturn accessiFetch<Promise<getTipiFiltroResponse>>(getGetTipiFiltroUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Inserisce una nuova voce nel catalogo dei tipi di filtro. Operazione riservata al superutente.\n * @deprecated\n * @summary Crea un tipo di filtro\n */\nexport type createTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateTipoFiltroUrl = () => {\n\n\n return `/api/accessi/filtri/tipi`\n}\n\nexport const createTipoFiltro = async (createFilterTypeRequest: CreateFilterTypeRequest, options?: RequestInit): Promise<createTipoFiltroResponse> => {\nreturn accessiFetch<Promise<createTipoFiltroResponse>>(getCreateTipoFiltroUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFilterTypeRequest,)\n }\n);}\n\n\n/**\n * Aggiorna descrizione, campo o stato di un tipo di filtro esistente.\n * @deprecated\n * @summary Aggiorna un tipo di filtro\n */\nexport type updateTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateTipoFiltroUrl = (tipFil: number,) => {\n\n\n return `/api/accessi/filtri/tipi/${tipFil}`\n}\n\nexport const updateTipoFiltro = async (tipFil: number,\n updateFilterTypeRequest: UpdateFilterTypeRequest, options?: RequestInit): Promise<updateTipoFiltroResponse> => {\nreturn accessiFetch<Promise<updateTipoFiltroResponse>>(getUpdateTipoFiltroUrl(tipFil),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateFilterTypeRequest,)\n }\n);}\n\n\n/**\n * Elimina un tipo di filtro solo se nessun filtro utente lo utilizza.\n * @deprecated\n * @summary Elimina un tipo di filtro\n */\nexport type deleteTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteTipoFiltroUrl = (tipFil: number,) => {\n\n\n return `/api/accessi/filtri/tipi/${tipFil}`\n}\n\nexport const deleteTipoFiltro = async (tipFil: number, options?: RequestInit): Promise<deleteTipoFiltroResponse> => {\nreturn accessiFetch<Promise<deleteTipoFiltroResponse>>(getDeleteTipoFiltroUrl(tipFil),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Ritorna tutti i filtri associati ad un utente specifico\n * @deprecated\n * @summary Recupera i filtri di un utente\n */\nexport type getFiltriUtenteResponse = {\n data: GetFiltriUtenteResponse;\n status: number;\n}\n\nexport const getGetFiltriUtenteUrl = (params?: GetFiltriUtenteParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/filtri/utente?${normalizedParams.toString()}`\n}\n\nexport const getFiltriUtente = async (params?: GetFiltriUtenteParams, options?: RequestInit): Promise<getFiltriUtenteResponse> => {\nreturn accessiFetch<Promise<getFiltriUtenteResponse>>(getGetFiltriUtenteUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Permette di salvare i filtri associati ad un utente specifico\n * @deprecated\n * @summary Inserisce o aggiorna i filtri di un utente\n */\nexport type saveFiltriUtenteResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSaveFiltriUtenteUrl = () => {\n\n\n return `/api/accessi/filtri/utente`\n}\n\nexport const saveFiltriUtente = async (filtriUtente: FiltriUtente, options?: RequestInit): Promise<saveFiltriUtenteResponse> => {\nreturn accessiFetch<Promise<saveFiltriUtenteResponse>>(getSaveFiltriUtenteUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n filtriUtente,)\n }\n);}\n\n\n/**\n * @summary Aggiorna lo stato di abilitazione di un menu\n */\nexport type setMenuEnabledResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetMenuEnabledUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/configurator/menus/${codiceMenu}/enabled`\n}\n\nexport const setMenuEnabled = async (codiceMenu: string,\n updateEnabledStatusRequest: UpdateEnabledStatusRequest, options?: RequestInit): Promise<setMenuEnabledResponse> => {\nreturn accessiFetch<Promise<setMenuEnabledResponse>>(getSetMenuEnabledUrl(codiceMenu),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateEnabledStatusRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna lo stato di abilitazione di un gruppo menu\n */\nexport type setGroupEnabledResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetGroupEnabledUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/configurator/groups/${codiceGruppo}/enabled`\n}\n\nexport const setGroupEnabled = async (codiceGruppo: string,\n updateEnabledStatusRequest: UpdateEnabledStatusRequest, options?: RequestInit): Promise<setGroupEnabledResponse> => {\nreturn accessiFetch<Promise<setGroupEnabledResponse>>(getSetGroupEnabledUrl(codiceGruppo),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateEnabledStatusRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Restituisce solo catalogo e stato Accessi; issuer, secret e configurazioni SSO restano nel backend.\n * @summary Elenca i provider SSO censiti\n */\nexport type getFederatedProvidersResponse = {\n data: FederatedProviderListResponse;\n status: number;\n}\n\nexport const getGetFederatedProvidersUrl = () => {\n\n\n return `/api/accessi/federated-auth/providers`\n}\n\nexport const getFederatedProviders = async ( options?: RequestInit): Promise<getFederatedProvidersResponse> => {\nreturn accessiFetch<Promise<getFederatedProvidersResponse>>(getGetFederatedProvidersUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Riservato a superutente. La chiave provider deve corrispondere alla configurazione stabile del backend; non salvare segreti, issuer o token.\n * @summary Censisce un provider SSO\n */\nexport type createFederatedProviderResponse = {\n data: FederatedProviderResponse;\n status: number;\n}\n\nexport const getCreateFederatedProviderUrl = () => {\n\n\n return `/api/accessi/federated-auth/providers`\n}\n\nexport const createFederatedProvider = async (createFederatedProviderRequest: CreateFederatedProviderRequest, options?: RequestInit): Promise<createFederatedProviderResponse> => {\nreturn accessiFetch<Promise<createFederatedProviderResponse>>(getCreateFederatedProviderUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedProviderRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. La chiave provider è immutabile: disabilitarla blocca nuovi login SSO ma conserva i collegamenti storici.\n * @summary Aggiorna o disabilita un provider SSO\n */\nexport type updateFederatedProviderResponse = {\n data: FederatedProviderResponse;\n status: number;\n}\n\nexport const getUpdateFederatedProviderUrl = (provider: string,) => {\n\n\n return `/api/accessi/federated-auth/providers/${provider}`\n}\n\nexport const updateFederatedProvider = async (provider: string,\n updateFederatedProviderRequest: UpdateFederatedProviderRequest, options?: RequestInit): Promise<updateFederatedProviderResponse> => {\nreturn accessiFetch<Promise<updateFederatedProviderResponse>>(getUpdateFederatedProviderUrl(provider),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateFederatedProviderRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Consentito solo se nessuna identita e collegata al provider; in alternativa disabilitalo.\n * @summary Elimina un provider SSO\n */\nexport type deleteFederatedProviderResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteFederatedProviderUrl = (provider: string,) => {\n\n\n return `/api/accessi/federated-auth/providers/${provider}`\n}\n\nexport const deleteFederatedProvider = async (provider: string, options?: RequestInit): Promise<deleteFederatedProviderResponse> => {\nreturn accessiFetch<Promise<deleteFederatedProviderResponse>>(getDeleteFederatedProviderUrl(provider),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato a superutente. Non restituisce token esterni o claim del provider.\n * @summary Elenca le identita SSO di un utente\n */\nexport type getFederatedIdentitiesResponse = {\n data: FederatedIdentityListResponse;\n status: number;\n}\n\nexport const getGetFederatedIdentitiesUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities`\n}\n\nexport const getFederatedIdentities = async (codiceUtente: number, options?: RequestInit): Promise<getFederatedIdentitiesResponse> => {\nreturn accessiFetch<Promise<getFederatedIdentitiesResponse>>(getGetFederatedIdentitiesUrl(codiceUtente),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Il master deve fornire un provider e subject ottenuti da una verifica SSO lato backend; questo endpoint non verifica token esterni.\n * @summary Associa un SSO gia verificato a un utente esistente\n */\nexport type linkFederatedIdentityResponse = {\n data: FederatedIdentityResponse;\n status: number;\n}\n\nexport const getLinkFederatedIdentityUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities`\n}\n\nexport const linkFederatedIdentity = async (codiceUtente: number,\n createFederatedIdentityRequest: CreateFederatedIdentityRequest, options?: RequestInit): Promise<linkFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<linkFederatedIdentityResponse>>(getLinkFederatedIdentityUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedIdentityRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. L utente nasce confermato, con identita collegata e senza password salvo opt-in esplicito.\n * @summary Crea un utente gestito e SSO-only\n */\nexport type createFederatedUserResponse = {\n data: FederatedIdentityResponse;\n status: number;\n}\n\nexport const getCreateFederatedUserUrl = () => {\n\n\n return `/api/accessi/federated-auth/users`\n}\n\nexport const createFederatedUser = async (createFederatedUserRequest: CreateFederatedUserRequest, options?: RequestInit): Promise<createFederatedUserResponse> => {\nreturn accessiFetch<Promise<createFederatedUserResponse>>(getCreateFederatedUserUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedUserRequest,)\n }\n);}\n\n\n/**\n * Con false il login locale restituisce PASSWORD_LOGIN_DISABLED; le identita SSO attive restano utilizzabili.\n * @summary Abilita o disabilita il login con password\n */\nexport type setPasswordLoginPolicyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetPasswordLoginPolicyUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/password-login`\n}\n\nexport const setPasswordLoginPolicy = async (codiceUtente: number,\n setPasswordLoginPolicyRequest: SetPasswordLoginPolicyRequest, options?: RequestInit): Promise<setPasswordLoginPolicyResponse> => {\nreturn accessiFetch<Promise<setPasswordLoginPolicyResponse>>(getSetPasswordLoginPolicyUrl(codiceUtente),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n setPasswordLoginPolicyRequest,)\n }\n);}\n\n\n/**\n * Soft delete: l associazione resta tracciata ma non puo piu autenticare.\n * @summary Disabilita un identita SSO\n */\nexport type disableFederatedIdentityResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDisableFederatedIdentityUrl = (identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/identities/${identityKey}`\n}\n\nexport const disableFederatedIdentity = async (identityKey: string, options?: RequestInit): Promise<disableFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<disableFederatedIdentityResponse>>(getDisableFederatedIdentityUrl(identityKey),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Consente di modificare nota e stato attivo del collegamento. identityKey e una chiave tecnica, non un token SSO.\n * @summary Aggiorna un collegamento SSO\n */\nexport type updateFederatedIdentityResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateFederatedIdentityUrl = (identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/identities/${identityKey}`\n}\n\nexport const updateFederatedIdentity = async (identityKey: string,\n updateFederatedIdentityRequest: UpdateFederatedIdentityRequest, options?: RequestInit): Promise<updateFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<updateFederatedIdentityResponse>>(getUpdateFederatedIdentityUrl(identityKey),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateFederatedIdentityRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Rimuove il collegamento provider e subject dall’utente, senza eliminare l’utente Accessi.\n * @summary Elimina definitivamente un collegamento SSO\n */\nexport type deleteFederatedIdentityPermanentlyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteFederatedIdentityPermanentlyUrl = (codiceUtente: number,\n identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities/${identityKey}`\n}\n\nexport const deleteFederatedIdentityPermanently = async (codiceUtente: number,\n identityKey: string, options?: RequestInit): Promise<deleteFederatedIdentityPermanentlyResponse> => {\nreturn accessiFetch<Promise<deleteFederatedIdentityPermanentlyResponse>>(getDeleteFederatedIdentityPermanentlyUrl(codiceUtente,identityKey),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato agli utenti abilitati alla console (FLGSUPER/FLGADMIN). Restituisce un ticket monouso legato all utente, valido pochi secondi.\n * @summary Emetti un ticket di ingresso alla console\n */\nexport type createConsoleEntryTicketResponse = {\n data: ConsoleEntryTicketResponse;\n status: number;\n}\n\nexport const getCreateConsoleEntryTicketUrl = () => {\n\n\n return `/api/accessi/console/entry`\n}\n\nexport const createConsoleEntryTicket = async ( options?: RequestInit): Promise<createConsoleEntryTicketResponse> => {\nreturn accessiFetch<Promise<createConsoleEntryTicketResponse>>(getCreateConsoleEntryTicketUrl(),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Endpoint pubblico (il ticket e l unica credenziale) protetto da rate limit; il ticket e monouso e scade in pochi secondi.\n * @summary Scambia il ticket con la sessione Accessi\n */\nexport type exchangeConsoleEntryTicketResponse = {\n data: ConsoleEntrySessionResponse;\n status: number;\n}\n\nexport const getExchangeConsoleEntryTicketUrl = () => {\n\n\n return `/api/accessi/console/entry/exchange`\n}\n\nexport const exchangeConsoleEntryTicket = async (consoleEntryExchangeRequest: ConsoleEntryExchangeRequest, options?: RequestInit): Promise<exchangeConsoleEntryTicketResponse> => {\nreturn accessiFetch<Promise<exchangeConsoleEntryTicketResponse>>(getExchangeConsoleEntryTicketUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n consoleEntryExchangeRequest,)\n }\n);}\n\n\n/**\n * @summary Emetti un nuovo token di servizio\n */\nexport type createServiceTokenResponse = {\n data: CreateServiceTokenResponse;\n status: number;\n}\n\nexport const getCreateServiceTokenUrl = () => {\n\n\n return `/api/accessi/service-token`\n}\n\nexport const createServiceToken = async (createServiceTokenRequest: CreateServiceTokenRequest, options?: RequestInit): Promise<createServiceTokenResponse> => {\nreturn accessiFetch<Promise<createServiceTokenResponse>>(getCreateServiceTokenUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createServiceTokenRequest,)\n }\n);}\n\n\n/**\n * @summary Elenca i token di servizio (senza segreti)\n */\nexport type getServiceTokensResponse = {\n data: GetServiceTokensResponse;\n status: number;\n}\n\nexport const getGetServiceTokensUrl = (params?: GetServiceTokensParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/service-token?${normalizedParams.toString()}`\n}\n\nexport const getServiceTokens = async (params?: GetServiceTokensParams, options?: RequestInit): Promise<getServiceTokensResponse> => {\nreturn accessiFetch<Promise<getServiceTokensResponse>>(getGetServiceTokensUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Revoca un token di servizio\n */\nexport type revokeServiceTokenResponse = {\n data: ErrorResponse;\n status: number;\n}\n\nexport const getRevokeServiceTokenUrl = (tokenId: string,) => {\n\n\n return `/api/accessi/service-token/${tokenId}`\n}\n\nexport const revokeServiceToken = async (tokenId: string, options?: RequestInit): Promise<revokeServiceTokenResponse> => {\nreturn accessiFetch<Promise<revokeServiceTokenResponse>>(getRevokeServiceTokenUrl(tokenId),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Ruota un token di servizio\n */\nexport type rotateServiceTokenResponse = {\n data: CreateServiceTokenResponse;\n status: number;\n}\n\nexport const getRotateServiceTokenUrl = (tokenId: string,) => {\n\n\n return `/api/accessi/service-token/${tokenId}/rotate`\n}\n\nexport const rotateServiceToken = async (tokenId: string, options?: RequestInit): Promise<rotateServiceTokenResponse> => {\nreturn accessiFetch<Promise<rotateServiceTokenResponse>>(getRotateServiceTokenUrl(tokenId),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Riservato agli admin. Genera il DDL delle entita Accessi e segnala le tabelle presenti fuori schema.\n * @summary Esporta lo schema DDL e le entita presenti\n */\nexport type getSchemaResponse = {\n data: GetSchemaResponse;\n status: number;\n}\n\nexport const getGetSchemaUrl = () => {\n\n\n return `/api/accessi/schema`\n}\n\nexport const getSchema = async ( options?: RequestInit): Promise<getSchemaResponse> => {\nreturn accessiFetch<Promise<getSchemaResponse>>(getGetSchemaUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n"]}
1
+ {"version":3,"file":"accessiApi.js","sourceRoot":"","sources":["../../../../src/accessi-module/Console/generated/accessiApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Generated by orval v6.31.0 🍺\n * Do not edit manually.\n * Accessi API\n * OpenAPI spec version: 1.0\n */\nimport type {\n ActionResponse,\n AdminBootstrapStatusResponse,\n AssignPermissionsToUserRequest,\n AssignRolesToUserRequest,\n BootstrapAdminRequest,\n BootstrapAdminResponse,\n ConfirmResetPasswordRequest,\n ConsoleEntryExchangeRequest,\n ConsoleEntrySessionResponse,\n ConsoleEntryTicketResponse,\n CreateFederatedIdentityRequest,\n CreateFederatedProviderRequest,\n CreateFederatedUserRequest,\n CreateFilterTypeRequest,\n CreateMenuGroupRequest,\n CreateMenuRequest,\n CreateMenuTypeRequest,\n CreateServiceTokenRequest,\n CreateServiceTokenResponse,\n ErrorResponse,\n FederatedIdentityListResponse,\n FederatedIdentityResponse,\n FederatedProviderListResponse,\n FederatedProviderResponse,\n FiltriUtente,\n GetFiltriResponse,\n GetFiltriUtenteParams,\n GetFiltriUtenteResponse,\n GetGroupsWithMenusParams,\n GetGroupsWithMenusResponse,\n GetMenuTypesResponse,\n GetMenusResponse,\n GetRolesResponse,\n GetSchemaResponse,\n GetServiceTokensParams,\n GetServiceTokensResponse,\n GetUserByTokenRequest,\n GetUserByTokenResponse,\n GetUsersParams,\n GetUsersResponse,\n LoginAsRequest,\n LoginAsResponse,\n LoginRequest,\n LoginResponse,\n PublicRegisterRequest,\n RegisterRequest,\n RegisterResponse,\n ResendTwoFactorRequest,\n Role,\n SendResetPasswordEmailRequest,\n ServeResetPasswordPageParams,\n SetPasswordLoginPolicyRequest,\n SetStatoRegistrazioneDto,\n SetUserPasswordRequest,\n UpdateEnabledStatusRequest,\n UpdateFederatedIdentityRequest,\n UpdateFederatedProviderRequest,\n UpdateFilterTypeRequest,\n UpdateMenuGroupRequest,\n UpdateMenuRequest,\n UpdateMenuTypeRequest,\n UserDto,\n UserGrantsResponse,\n VerifyTwoFactorRequest\n} from './model'\nimport { accessiFetch } from '../accessiFetch';\n\n\n/**\n * @summary Serve una pagina per il reset della password\n */\nexport type serveResetPasswordPageResponse = {\n data: void;\n status: number;\n}\n\nexport const getServeResetPasswordPageUrl = (token: string,\n params?: ServeResetPasswordPageParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/email/reset-password-page/${token}?${normalizedParams.toString()}`\n}\n\nexport const serveResetPasswordPage = async (token: string,\n params?: ServeResetPasswordPageParams, options?: RequestInit): Promise<serveResetPasswordPageResponse> => {\nreturn accessiFetch<Promise<serveResetPasswordPageResponse>>(getServeResetPasswordPageUrl(token,params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Invia una e-mail per il reset della password\n */\nexport type sendPasswordResetEmailResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSendPasswordResetEmailUrl = () => {\n\n\n return `/api/accessi/email/send-reset-password-email`\n}\n\nexport const sendPasswordResetEmail = async (sendResetPasswordEmailRequest: SendResetPasswordEmailRequest, options?: RequestInit): Promise<sendPasswordResetEmailResponse> => {\nreturn accessiFetch<Promise<sendPasswordResetEmailResponse>>(getSendPasswordResetEmailUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n sendResetPasswordEmailRequest,)\n }\n);}\n\n\n/**\n * @summary Conferma il reset della password\n */\nexport type resetPasswordResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getResetPasswordUrl = (token: string,) => {\n\n\n return `/api/accessi/auth/confirm-reset-password/${token}`\n}\n\nexport const resetPassword = async (token: string,\n confirmResetPasswordRequest: ConfirmResetPasswordRequest, options?: RequestInit): Promise<resetPasswordResponse> => {\nreturn accessiFetch<Promise<resetPasswordResponse>>(getResetPasswordUrl(token),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n confirmResetPasswordRequest,)\n }\n);}\n\n\n/**\n * @summary Recupera le informazioni utente dal token JWT\n */\nexport type getUserByTokenResponse = {\n data: GetUserByTokenResponse;\n status: number;\n}\n\nexport const getGetUserByTokenUrl = () => {\n\n\n return `/api/accessi/auth/get-user-by-token`\n}\n\nexport const getUserByToken = async (getUserByTokenRequest: GetUserByTokenRequest, options?: RequestInit): Promise<getUserByTokenResponse> => {\nreturn accessiFetch<Promise<getUserByTokenResponse>>(getGetUserByTokenUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n getUserByTokenRequest,)\n }\n);}\n\n\n/**\n * Con sola email restituisce passwordRequired oppure avvia il codice per utenti passwordless. Con password valida restituisce il login completo o challenge se la 2FA e attiva. Nessun JWT viene emesso prima della verifica del codice.\n * @summary Effettua il login utente\n */\nexport type loginResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getLoginUrl = () => {\n\n\n return `/api/accessi/auth/login`\n}\n\nexport const login = async (loginRequest: LoginRequest, options?: RequestInit): Promise<loginResponse> => {\nreturn accessiFetch<Promise<loginResponse>>(getLoginUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n loginRequest,)\n }\n);}\n\n\n/**\n * @summary Verifica il codice e completa il login\n */\nexport type verifyTwoFactorResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getVerifyTwoFactorUrl = () => {\n\n\n return `/api/accessi/auth/two-factor/verify`\n}\n\nexport const verifyTwoFactor = async (verifyTwoFactorRequest: VerifyTwoFactorRequest, options?: RequestInit): Promise<verifyTwoFactorResponse> => {\nreturn accessiFetch<Promise<verifyTwoFactorResponse>>(getVerifyTwoFactorUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n verifyTwoFactorRequest,)\n }\n);}\n\n\n/**\n * @summary Reinvia il codice, invalidando il precedente\n */\nexport type resendTwoFactorResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getResendTwoFactorUrl = () => {\n\n\n return `/api/accessi/auth/two-factor/resend`\n}\n\nexport const resendTwoFactor = async (resendTwoFactorRequest: ResendTwoFactorRequest, options?: RequestInit): Promise<resendTwoFactorResponse> => {\nreturn accessiFetch<Promise<resendTwoFactorResponse>>(getResendTwoFactorUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n resendTwoFactorRequest,)\n }\n);}\n\n\n/**\n * Endpoint pubblico ma protetto dal token di avvio: attivo solo con adminBootstrap.enabled. Crea un utente in stato confermato senza email, con flag admin (e super opzionale) e password fornita o generata.\n * @summary Crea il primo utente admin (bootstrap)\n */\nexport type bootstrapAdminResponse = {\n data: BootstrapAdminResponse;\n status: number;\n}\n\nexport const getBootstrapAdminUrl = () => {\n\n\n return `/api/accessi/auth/bootstrap-admin`\n}\n\nexport const bootstrapAdmin = async (bootstrapAdminRequest: BootstrapAdminRequest, options?: RequestInit): Promise<bootstrapAdminResponse> => {\nreturn accessiFetch<Promise<bootstrapAdminResponse>>(getBootstrapAdminUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n bootstrapAdminRequest,)\n }\n);}\n\n\n/**\n * Endpoint pubblico: la console mostra la sezione \"Crea utente admin\" solo quando enabled e true.\n * @summary Indica se il bootstrap admin e abilitato\n */\nexport type getAdminBootstrapStatusResponse = {\n data: AdminBootstrapStatusResponse;\n status: number;\n}\n\nexport const getGetAdminBootstrapStatusUrl = () => {\n\n\n return `/api/accessi/auth/bootstrap-admin/status`\n}\n\nexport const getAdminBootstrapStatus = async ( options?: RequestInit): Promise<getAdminBootstrapStatusResponse> => {\nreturn accessiFetch<Promise<getAdminBootstrapStatusResponse>>(getGetAdminBootstrapStatusUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Recupera tutti i ruoli presenti nel sistema con le relative voci di menu.\n * @summary Ritorna i ruoli disponibili con i relativi menu\n */\nexport type getRolesResponse = {\n data: GetRolesResponse;\n status: number;\n}\n\nexport const getGetRolesUrl = () => {\n\n\n return `/api/accessi/permission/roles`\n}\n\nexport const getRoles = async ( options?: RequestInit): Promise<getRolesResponse> => {\nreturn accessiFetch<Promise<getRolesResponse>>(getGetRolesUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Aggiorna un ruolo esistente\n */\nexport type updateRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateRoleUrl = (codiceRuolo: number,) => {\n\n\n return `/api/accessi/permission/update-role/${codiceRuolo}`\n}\n\nexport const updateRole = async (codiceRuolo: number,\n role: Role, options?: RequestInit): Promise<updateRoleResponse> => {\nreturn accessiFetch<Promise<updateRoleResponse>>(getUpdateRoleUrl(codiceRuolo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n role,)\n }\n);}\n\n\n/**\n * @summary Crea un nuovo ruolo\n */\nexport type createRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateRoleUrl = () => {\n\n\n return `/api/accessi/permission/create-role`\n}\n\nexport const createRole = async (role: Role, options?: RequestInit): Promise<createRoleResponse> => {\nreturn accessiFetch<Promise<createRoleResponse>>(getCreateRoleUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n role,)\n }\n);}\n\n\n/**\n * @summary Assegna piu ruoli a un utente\n */\nexport type assignRolesToUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getAssignRolesToUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/assign-roles/${codiceUtente}`\n}\n\nexport const assignRolesToUser = async (codiceUtente: number,\n assignRolesToUserRequest: AssignRolesToUserRequest, options?: RequestInit): Promise<assignRolesToUserResponse> => {\nreturn accessiFetch<Promise<assignRolesToUserResponse>>(getAssignRolesToUserUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n assignRolesToUserRequest,)\n }\n);}\n\n\n/**\n * @summary Assegna abilitazioni dirette a un utente\n */\nexport type assignPermissionsToUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getAssignPermissionsToUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/assign-permissions/${codiceUtente}`\n}\n\nexport const assignPermissionsToUser = async (codiceUtente: number,\n assignPermissionsToUserRequest: AssignPermissionsToUserRequest, options?: RequestInit): Promise<assignPermissionsToUserResponse> => {\nreturn accessiFetch<Promise<assignPermissionsToUserResponse>>(getAssignPermissionsToUserUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n assignPermissionsToUserRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un ruolo esistente\n */\nexport type deleteRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteRoleUrl = (codiceRuolo: number,) => {\n\n\n return `/api/accessi/permission/delete-role/${codiceRuolo}`\n}\n\nexport const deleteRole = async (codiceRuolo: number, options?: RequestInit): Promise<deleteRoleResponse> => {\nreturn accessiFetch<Promise<deleteRoleResponse>>(getDeleteRoleUrl(codiceRuolo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Recupera tutti i menu disponibili\n */\nexport type getMenusResponse = {\n data: GetMenusResponse;\n status: number;\n}\n\nexport const getGetMenusUrl = () => {\n\n\n return `/api/accessi/permission/menus`\n}\n\nexport const getMenus = async ( options?: RequestInit): Promise<getMenusResponse> => {\nreturn accessiFetch<Promise<getMenusResponse>>(getGetMenusUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo menu\n */\nexport type createMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuUrl = () => {\n\n\n return `/api/accessi/permission/menus`\n}\n\nexport const createMenu = async (createMenuRequest: CreateMenuRequest, options?: RequestInit): Promise<createMenuResponse> => {\nreturn accessiFetch<Promise<createMenuResponse>>(getCreateMenuUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuRequest,)\n }\n);}\n\n\n/**\n * @summary Recupera tutti i gruppi disponibili con i relativi menu\n */\nexport type getGroupsWithMenusResponse = {\n data: GetGroupsWithMenusResponse;\n status: number;\n}\n\nexport const getGetGroupsWithMenusUrl = (params?: GetGroupsWithMenusParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/permission/groups-with-menus?${normalizedParams.toString()}`\n}\n\nexport const getGroupsWithMenus = async (params?: GetGroupsWithMenusParams, options?: RequestInit): Promise<getGroupsWithMenusResponse> => {\nreturn accessiFetch<Promise<getGroupsWithMenusResponse>>(getGetGroupsWithMenusUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Recupera il catalogo dei tipi menu\n */\nexport type getMenuTypesResponse = {\n data: GetMenuTypesResponse;\n status: number;\n}\n\nexport const getGetMenuTypesUrl = () => {\n\n\n return `/api/accessi/permission/menu-types`\n}\n\nexport const getMenuTypes = async ( options?: RequestInit): Promise<getMenuTypesResponse> => {\nreturn accessiFetch<Promise<getMenuTypesResponse>>(getGetMenuTypesUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo tipo menu\n */\nexport type createMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuTypeUrl = () => {\n\n\n return `/api/accessi/permission/menu-types`\n}\n\nexport const createMenuType = async (createMenuTypeRequest: CreateMenuTypeRequest, options?: RequestInit): Promise<createMenuTypeResponse> => {\nreturn accessiFetch<Promise<createMenuTypeResponse>>(getCreateMenuTypeUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuTypeRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un menu esistente\n */\nexport type updateMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/permission/menus/${codiceMenu}`\n}\n\nexport const updateMenu = async (codiceMenu: string,\n updateMenuRequest: UpdateMenuRequest, options?: RequestInit): Promise<updateMenuResponse> => {\nreturn accessiFetch<Promise<updateMenuResponse>>(getUpdateMenuUrl(codiceMenu),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un menu\n */\nexport type deleteMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/permission/menus/${codiceMenu}`\n}\n\nexport const deleteMenu = async (codiceMenu: string, options?: RequestInit): Promise<deleteMenuResponse> => {\nreturn accessiFetch<Promise<deleteMenuResponse>>(getDeleteMenuUrl(codiceMenu),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo gruppo menu\n */\nexport type createMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuGroupUrl = () => {\n\n\n return `/api/accessi/permission/menu-groups`\n}\n\nexport const createMenuGroup = async (createMenuGroupRequest: CreateMenuGroupRequest, options?: RequestInit): Promise<createMenuGroupResponse> => {\nreturn accessiFetch<Promise<createMenuGroupResponse>>(getCreateMenuGroupUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuGroupRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un gruppo menu\n */\nexport type updateMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuGroupUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/permission/menu-groups/${codiceGruppo}`\n}\n\nexport const updateMenuGroup = async (codiceGruppo: string,\n updateMenuGroupRequest: UpdateMenuGroupRequest, options?: RequestInit): Promise<updateMenuGroupResponse> => {\nreturn accessiFetch<Promise<updateMenuGroupResponse>>(getUpdateMenuGroupUrl(codiceGruppo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuGroupRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un gruppo menu\n */\nexport type deleteMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuGroupUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/permission/menu-groups/${codiceGruppo}`\n}\n\nexport const deleteMenuGroup = async (codiceGruppo: string, options?: RequestInit): Promise<deleteMenuGroupResponse> => {\nreturn accessiFetch<Promise<deleteMenuGroupResponse>>(getDeleteMenuGroupUrl(codiceGruppo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Aggiorna un tipo menu\n */\nexport type updateMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuTypeUrl = (codiceTipo: string,) => {\n\n\n return `/api/accessi/permission/menu-types/${codiceTipo}`\n}\n\nexport const updateMenuType = async (codiceTipo: string,\n updateMenuTypeRequest: UpdateMenuTypeRequest, options?: RequestInit): Promise<updateMenuTypeResponse> => {\nreturn accessiFetch<Promise<updateMenuTypeResponse>>(getUpdateMenuTypeUrl(codiceTipo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuTypeRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un tipo menu\n */\nexport type deleteMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuTypeUrl = (codiceTipo: string,) => {\n\n\n return `/api/accessi/permission/menu-types/${codiceTipo}`\n}\n\nexport const deleteMenuType = async (codiceTipo: string, options?: RequestInit): Promise<deleteMenuTypeResponse> => {\nreturn accessiFetch<Promise<deleteMenuTypeResponse>>(getDeleteMenuTypeUrl(codiceTipo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Recupera i ruoli e i menu di un utente\n */\nexport type getUserRolesAndGrantsResponse = {\n data: UserGrantsResponse;\n status: number;\n}\n\nexport const getGetUserRolesAndGrantsUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/grants/${codiceUtente}`\n}\n\nexport const getUserRolesAndGrants = async (codiceUtente: number, options?: RequestInit): Promise<getUserRolesAndGrantsResponse> => {\nreturn accessiFetch<Promise<getUserRolesAndGrantsResponse>>(getGetUserRolesAndGrantsUrl(codiceUtente),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Serve la pagina di reset password\n */\nexport type serveResetPasswordPageUserResponse = {\n data: void;\n status: number;\n}\n\nexport const getServeResetPasswordPageUserUrl = (token: string,) => {\n\n\n return `/api/accessi/user/reset-password/${token}`\n}\n\nexport const serveResetPasswordPageUser = async (token: string, options?: RequestInit): Promise<serveResetPasswordPageUserResponse> => {\nreturn accessiFetch<Promise<serveResetPasswordPageUserResponse>>(getServeResetPasswordPageUserUrl(token),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Recupera la lista degli utenti\n */\nexport type getUsersResponse = {\n data: GetUsersResponse;\n status: number;\n}\n\nexport const getGetUsersUrl = (params?: GetUsersParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/user/get-users?${normalizedParams.toString()}`\n}\n\nexport const getUsers = async (params?: GetUsersParams, options?: RequestInit): Promise<getUsersResponse> => {\nreturn accessiFetch<Promise<getUsersResponse>>(getGetUsersUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Imposta lo stato di un utente a eliminato senza rimuovere i record.\n * @summary Elimina un utente\n */\nexport type deleteUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/delete-user/${codiceUtente}`\n}\n\nexport const deleteUser = async (codiceUtente: number, options?: RequestInit): Promise<deleteUserResponse> => {\nreturn accessiFetch<Promise<deleteUserResponse>>(getDeleteUserUrl(codiceUtente),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Rimuove l utente e tutti i record collegati. Operazione distruttiva riservata agli admin.\n * @summary Elimina definitivamente un utente\n */\nexport type deleteUserPermanentlyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteUserPermanentlyUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/delete-user-permanent/${codiceUtente}`\n}\n\nexport const deleteUserPermanently = async (codiceUtente: number, options?: RequestInit): Promise<deleteUserPermanentlyResponse> => {\nreturn accessiFetch<Promise<deleteUserPermanentlyResponse>>(getDeleteUserPermanentlyUrl(codiceUtente),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato al superutente. Richiede un servizio email configurato; altrimenti risponde con ACCESSI_EMAIL_NOT_CONFIGURED.\n * @summary Forza l invio dell email di reset password a un utente\n */\nexport type forcePasswordResetResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getForcePasswordResetUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/force-password-reset/${codiceUtente}`\n}\n\nexport const forcePasswordReset = async (codiceUtente: number, options?: RequestInit): Promise<forcePasswordResetResponse> => {\nreturn accessiFetch<Promise<forcePasswordResetResponse>>(getForcePasswordResetUrl(codiceUtente),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Riservato al superutente. Invia l email di reset a tutti gli utenti la cui password non e ancora nel formato moderno. Richiede un servizio email configurato.\n * @summary Forza il reset password per tutti gli utenti con password legacy\n */\nexport type forcePasswordResetLegacyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getForcePasswordResetLegacyUrl = () => {\n\n\n return `/api/accessi/user/force-password-reset-legacy`\n}\n\nexport const forcePasswordResetLegacy = async ( options?: RequestInit): Promise<forcePasswordResetLegacyResponse> => {\nreturn accessiFetch<Promise<forcePasswordResetLegacyResponse>>(getForcePasswordResetLegacyUrl(),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Riservato a superutenti e admin (con la gerarchia ADMIN > SUPER). Genera un token per l utente target, con la stessa durata della sessione Accessi standard (jwtOptions.expiresIn), e lo allega all URL indicato come query parameter loginAsToken. Il token e una credenziale: non condividerlo e non registrarlo. Da quel momento l applicazione di destinazione decide come consumarlo.\n * @summary Genera un URL di accesso temporaneo come un altro utente\n */\nexport type createLoginAsUrlResponse = {\n data: LoginAsResponse;\n status: number;\n}\n\nexport const getCreateLoginAsUrlUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/login-as/${codiceUtente}`\n}\n\nexport const createLoginAsUrl = async (codiceUtente: number,\n loginAsRequest: LoginAsRequest, options?: RequestInit): Promise<createLoginAsUrlResponse> => {\nreturn accessiFetch<Promise<createLoginAsUrlResponse>>(getCreateLoginAsUrlUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n loginAsRequest,)\n }\n);}\n\n\n/**\n * Riservato agli amministratori. Hasha la password, aggiorna la scadenza secondo la policy e non invia email.\n * @summary Imposta direttamente la password di un utente\n */\nexport type setUserPasswordResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetUserPasswordUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/set-password/${codiceUtente}`\n}\n\nexport const setUserPassword = async (codiceUtente: number,\n setUserPasswordRequest: SetUserPasswordRequest, options?: RequestInit): Promise<setUserPasswordResponse> => {\nreturn accessiFetch<Promise<setUserPasswordResponse>>(getSetUserPasswordUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n setUserPasswordRequest,)\n }\n);}\n\n\n/**\n * @summary Imposta lo stato di registrazione di un utente\n */\nexport type setStatoRegistrazioneResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetStatoRegistrazioneUrl = () => {\n\n\n return `/api/accessi/user/set-stato`\n}\n\nexport const setStatoRegistrazione = async (setStatoRegistrazioneDto: SetStatoRegistrazioneDto, options?: RequestInit): Promise<setStatoRegistrazioneResponse> => {\nreturn accessiFetch<Promise<setStatoRegistrazioneResponse>>(getSetStatoRegistrazioneUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n setStatoRegistrazioneDto,)\n }\n);}\n\n\n/**\n * Disponibile soltanto quando publicRegistration.enabled e true. Per utenti SSO usare il provisioning master nel tag Federated authentication.\n * @summary Registra un nuovo utente\n */\nexport type registerResponse = {\n data: RegisterResponse;\n status: number;\n}\n\nexport const getRegisterUrl = () => {\n\n\n return `/api/accessi/user/register`\n}\n\nexport const register = async (publicRegisterRequest: PublicRegisterRequest, options?: RequestInit): Promise<registerResponse> => {\nreturn accessiFetch<Promise<registerResponse>>(getRegisterUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n publicRegisterRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Crea un utente in attesa di impostazione password e invia la mail di reset.\n * @summary Crea un utente locale da amministrazione\n */\nexport type createManagedUserResponse = {\n data: RegisterResponse;\n status: number;\n}\n\nexport const getCreateManagedUserUrl = () => {\n\n\n return `/api/accessi/user/create-managed-user`\n}\n\nexport const createManagedUser = async (registerRequest: RegisterRequest, options?: RequestInit): Promise<createManagedUserResponse> => {\nreturn accessiFetch<Promise<createManagedUserResponse>>(getCreateManagedUserUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n registerRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un utente esistente\n */\nexport type updateUtenteResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateUtenteUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/update-user/${codiceUtente}`\n}\n\nexport const updateUtente = async (codiceUtente: number,\n userDto: UserDto, options?: RequestInit): Promise<updateUtenteResponse> => {\nreturn accessiFetch<Promise<updateUtenteResponse>>(getUpdateUtenteUrl(codiceUtente),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n userDto,)\n }\n);}\n\n\n/**\n * @summary Imposta il consenso GDPR per un utente\n */\nexport type setGdprResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetGdprUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/set-gdpr/${codiceUtente}`\n}\n\nexport const setGdpr = async (codiceUtente: number, options?: RequestInit): Promise<setGdprResponse> => {\nreturn accessiFetch<Promise<setGdprResponse>>(getSetGdprUrl(codiceUtente),\n { \n ...options,\n method: 'PATCH'\n \n }\n);}\n\n\n/**\n * Ritorna tutti i tipi di filtri disponibili nel sistema\n * @deprecated\n * @summary Recupera la lista dei tipi di filtri\n */\nexport type getTipiFiltroResponse = {\n data: GetFiltriResponse;\n status: number;\n}\n\nexport const getGetTipiFiltroUrl = () => {\n\n\n return `/api/accessi/filtri/tipi`\n}\n\nexport const getTipiFiltro = async ( options?: RequestInit): Promise<getTipiFiltroResponse> => {\nreturn accessiFetch<Promise<getTipiFiltroResponse>>(getGetTipiFiltroUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Inserisce una nuova voce nel catalogo dei tipi di filtro. Operazione riservata al superutente.\n * @deprecated\n * @summary Crea un tipo di filtro\n */\nexport type createTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateTipoFiltroUrl = () => {\n\n\n return `/api/accessi/filtri/tipi`\n}\n\nexport const createTipoFiltro = async (createFilterTypeRequest: CreateFilterTypeRequest, options?: RequestInit): Promise<createTipoFiltroResponse> => {\nreturn accessiFetch<Promise<createTipoFiltroResponse>>(getCreateTipoFiltroUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFilterTypeRequest,)\n }\n);}\n\n\n/**\n * Aggiorna descrizione, campo o stato di un tipo di filtro esistente.\n * @deprecated\n * @summary Aggiorna un tipo di filtro\n */\nexport type updateTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateTipoFiltroUrl = (tipFil: number,) => {\n\n\n return `/api/accessi/filtri/tipi/${tipFil}`\n}\n\nexport const updateTipoFiltro = async (tipFil: number,\n updateFilterTypeRequest: UpdateFilterTypeRequest, options?: RequestInit): Promise<updateTipoFiltroResponse> => {\nreturn accessiFetch<Promise<updateTipoFiltroResponse>>(getUpdateTipoFiltroUrl(tipFil),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateFilterTypeRequest,)\n }\n);}\n\n\n/**\n * Elimina un tipo di filtro solo se nessun filtro utente lo utilizza.\n * @deprecated\n * @summary Elimina un tipo di filtro\n */\nexport type deleteTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteTipoFiltroUrl = (tipFil: number,) => {\n\n\n return `/api/accessi/filtri/tipi/${tipFil}`\n}\n\nexport const deleteTipoFiltro = async (tipFil: number, options?: RequestInit): Promise<deleteTipoFiltroResponse> => {\nreturn accessiFetch<Promise<deleteTipoFiltroResponse>>(getDeleteTipoFiltroUrl(tipFil),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Ritorna tutti i filtri associati ad un utente specifico\n * @deprecated\n * @summary Recupera i filtri di un utente\n */\nexport type getFiltriUtenteResponse = {\n data: GetFiltriUtenteResponse;\n status: number;\n}\n\nexport const getGetFiltriUtenteUrl = (params?: GetFiltriUtenteParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/filtri/utente?${normalizedParams.toString()}`\n}\n\nexport const getFiltriUtente = async (params?: GetFiltriUtenteParams, options?: RequestInit): Promise<getFiltriUtenteResponse> => {\nreturn accessiFetch<Promise<getFiltriUtenteResponse>>(getGetFiltriUtenteUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Permette di salvare i filtri associati ad un utente specifico\n * @deprecated\n * @summary Inserisce o aggiorna i filtri di un utente\n */\nexport type saveFiltriUtenteResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSaveFiltriUtenteUrl = () => {\n\n\n return `/api/accessi/filtri/utente`\n}\n\nexport const saveFiltriUtente = async (filtriUtente: FiltriUtente, options?: RequestInit): Promise<saveFiltriUtenteResponse> => {\nreturn accessiFetch<Promise<saveFiltriUtenteResponse>>(getSaveFiltriUtenteUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n filtriUtente,)\n }\n);}\n\n\n/**\n * @summary Aggiorna lo stato di abilitazione di un menu\n */\nexport type setMenuEnabledResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetMenuEnabledUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/configurator/menus/${codiceMenu}/enabled`\n}\n\nexport const setMenuEnabled = async (codiceMenu: string,\n updateEnabledStatusRequest: UpdateEnabledStatusRequest, options?: RequestInit): Promise<setMenuEnabledResponse> => {\nreturn accessiFetch<Promise<setMenuEnabledResponse>>(getSetMenuEnabledUrl(codiceMenu),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateEnabledStatusRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna lo stato di abilitazione di un gruppo menu\n */\nexport type setGroupEnabledResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetGroupEnabledUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/configurator/groups/${codiceGruppo}/enabled`\n}\n\nexport const setGroupEnabled = async (codiceGruppo: string,\n updateEnabledStatusRequest: UpdateEnabledStatusRequest, options?: RequestInit): Promise<setGroupEnabledResponse> => {\nreturn accessiFetch<Promise<setGroupEnabledResponse>>(getSetGroupEnabledUrl(codiceGruppo),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateEnabledStatusRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Restituisce solo catalogo e stato Accessi; issuer, secret e configurazioni SSO restano nel backend.\n * @summary Elenca i provider SSO censiti\n */\nexport type getFederatedProvidersResponse = {\n data: FederatedProviderListResponse;\n status: number;\n}\n\nexport const getGetFederatedProvidersUrl = () => {\n\n\n return `/api/accessi/federated-auth/providers`\n}\n\nexport const getFederatedProviders = async ( options?: RequestInit): Promise<getFederatedProvidersResponse> => {\nreturn accessiFetch<Promise<getFederatedProvidersResponse>>(getGetFederatedProvidersUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Riservato a superutente. La chiave provider deve corrispondere alla configurazione stabile del backend; non salvare segreti, issuer o token.\n * @summary Censisce un provider SSO\n */\nexport type createFederatedProviderResponse = {\n data: FederatedProviderResponse;\n status: number;\n}\n\nexport const getCreateFederatedProviderUrl = () => {\n\n\n return `/api/accessi/federated-auth/providers`\n}\n\nexport const createFederatedProvider = async (createFederatedProviderRequest: CreateFederatedProviderRequest, options?: RequestInit): Promise<createFederatedProviderResponse> => {\nreturn accessiFetch<Promise<createFederatedProviderResponse>>(getCreateFederatedProviderUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedProviderRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. La chiave provider è immutabile: disabilitarla blocca nuovi login SSO ma conserva i collegamenti storici.\n * @summary Aggiorna o disabilita un provider SSO\n */\nexport type updateFederatedProviderResponse = {\n data: FederatedProviderResponse;\n status: number;\n}\n\nexport const getUpdateFederatedProviderUrl = (provider: string,) => {\n\n\n return `/api/accessi/federated-auth/providers/${provider}`\n}\n\nexport const updateFederatedProvider = async (provider: string,\n updateFederatedProviderRequest: UpdateFederatedProviderRequest, options?: RequestInit): Promise<updateFederatedProviderResponse> => {\nreturn accessiFetch<Promise<updateFederatedProviderResponse>>(getUpdateFederatedProviderUrl(provider),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateFederatedProviderRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Consentito solo se nessuna identita e collegata al provider; in alternativa disabilitalo.\n * @summary Elimina un provider SSO\n */\nexport type deleteFederatedProviderResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteFederatedProviderUrl = (provider: string,) => {\n\n\n return `/api/accessi/federated-auth/providers/${provider}`\n}\n\nexport const deleteFederatedProvider = async (provider: string, options?: RequestInit): Promise<deleteFederatedProviderResponse> => {\nreturn accessiFetch<Promise<deleteFederatedProviderResponse>>(getDeleteFederatedProviderUrl(provider),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato a superutente. Non restituisce token esterni o claim del provider.\n * @summary Elenca le identita SSO di un utente\n */\nexport type getFederatedIdentitiesResponse = {\n data: FederatedIdentityListResponse;\n status: number;\n}\n\nexport const getGetFederatedIdentitiesUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities`\n}\n\nexport const getFederatedIdentities = async (codiceUtente: number, options?: RequestInit): Promise<getFederatedIdentitiesResponse> => {\nreturn accessiFetch<Promise<getFederatedIdentitiesResponse>>(getGetFederatedIdentitiesUrl(codiceUtente),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Il master deve fornire un provider e subject ottenuti da una verifica SSO lato backend; questo endpoint non verifica token esterni.\n * @summary Associa un SSO gia verificato a un utente esistente\n */\nexport type linkFederatedIdentityResponse = {\n data: FederatedIdentityResponse;\n status: number;\n}\n\nexport const getLinkFederatedIdentityUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities`\n}\n\nexport const linkFederatedIdentity = async (codiceUtente: number,\n createFederatedIdentityRequest: CreateFederatedIdentityRequest, options?: RequestInit): Promise<linkFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<linkFederatedIdentityResponse>>(getLinkFederatedIdentityUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedIdentityRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. L utente nasce confermato, con identita collegata e senza password salvo opt-in esplicito.\n * @summary Crea un utente gestito e SSO-only\n */\nexport type createFederatedUserResponse = {\n data: FederatedIdentityResponse;\n status: number;\n}\n\nexport const getCreateFederatedUserUrl = () => {\n\n\n return `/api/accessi/federated-auth/users`\n}\n\nexport const createFederatedUser = async (createFederatedUserRequest: CreateFederatedUserRequest, options?: RequestInit): Promise<createFederatedUserResponse> => {\nreturn accessiFetch<Promise<createFederatedUserResponse>>(getCreateFederatedUserUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedUserRequest,)\n }\n);}\n\n\n/**\n * Con false il login locale restituisce PASSWORD_LOGIN_DISABLED; le identita SSO attive restano utilizzabili.\n * @summary Abilita o disabilita il login con password\n */\nexport type setPasswordLoginPolicyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetPasswordLoginPolicyUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/password-login`\n}\n\nexport const setPasswordLoginPolicy = async (codiceUtente: number,\n setPasswordLoginPolicyRequest: SetPasswordLoginPolicyRequest, options?: RequestInit): Promise<setPasswordLoginPolicyResponse> => {\nreturn accessiFetch<Promise<setPasswordLoginPolicyResponse>>(getSetPasswordLoginPolicyUrl(codiceUtente),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n setPasswordLoginPolicyRequest,)\n }\n);}\n\n\n/**\n * Soft delete: l associazione resta tracciata ma non puo piu autenticare.\n * @summary Disabilita un identita SSO\n */\nexport type disableFederatedIdentityResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDisableFederatedIdentityUrl = (identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/identities/${identityKey}`\n}\n\nexport const disableFederatedIdentity = async (identityKey: string, options?: RequestInit): Promise<disableFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<disableFederatedIdentityResponse>>(getDisableFederatedIdentityUrl(identityKey),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Consente di modificare nota e stato attivo del collegamento. identityKey e una chiave tecnica, non un token SSO.\n * @summary Aggiorna un collegamento SSO\n */\nexport type updateFederatedIdentityResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateFederatedIdentityUrl = (identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/identities/${identityKey}`\n}\n\nexport const updateFederatedIdentity = async (identityKey: string,\n updateFederatedIdentityRequest: UpdateFederatedIdentityRequest, options?: RequestInit): Promise<updateFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<updateFederatedIdentityResponse>>(getUpdateFederatedIdentityUrl(identityKey),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateFederatedIdentityRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Rimuove il collegamento provider e subject dall’utente, senza eliminare l’utente Accessi.\n * @summary Elimina definitivamente un collegamento SSO\n */\nexport type deleteFederatedIdentityPermanentlyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteFederatedIdentityPermanentlyUrl = (codiceUtente: number,\n identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities/${identityKey}`\n}\n\nexport const deleteFederatedIdentityPermanently = async (codiceUtente: number,\n identityKey: string, options?: RequestInit): Promise<deleteFederatedIdentityPermanentlyResponse> => {\nreturn accessiFetch<Promise<deleteFederatedIdentityPermanentlyResponse>>(getDeleteFederatedIdentityPermanentlyUrl(codiceUtente,identityKey),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato agli utenti abilitati alla console (FLGSUPER/FLGADMIN). Restituisce un ticket monouso legato all utente, valido pochi secondi.\n * @summary Emetti un ticket di ingresso alla console\n */\nexport type createConsoleEntryTicketResponse = {\n data: ConsoleEntryTicketResponse;\n status: number;\n}\n\nexport const getCreateConsoleEntryTicketUrl = () => {\n\n\n return `/api/accessi/console/entry`\n}\n\nexport const createConsoleEntryTicket = async ( options?: RequestInit): Promise<createConsoleEntryTicketResponse> => {\nreturn accessiFetch<Promise<createConsoleEntryTicketResponse>>(getCreateConsoleEntryTicketUrl(),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Endpoint pubblico (il ticket e l unica credenziale) protetto da rate limit; il ticket e monouso e scade in pochi secondi.\n * @summary Scambia il ticket con la sessione Accessi\n */\nexport type exchangeConsoleEntryTicketResponse = {\n data: ConsoleEntrySessionResponse;\n status: number;\n}\n\nexport const getExchangeConsoleEntryTicketUrl = () => {\n\n\n return `/api/accessi/console/entry/exchange`\n}\n\nexport const exchangeConsoleEntryTicket = async (consoleEntryExchangeRequest: ConsoleEntryExchangeRequest, options?: RequestInit): Promise<exchangeConsoleEntryTicketResponse> => {\nreturn accessiFetch<Promise<exchangeConsoleEntryTicketResponse>>(getExchangeConsoleEntryTicketUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n consoleEntryExchangeRequest,)\n }\n);}\n\n\n/**\n * @summary Emetti un nuovo token di servizio\n */\nexport type createServiceTokenResponse = {\n data: CreateServiceTokenResponse;\n status: number;\n}\n\nexport const getCreateServiceTokenUrl = () => {\n\n\n return `/api/accessi/service-token`\n}\n\nexport const createServiceToken = async (createServiceTokenRequest: CreateServiceTokenRequest, options?: RequestInit): Promise<createServiceTokenResponse> => {\nreturn accessiFetch<Promise<createServiceTokenResponse>>(getCreateServiceTokenUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createServiceTokenRequest,)\n }\n);}\n\n\n/**\n * @summary Elenca i token di servizio (senza segreti)\n */\nexport type getServiceTokensResponse = {\n data: GetServiceTokensResponse;\n status: number;\n}\n\nexport const getGetServiceTokensUrl = (params?: GetServiceTokensParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/service-token?${normalizedParams.toString()}`\n}\n\nexport const getServiceTokens = async (params?: GetServiceTokensParams, options?: RequestInit): Promise<getServiceTokensResponse> => {\nreturn accessiFetch<Promise<getServiceTokensResponse>>(getGetServiceTokensUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Revoca un token di servizio\n */\nexport type revokeServiceTokenResponse = {\n data: ErrorResponse;\n status: number;\n}\n\nexport const getRevokeServiceTokenUrl = (tokenId: string,) => {\n\n\n return `/api/accessi/service-token/${tokenId}`\n}\n\nexport const revokeServiceToken = async (tokenId: string, options?: RequestInit): Promise<revokeServiceTokenResponse> => {\nreturn accessiFetch<Promise<revokeServiceTokenResponse>>(getRevokeServiceTokenUrl(tokenId),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Ruota un token di servizio\n */\nexport type rotateServiceTokenResponse = {\n data: CreateServiceTokenResponse;\n status: number;\n}\n\nexport const getRotateServiceTokenUrl = (tokenId: string,) => {\n\n\n return `/api/accessi/service-token/${tokenId}/rotate`\n}\n\nexport const rotateServiceToken = async (tokenId: string, options?: RequestInit): Promise<rotateServiceTokenResponse> => {\nreturn accessiFetch<Promise<rotateServiceTokenResponse>>(getRotateServiceTokenUrl(tokenId),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Riservato agli admin. Genera il DDL delle entita Accessi e segnala le tabelle presenti fuori schema.\n * @summary Esporta lo schema DDL e le entita presenti\n */\nexport type getSchemaResponse = {\n data: GetSchemaResponse;\n status: number;\n}\n\nexport const getGetSchemaUrl = () => {\n\n\n return `/api/accessi/schema`\n}\n\nexport const getSchema = async ( options?: RequestInit): Promise<getSchemaResponse> => {\nreturn accessiFetch<Promise<getSchemaResponse>>(getGetSchemaUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n"]}
@@ -7,7 +7,7 @@
7
7
  export interface LoginAsResult {
8
8
  /** Scadenza del token in formato ISO 8601. */
9
9
  expiresAt: string;
10
- /** Validita del token in secondi. */
10
+ /** Validita del token in secondi, la stessa della sessione Accessi standard. */
11
11
  expiresInSeconds: number;
12
12
  /** URL dell applicazione con il token allegato come query parameter loginAsToken. */
13
13
  loginUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"loginAsResult.js","sourceRoot":"","sources":["../../../../../src/accessi-module/Console/generated/model/loginAsResult.ts"],"names":[],"mappings":";AAAA;;;;;GAKG","sourcesContent":["/**\n * Generated by orval v6.31.0 🍺\n * Do not edit manually.\n * Accessi API\n * OpenAPI spec version: 1.0\n */\n\nexport interface LoginAsResult {\n /** Scadenza del token in formato ISO 8601. */\n expiresAt: string;\n /** Validita del token in secondi. */\n expiresInSeconds: number;\n /** URL dell applicazione con il token allegato come query parameter loginAsToken. */\n loginUrl: string;\n /** Token JWT di accesso temporaneo per l utente target. */\n token: string;\n}\n"]}
1
+ {"version":3,"file":"loginAsResult.js","sourceRoot":"","sources":["../../../../../src/accessi-module/Console/generated/model/loginAsResult.ts"],"names":[],"mappings":";AAAA;;;;;GAKG","sourcesContent":["/**\n * Generated by orval v6.31.0 🍺\n * Do not edit manually.\n * Accessi API\n * OpenAPI spec version: 1.0\n */\n\nexport interface LoginAsResult {\n /** Scadenza del token in formato ISO 8601. */\n expiresAt: string;\n /** Validita del token in secondi, la stessa della sessione Accessi standard. */\n expiresInSeconds: number;\n /** URL dell applicazione con il token allegato come query parameter loginAsToken. */\n loginUrl: string;\n /** Token JWT di accesso temporaneo per l utente target. */\n token: string;\n}\n"]}
@@ -374,7 +374,7 @@ exports.HELP = {
374
374
  title: 'Login as',
375
375
  blocks: [
376
376
  p(`Genera un accesso temporaneo all'applicazione come l'utente selezionato. Non richiede la password dell'utente e non modifica il suo profilo.`),
377
- note('danger', 'Il token scade in 5 minuti', `Il token è una credenziale: chiunque ottenga l'URL può usarlo fino alla scadenza per entrare nell'applicazione come l'utente target. Non condividerlo, non salvarlo in log o chat e non incollarlo in documenti.`),
377
+ note('danger', 'La durata è quella standard', `Il token dura quanto la sessione Accessi standard (jwtOptions.expiresIn). È una credenziale: chiunque ottenga l'URL può usarlo fino alla scadenza per entrare nell'applicazione come l'utente target. Non condividerlo, non salvarlo in log o chat e non incollarlo in documenti.`),
378
378
  note('info', 'Chi può usarlo', `Solo superutenti e admin. Vale la gerarchia ADMIN > SUPER: un superutente non può impersonare un admin.`),
379
379
  p(`Il token viene aggiunto all'URL scelto come parametro di query loginAsToken. Da quel momento è l'applicazione di destinazione a decidere come validarlo e cosa consentire.`),
380
380
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/accessi-module/Console/help.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Contenuti di aiuto contestuale della console Accessi.\n *\n * Ogni voce spiega, in italiano corretto, che cosa inserire in un campo\n * tecnico e da dove prendere il valore. Sono mostrati come miniguida nel\n * tooltip aperto dall'icona \"i\" accanto al campo.\n */\nimport type { WikiBlock } from './wiki';\n\nexport interface HelpEntry {\n title: string;\n blocks: WikiBlock[];\n}\n\nconst p = (text: string): WikiBlock => ({ kind: 'p', text });\nconst list = (items: string[]): WikiBlock => ({ kind: 'list', items });\nconst code = (language: string, codeText: string, title?: string): WikiBlock => ({ kind: 'code', language, title, code: codeText });\nconst note = (tone: 'info' | 'ok' | 'warn' | 'danger', title: string, text: string): WikiBlock => ({ kind: 'callout', tone, title, text });\nconst table = (head: string[], rows: string[][]): WikiBlock => ({ kind: 'table', head, rows });\n\nexport const HELP: Record<string, HelpEntry> = {\n // ------------------------------------------------------------------ SSO\n 'sso-provider': {\n title: 'Provider SSO',\n blocks: [\n p(`La chiave del provider censito in Accessi. Deve coincidere esattamente con quella usata dal backend quando valida il login SSO e chiama FederatedAuthService.authenticate({ provider, subject }).`),\n p(`Se il backend usa la chiave azure-ad-acme-prod, qui va la stessa stringa: una differenza, anche di un carattere, fa fallire il collegamento.`),\n note('info', 'Chi crea il provider', `Prima si censisce il provider in \"SSO → Provider\" (superutente), poi lo si sceglie qui. Se l'elenco è vuoto, non ci sono provider attivi.`),\n ],\n },\n 'sso-subject': {\n title: 'ID utente del provider (subject)',\n blocks: [\n p(`È l'identificatore STABILE della persona nel provider, non l'email. Il backend lo ottiene dopo aver validato il token del provider e lo passa ad Accessi; Accessi non vede mai il token esterno.`),\n p(`Ecco il claim corretto per i provider più comuni:`),\n table(\n ['Provider', 'Claim da usare', 'Note'],\n [\n ['Azure AD / Entra ID', 'oid', 'Object ID. Non usare preferred_username né email.'],\n ['Google', 'sub', 'ID numerico di 21 cifre. Non l indirizzo email.'],\n ['Apple', 'sub', 'Identificatore stabile per la tua app; disponibile solo al primo login, va salvato subito.'],\n ['Okta', 'sub', 'Claim standard OIDC.'],\n ['Auth0', 'sub', 'Formato auth0|... oppure google-oauth2|... .'],\n ['Keycloak', 'sub', 'Claim standard OIDC.'],\n ['Microsoft personale (MSA)', 'sub', 'Account outlook/live.'],\n ['SAML 2.0', 'NameID', 'Identificatore persistente dell utente.'],\n ['OIDC generico', 'sub', 'Claim standard OIDC.'],\n ],\n ),\n note('danger', 'Mai usare l email', `L'email può cambiare e non è un identificatore stabile: usarla come subject crea duplicati e collegamenti errati.`),\n code('ts', [\n '// Nel backend, dopo aver validato il token del provider:',\n '// Azure AD / Entra ID',\n \"const subject = claims.oid;\",\n '// Google / Okta / Keycloak / OIDC generico',\n \"const subject = claims.sub;\",\n '// Apple (disponibile al primo login, salvalo subito)',\n \"const subject = claims.sub;\",\n '// SAML',\n \"const subject = assertion.nameId;\",\n ].join('\\n'), 'Come ricavare il subject'),\n ],\n },\n 'sso-note': {\n title: 'Nota',\n blocks: [\n p(`Nota interna per gli amministratori, utile a ricordare perché il collegamento esiste (per esempio \"migrato da AD il 2026-01-10\"). Non viene inviata al provider.`),\n ],\n },\n 'provider-key': {\n title: 'Chiave provider',\n blocks: [\n p(`Identificativo tecnico del provider, usato dal backend nel payload SSO. Scegli una chiave descrittiva e stabile, per esempio azure-ad-acme-prod o google-workspace-acme.`),\n note('warn', 'Immutabile', `Dopo il censimento la chiave non si modifica: identità e configurazione del backend la referenziano. Se serve cambiarla, disabilita il provider e creane uno nuovo.`),\n ],\n },\n 'provider-description': {\n title: 'Descrizione',\n blocks: [\n p(`Nome leggibile mostrato agli amministratori (per esempio \"Azure AD – Acme produzione\"). Non è la chiave tecnica: può contenere spazi.`),\n ],\n },\n 'provider-note': {\n title: 'Nota',\n blocks: [\n p(`Nota interna del catalogo. Non inserire segreti, issuer, client id o dati personali: quei valori restano nel backend.`),\n ],\n },\n 'provider-active': {\n title: 'Provider attivo',\n blocks: [\n p(`Se disattivato, il provider non accetta nuovi login e nuovi collegamenti; le identità e lo storico restano. Riattivalo quando il backend è pronto.`),\n ],\n },\n\n // --------------------------------------------------------- service token\n 'token-label': {\n title: 'Descrizione del token',\n blocks: [\n p(`Nome del token, mostrato agli amministratori (per esempio \"Integrazione IA – produzione\"). Non è un segreto.`),\n ],\n },\n 'token-scopes': {\n title: 'Scope',\n blocks: [\n p(`Etichette che il backend controlla per autorizzare le chiamate tecniche. Un token non è un superutente: abilita solo le rotte protette con ServiceTokenGuard e @RequireServiceTokenScopes.`),\n list([\n `Formato: lettere, numeri, ':', '_' o '-', massimo 40 caratteri.`,\n `Esempi: ia, chat, tools, report:read.`,\n `Separa gli scope con una virgola.`,\n ]),\n code('ts', [\n '@UseGuards(ServiceTokenGuard)',\n \"@RequireServiceTokenScopes('ia')\",\n '@Post(\"internal/ask\")',\n 'ask() { /* il token deve avere lo scope ia */ }',\n ].join('\\n'), 'Come li usa il backend'),\n note('warn', 'Scope vuoto', `Senza scope il token non soddisfa nessun @RequireServiceTokenScopes, ma passa comunque le rotte protette senza scope richiesto.`),\n ],\n },\n 'token-ttl': {\n title: 'Durata (giorni)',\n blocks: [\n p(`Giorni di validità del token. Alla scadenza il token smette di funzionare.`),\n note('danger', 'Nessuna scadenza', `Se lasci vuoto questo campo e non imposti una data, il token non scade mai: sconsigliato in produzione.`),\n ],\n },\n\n // ----------------------------------------------------------------- utenti\n 'user-email': {\n title: 'Email',\n blocks: [\n p(`Identificativo di accesso dell'utente e recapito per le email di reset o codici. Deve essere univoca.`),\n ],\n },\n 'user-name': {\n title: 'Nome e cognome',\n blocks: [\n p(`Dati anagrafici mostrati in console e restituiti nel profilo. Non incidono sull'autenticazione.`),\n ],\n },\n 'user-password-login': {\n title: 'Login con password',\n blocks: [\n p(`Se disattivato, il login con email e password viene rifiutato (PASSWORD_LOGIN_DISABLED). Restano validi i login con identità SSO attive.`),\n note('info', 'Utente solo SSO', `È l'opzione tipica per gli utenti federati: nessuna password locale, accesso solo dal provider.`),\n ],\n },\n 'user-2fa': {\n title: 'Codice via email (2FA)',\n blocks: [\n p(`Richiede un codice monouso inviato per email dopo la password o dopo il provider SSO. È per-utente e disattivata per impostazione predefinita.`),\n list([\n `Codice a 6 cifre, valido 10 minuti, 5 tentativi, massimo 3 invii.`,\n `Non sono token: fino alla verifica non esiste alcun JWT.`,\n ]),\n ],\n },\n 'user-passwordless': {\n title: 'Accesso con il solo codice email',\n blocks: [\n p(`Abilita il login senza password: si inserisce solo l'email e si usa il codice ricevuto. Richiede il codice email (2FA) attivo.`),\n note('warn', 'Non sono due fattori', `L'accesso con il solo codice è autenticazione tramite possesso della casella email: un solo fattore.`),\n ],\n },\n 'user-default-page': {\n title: 'Pagina di default',\n blocks: [\n p(`Percorso o codice della pagina verso cui indirizzare l'utente dopo il login. Esempio: /dashboard oppure la chiave di una pagina gestita dal frontend.`),\n p(`La console propone in autocomplete tutte le rotte presenti nel catalogo dei menu. Puoi filtrare la lista scrivendo oppure inserire un valore libero.`),\n p(`E una stringa libera (massimo 50 caratteri): la libreria la conserva e la restituisce nel profilo; l'instradamento effettivo lo decide il frontend.`),\n ],\n },\n 'user-cellulare': {\n title: 'Cellulare',\n blocks: [\n p(`Numero di cellulare dell'utente (UTENTI_CONFIG.CELLULARE). È il recapito canonico per SMS o notifiche applicative; Accessi non lo invia da solo.`),\n ],\n },\n 'user-lingua': {\n title: 'Codice lingua',\n blocks: [\n p(`Lingua preferita dell'utente (UTENTI_CONFIG.CODLINGUA). Stringa breve come it, en, sl; viene restituita nel profilo e il frontend decide come usarla.`),\n ],\n },\n 'user-avatar': {\n title: 'Avatar',\n blocks: [\n p(`Riferimento all'avatar (UTENTI_CONFIG.AVATAR, massimo 30 caratteri): tipicamente un nome file o una chiave, non un base64.`),\n ],\n },\n 'user-scadenza-password': {\n title: 'Scadenza password',\n blocks: [\n p(`Data di scadenza della password (UTENTI.DATSCAPWD). Lascia vuoto per non forzare una scadenza; usa una data passata per richiedere il cambio al prossimo login, se la policy è attiva.`),\n ],\n },\n 'user-gdpr': {\n title: 'Consenso GDPR',\n blocks: [\n p(`Lo stato mostra se il consenso è registrato. Il pulsante \"Registra consenso GDPR\" (endpoint set-gdpr) imposta FLGGDPR e DATGDPR e scrive la riga storica in UTENTI_GDPR.`),\n note('info', 'Completo e tracciato', `A differenza del flag impostato a mano, il flusso dedicato registra anche la data e lo storico dell'accettazione.`),\n ],\n },\n 'user-json': {\n title: 'Metadata JSON',\n blocks: [\n p(`Campo libero JSON (UTENTI_CONFIG.JSON_METADATA) per dati applicativi del backend. Deve essere JSON valido se il backend lo interpreta.`),\n ],\n },\n 'user-set-password': {\n title: 'Imposta password',\n blocks: [\n p(`Imposta direttamente una nuova password locale: viene hashata dal backend e la scadenza segue la policy. Nessuna email viene inviata.`),\n p(`Requisiti di sicurezza:`),\n list([\n `Almeno 8 caratteri (massimo 100).`,\n `Almeno una lettera maiuscola e una minuscola.`,\n `Almeno una cifra e un carattere speciale (es. ! ? @ # $ %).`,\n `Nessuno spazio e non deve essere una password comune.`,\n ]),\n note('danger', 'Password non conforme', `Se non rispetta i requisiti l API risponde 400 con codice ACCESSI_WEAK_PASSWORD e l elenco dei requisiti mancanti; la password non viene salvata.`),\n note('warn', 'Sostituisce la password attuale', `L'utente dovrà usare subito la nuova password. Per fargliela scegliere, usa \"Invia reset password\".`),\n ],\n },\n 'user-super': {\n title: 'Superutente (FLGSUPER)',\n blocks: [\n p(`Assegna il flag superutente. Un superutente riceve TUTTE le abilitazioni al livello massimo (30) dopo il login e in console vede solo la sezione Utenti, dove gestisce utenti, ruoli e grant.`),\n note('warn', 'Non è un ruolo', `Il flag non sostituisce i ruoli o i grant: li amplia assegnando ogni menu attivo al livello massimo. Usalo solo per gli amministratori di Accessi.`),\n note('info', 'Chi lo modifica', `Un admin può assegnare o togliere sia Admin sia Superutente; un superutente senza Admin può gestire solo il flag Superutente. La verifica è ripetuta dal backend.`),\n ],\n },\n 'user-admin': {\n title: 'Admin (FLGADMIN)',\n blocks: [\n p(`Assegna il flag admin. Un admin accede a tutta la console (catalogo, token di servizio, SSO e utenti) ma NON conferisce abilitazioni: i menu restano quelli assegnati via ABILITAZIONI e RUOLI_MNU.`),\n note('info', 'Può gestire i flag', `Un admin può assegnare o togliere sia il flag Admin sia il flag Superutente. Un superutente senza Admin non può modificare il flag Admin.`),\n ],\n },\n 'user-state': {\n title: 'Stato di registrazione',\n blocks: [\n table(\n ['Stato', 'Significato'],\n [\n ['Non definito / Inserito', 'Utente non confermato.'],\n ['Invitato (10)', 'Richiede il rinnovo della password.'],\n ['Confermato (20)', 'Utente valido, può accedere.'],\n ['Eliminato (50)', 'Soft delete: login bloccato.'],\n ['Bloccato (99)', 'Login bloccato.'],\n ],\n ),\n ],\n },\n\n // ------------------------------------------------------------------ ruoli\n 'role-description': {\n title: 'Descrizione del ruolo',\n blocks: [\n p(`Nome del ruolo (per esempio \"Gestore ordini\"). Deve avere almeno un menu selezionato: il salvataggio sostituisce integralmente i menu del ruolo.`),\n ],\n },\n 'role-level': {\n title: 'Livello di abilitazione',\n blocks: [\n table(\n ['Livello', 'Valore', 'Uso tipico'],\n [\n ['Lettura', '10', 'Sola consultazione.'],\n ['Scrittura', '20', 'Modifica dei dati.'],\n ['Legacy (30)', '30', 'Valore storico, mantenuto senza perdita.'],\n ],\n ),\n p(`Il controllo confronta tipoAbilitazione >= soglia: un livello 20 soddisfa anche una richiesta di livello 10.`),\n ],\n },\n\n // --------------------------------------------------------- catalogo menu\n 'menu-code': {\n title: 'Codice menu',\n blocks: [\n p(`Chiave tecnica del menu, stabile e senza spazi (per esempio ORDINI o MNU001). È la chiave primaria: non si modifica dopo la creazione.`),\n note('warn', 'Immutabile', `Il codice è referenziato da ruoli e grant: per cambiarlo, elimina e ricrea il menu.`),\n ],\n },\n 'menu-group-code': {\n title: 'Codice gruppo',\n blocks: [\n p(`Un solo carattere (per esempio A). Raggruppa i menu nella navigazione. Immutabile dopo la creazione.`),\n ],\n },\n 'menu-type-code': {\n title: 'Codice tipo menu',\n blocks: [\n p(`Un solo carattere (per esempio X). Classifica i menu (amministrazione, operativo, ...). Immutabile dopo la creazione.`),\n ],\n },\n 'menu-group-order': {\n title: 'Ordine del gruppo',\n blocks: [\n p(`Numero che determina l'ordine dei gruppi nella navigazione: valori più bassi compaiono prima.`),\n ],\n },\n 'menu-order': {\n title: 'Ordine del menu',\n blocks: [\n p(`Numero che determina l'ordine dei menu all'interno del gruppo: valori più bassi compaiono prima.`),\n ],\n },\n 'menu-page': {\n title: 'Pagina',\n blocks: [\n p(`Percorso o nome della pagina del frontend associata al menu (per esempio /ordini). È informativo: lo usano la UI host e i client.`),\n ],\n },\n 'menu-icon': {\n title: 'Icona',\n blocks: [\n p(`Identificatore dell'icona usato dalla UI host (per esempio fa-box o un nome concordato). Accessi non impone un set di icone.`),\n ],\n },\n 'menu-rifmenu': {\n title: 'Menu di riferimento',\n blocks: [\n p(`Codice di un altro menu che fa da padre, per costruire gerarchie di menu. Lascia vuoto per un menu di primo livello.`),\n ],\n },\n 'menu-note': {\n title: 'Nota',\n blocks: [\n p(`Nota descrittiva mostrata agli amministratori. Non incide sui permessi.`),\n ],\n },\n 'menu-enabled': {\n title: 'Menu abilitato',\n blocks: [\n p(`Se disattivato, il menu non compare nel catalogo attivo e non viene considerato nel calcolo dei grant. I collegamenti a ruoli e utenti restano.`),\n ],\n },\n 'menu-group-enabled': {\n title: 'Gruppo abilitato',\n blocks: [\n p(`Disattiva l'intero gruppo: i menu al suo interno non sono considerati attivi, ma restano configurabili per una riattivazione futura.`),\n ],\n },\n\n // ------------------------------------------------------------ assegnazioni\n 'role-assignment': {\n title: 'Assegnazione dei ruoli',\n blocks: [\n p(`Il salvataggio SOSTITUISCE integralmente i ruoli dell'utente: la lista selezionata diventa l'unico set di ruoli.`),\n list([\n `Per aggiungere un ruolo, selezionalo mantenendo quelli già presenti.`,\n `Per rimuovere un ruolo, deselezionalo.`,\n `Non modificare i grant diretti: quelli si gestiscono nella scheda \"Grant diretti\".`,\n ]),\n note('warn', 'Non è incrementale', `Inviare solo il nuovo ruolo rimuove gli altri. Invia sempre la lista completa desiderata.`),\n ],\n },\n 'grant-direct': {\n title: 'Grant diretti',\n blocks: [\n p(`Permessi assegnati direttamente all'utente, indipendenti dai ruoli. Hanno precedenza sui permessi ereditati dai ruoli per lo stesso menu.`),\n list([\n `Imposta il livello per concedere l'accesso.`,\n `Scegli \"nessuno\" per rimuovere il grant diretto.`,\n `Il salvataggio sostituisce l'intero set di grant diretti.`,\n ]),\n ],\n },\n 'grant-level': {\n title: 'Livello di grant',\n blocks: [\n table(\n ['Voce', 'Valore', 'Significato'],\n [\n ['nessuno', '—', 'Nessun grant diretto per quel menu (il permesso può arrivare dai ruoli).'],\n ['Lettura', '10', 'Sola consultazione.'],\n ['Scrittura', '20', 'Modifica dei dati.'],\n ],\n ),\n p(`Il confronto è tipoAbilitazione >= soglia richiesta dalla rotta.`),\n ],\n },\n 'user-delete': {\n title: 'Imposta stato eliminato',\n blocks: [\n p(`Esegue un soft delete: imposta lo stato di registrazione a \"Eliminato\" (50). L'utente non può più accedere, ma i dati restano nel database.`),\n note('info', 'Reversibile', `Non è una cancellazione fisica: puoi ripristinare l'utente cambiando lo stato di registrazione.`),\n note('info', 'Chi può farlo', `Sia admin sia superutente possono eseguire il soft delete.`),\n ],\n },\n 'user-delete-permanent': {\n title: 'Elimina definitivamente',\n blocks: [\n p(`Cancella l'utente e tutti i record collegati (configurazione, password, ruoli, abilitazioni, identità SSO, challenge 2FA e GDPR). Operazione irreversibile.`),\n note('danger', 'Non reversibile', `I dati vengono rimossi fisicamente dal database; non è possibile ripristinare l'utente.`),\n note('info', 'Solo admin', `Il pulsante è mostrato e accettato solo per il flag Admin. Un superutente senza Admin può solo flaggare l'utente come eliminato.`),\n ],\n },\n 'user-login-as': {\n title: 'Login as',\n blocks: [\n p(`Genera un accesso temporaneo all'applicazione come l'utente selezionato. Non richiede la password dell'utente e non modifica il suo profilo.`),\n note('danger', 'Il token scade in 5 minuti', `Il token è una credenziale: chiunque ottenga l'URL può usarlo fino alla scadenza per entrare nell'applicazione come l'utente target. Non condividerlo, non salvarlo in log o chat e non incollarlo in documenti.`),\n note('info', 'Chi può usarlo', `Solo superutenti e admin. Vale la gerarchia ADMIN > SUPER: un superutente non può impersonare un admin.`),\n p(`Il token viene aggiunto all'URL scelto come parametro di query loginAsToken. Da quel momento è l'applicazione di destinazione a decidere come validarlo e cosa consentire.`),\n ],\n },\n 'login-as-url': {\n title: 'URL dell applicazione',\n blocks: [\n p(`Inserisci l'indirizzo assoluto dell'applicazione in cui vuoi entrare, per esempio https://app.example.com/dashboard.`),\n p(`Il modulo aggiunge automaticamente ?loginAsToken=<token> conservando le query e il fragment già presenti. Sono ammessi solo URL http e https.`),\n note('warn', 'Nessun controllo sull applicazione', `Accessi non verifica che l'URL appartenga a un ambiente autorizzato: incollalo con attenzione per non inviare il token a un dominio sbagliato.`),\n ],\n },\n\n // ----------------------------------------------------- selezioni di menu\n 'menu-group-select': {\n title: 'Gruppo',\n blocks: [\n p(`Gruppo di appartenenza del menu. Se l'elenco è vuoto, crea prima un gruppo in \"Menu e gruppi → Gruppi\".`),\n ],\n },\n 'menu-type-select': {\n title: 'Tipo menu',\n blocks: [\n p(`Classificazione del menu (amministrazione, operativo, ...). È facoltativa: se non serve, lascia \"Nessun tipo\". I tipi si gestiscono in \"Menu e gruppi → Tipi menu\".`),\n ],\n },\n\n // ------------------------------------------------------------------ login\n 'login-email': {\n title: 'Email o utente',\n blocks: [\n p(`Indirizzo email dell'utente Accessi. Se l'account è abilitato al solo codice, dopo questo passo riceverai un codice via email invece di inserire la password.`),\n ],\n },\n 'login-password': {\n title: 'Password',\n blocks: [\n p(`Password locale dell'utente. Non serve per gli account passwordless, che accedono con il solo codice email.`),\n ],\n },\n};\n"]}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/accessi-module/Console/help.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Contenuti di aiuto contestuale della console Accessi.\n *\n * Ogni voce spiega, in italiano corretto, che cosa inserire in un campo\n * tecnico e da dove prendere il valore. Sono mostrati come miniguida nel\n * tooltip aperto dall'icona \"i\" accanto al campo.\n */\nimport type { WikiBlock } from './wiki';\n\nexport interface HelpEntry {\n title: string;\n blocks: WikiBlock[];\n}\n\nconst p = (text: string): WikiBlock => ({ kind: 'p', text });\nconst list = (items: string[]): WikiBlock => ({ kind: 'list', items });\nconst code = (language: string, codeText: string, title?: string): WikiBlock => ({ kind: 'code', language, title, code: codeText });\nconst note = (tone: 'info' | 'ok' | 'warn' | 'danger', title: string, text: string): WikiBlock => ({ kind: 'callout', tone, title, text });\nconst table = (head: string[], rows: string[][]): WikiBlock => ({ kind: 'table', head, rows });\n\nexport const HELP: Record<string, HelpEntry> = {\n // ------------------------------------------------------------------ SSO\n 'sso-provider': {\n title: 'Provider SSO',\n blocks: [\n p(`La chiave del provider censito in Accessi. Deve coincidere esattamente con quella usata dal backend quando valida il login SSO e chiama FederatedAuthService.authenticate({ provider, subject }).`),\n p(`Se il backend usa la chiave azure-ad-acme-prod, qui va la stessa stringa: una differenza, anche di un carattere, fa fallire il collegamento.`),\n note('info', 'Chi crea il provider', `Prima si censisce il provider in \"SSO → Provider\" (superutente), poi lo si sceglie qui. Se l'elenco è vuoto, non ci sono provider attivi.`),\n ],\n },\n 'sso-subject': {\n title: 'ID utente del provider (subject)',\n blocks: [\n p(`È l'identificatore STABILE della persona nel provider, non l'email. Il backend lo ottiene dopo aver validato il token del provider e lo passa ad Accessi; Accessi non vede mai il token esterno.`),\n p(`Ecco il claim corretto per i provider più comuni:`),\n table(\n ['Provider', 'Claim da usare', 'Note'],\n [\n ['Azure AD / Entra ID', 'oid', 'Object ID. Non usare preferred_username né email.'],\n ['Google', 'sub', 'ID numerico di 21 cifre. Non l indirizzo email.'],\n ['Apple', 'sub', 'Identificatore stabile per la tua app; disponibile solo al primo login, va salvato subito.'],\n ['Okta', 'sub', 'Claim standard OIDC.'],\n ['Auth0', 'sub', 'Formato auth0|... oppure google-oauth2|... .'],\n ['Keycloak', 'sub', 'Claim standard OIDC.'],\n ['Microsoft personale (MSA)', 'sub', 'Account outlook/live.'],\n ['SAML 2.0', 'NameID', 'Identificatore persistente dell utente.'],\n ['OIDC generico', 'sub', 'Claim standard OIDC.'],\n ],\n ),\n note('danger', 'Mai usare l email', `L'email può cambiare e non è un identificatore stabile: usarla come subject crea duplicati e collegamenti errati.`),\n code('ts', [\n '// Nel backend, dopo aver validato il token del provider:',\n '// Azure AD / Entra ID',\n \"const subject = claims.oid;\",\n '// Google / Okta / Keycloak / OIDC generico',\n \"const subject = claims.sub;\",\n '// Apple (disponibile al primo login, salvalo subito)',\n \"const subject = claims.sub;\",\n '// SAML',\n \"const subject = assertion.nameId;\",\n ].join('\\n'), 'Come ricavare il subject'),\n ],\n },\n 'sso-note': {\n title: 'Nota',\n blocks: [\n p(`Nota interna per gli amministratori, utile a ricordare perché il collegamento esiste (per esempio \"migrato da AD il 2026-01-10\"). Non viene inviata al provider.`),\n ],\n },\n 'provider-key': {\n title: 'Chiave provider',\n blocks: [\n p(`Identificativo tecnico del provider, usato dal backend nel payload SSO. Scegli una chiave descrittiva e stabile, per esempio azure-ad-acme-prod o google-workspace-acme.`),\n note('warn', 'Immutabile', `Dopo il censimento la chiave non si modifica: identità e configurazione del backend la referenziano. Se serve cambiarla, disabilita il provider e creane uno nuovo.`),\n ],\n },\n 'provider-description': {\n title: 'Descrizione',\n blocks: [\n p(`Nome leggibile mostrato agli amministratori (per esempio \"Azure AD – Acme produzione\"). Non è la chiave tecnica: può contenere spazi.`),\n ],\n },\n 'provider-note': {\n title: 'Nota',\n blocks: [\n p(`Nota interna del catalogo. Non inserire segreti, issuer, client id o dati personali: quei valori restano nel backend.`),\n ],\n },\n 'provider-active': {\n title: 'Provider attivo',\n blocks: [\n p(`Se disattivato, il provider non accetta nuovi login e nuovi collegamenti; le identità e lo storico restano. Riattivalo quando il backend è pronto.`),\n ],\n },\n\n // --------------------------------------------------------- service token\n 'token-label': {\n title: 'Descrizione del token',\n blocks: [\n p(`Nome del token, mostrato agli amministratori (per esempio \"Integrazione IA – produzione\"). Non è un segreto.`),\n ],\n },\n 'token-scopes': {\n title: 'Scope',\n blocks: [\n p(`Etichette che il backend controlla per autorizzare le chiamate tecniche. Un token non è un superutente: abilita solo le rotte protette con ServiceTokenGuard e @RequireServiceTokenScopes.`),\n list([\n `Formato: lettere, numeri, ':', '_' o '-', massimo 40 caratteri.`,\n `Esempi: ia, chat, tools, report:read.`,\n `Separa gli scope con una virgola.`,\n ]),\n code('ts', [\n '@UseGuards(ServiceTokenGuard)',\n \"@RequireServiceTokenScopes('ia')\",\n '@Post(\"internal/ask\")',\n 'ask() { /* il token deve avere lo scope ia */ }',\n ].join('\\n'), 'Come li usa il backend'),\n note('warn', 'Scope vuoto', `Senza scope il token non soddisfa nessun @RequireServiceTokenScopes, ma passa comunque le rotte protette senza scope richiesto.`),\n ],\n },\n 'token-ttl': {\n title: 'Durata (giorni)',\n blocks: [\n p(`Giorni di validità del token. Alla scadenza il token smette di funzionare.`),\n note('danger', 'Nessuna scadenza', `Se lasci vuoto questo campo e non imposti una data, il token non scade mai: sconsigliato in produzione.`),\n ],\n },\n\n // ----------------------------------------------------------------- utenti\n 'user-email': {\n title: 'Email',\n blocks: [\n p(`Identificativo di accesso dell'utente e recapito per le email di reset o codici. Deve essere univoca.`),\n ],\n },\n 'user-name': {\n title: 'Nome e cognome',\n blocks: [\n p(`Dati anagrafici mostrati in console e restituiti nel profilo. Non incidono sull'autenticazione.`),\n ],\n },\n 'user-password-login': {\n title: 'Login con password',\n blocks: [\n p(`Se disattivato, il login con email e password viene rifiutato (PASSWORD_LOGIN_DISABLED). Restano validi i login con identità SSO attive.`),\n note('info', 'Utente solo SSO', `È l'opzione tipica per gli utenti federati: nessuna password locale, accesso solo dal provider.`),\n ],\n },\n 'user-2fa': {\n title: 'Codice via email (2FA)',\n blocks: [\n p(`Richiede un codice monouso inviato per email dopo la password o dopo il provider SSO. È per-utente e disattivata per impostazione predefinita.`),\n list([\n `Codice a 6 cifre, valido 10 minuti, 5 tentativi, massimo 3 invii.`,\n `Non sono token: fino alla verifica non esiste alcun JWT.`,\n ]),\n ],\n },\n 'user-passwordless': {\n title: 'Accesso con il solo codice email',\n blocks: [\n p(`Abilita il login senza password: si inserisce solo l'email e si usa il codice ricevuto. Richiede il codice email (2FA) attivo.`),\n note('warn', 'Non sono due fattori', `L'accesso con il solo codice è autenticazione tramite possesso della casella email: un solo fattore.`),\n ],\n },\n 'user-default-page': {\n title: 'Pagina di default',\n blocks: [\n p(`Percorso o codice della pagina verso cui indirizzare l'utente dopo il login. Esempio: /dashboard oppure la chiave di una pagina gestita dal frontend.`),\n p(`La console propone in autocomplete tutte le rotte presenti nel catalogo dei menu. Puoi filtrare la lista scrivendo oppure inserire un valore libero.`),\n p(`E una stringa libera (massimo 50 caratteri): la libreria la conserva e la restituisce nel profilo; l'instradamento effettivo lo decide il frontend.`),\n ],\n },\n 'user-cellulare': {\n title: 'Cellulare',\n blocks: [\n p(`Numero di cellulare dell'utente (UTENTI_CONFIG.CELLULARE). È il recapito canonico per SMS o notifiche applicative; Accessi non lo invia da solo.`),\n ],\n },\n 'user-lingua': {\n title: 'Codice lingua',\n blocks: [\n p(`Lingua preferita dell'utente (UTENTI_CONFIG.CODLINGUA). Stringa breve come it, en, sl; viene restituita nel profilo e il frontend decide come usarla.`),\n ],\n },\n 'user-avatar': {\n title: 'Avatar',\n blocks: [\n p(`Riferimento all'avatar (UTENTI_CONFIG.AVATAR, massimo 30 caratteri): tipicamente un nome file o una chiave, non un base64.`),\n ],\n },\n 'user-scadenza-password': {\n title: 'Scadenza password',\n blocks: [\n p(`Data di scadenza della password (UTENTI.DATSCAPWD). Lascia vuoto per non forzare una scadenza; usa una data passata per richiedere il cambio al prossimo login, se la policy è attiva.`),\n ],\n },\n 'user-gdpr': {\n title: 'Consenso GDPR',\n blocks: [\n p(`Lo stato mostra se il consenso è registrato. Il pulsante \"Registra consenso GDPR\" (endpoint set-gdpr) imposta FLGGDPR e DATGDPR e scrive la riga storica in UTENTI_GDPR.`),\n note('info', 'Completo e tracciato', `A differenza del flag impostato a mano, il flusso dedicato registra anche la data e lo storico dell'accettazione.`),\n ],\n },\n 'user-json': {\n title: 'Metadata JSON',\n blocks: [\n p(`Campo libero JSON (UTENTI_CONFIG.JSON_METADATA) per dati applicativi del backend. Deve essere JSON valido se il backend lo interpreta.`),\n ],\n },\n 'user-set-password': {\n title: 'Imposta password',\n blocks: [\n p(`Imposta direttamente una nuova password locale: viene hashata dal backend e la scadenza segue la policy. Nessuna email viene inviata.`),\n p(`Requisiti di sicurezza:`),\n list([\n `Almeno 8 caratteri (massimo 100).`,\n `Almeno una lettera maiuscola e una minuscola.`,\n `Almeno una cifra e un carattere speciale (es. ! ? @ # $ %).`,\n `Nessuno spazio e non deve essere una password comune.`,\n ]),\n note('danger', 'Password non conforme', `Se non rispetta i requisiti l API risponde 400 con codice ACCESSI_WEAK_PASSWORD e l elenco dei requisiti mancanti; la password non viene salvata.`),\n note('warn', 'Sostituisce la password attuale', `L'utente dovrà usare subito la nuova password. Per fargliela scegliere, usa \"Invia reset password\".`),\n ],\n },\n 'user-super': {\n title: 'Superutente (FLGSUPER)',\n blocks: [\n p(`Assegna il flag superutente. Un superutente riceve TUTTE le abilitazioni al livello massimo (30) dopo il login e in console vede solo la sezione Utenti, dove gestisce utenti, ruoli e grant.`),\n note('warn', 'Non è un ruolo', `Il flag non sostituisce i ruoli o i grant: li amplia assegnando ogni menu attivo al livello massimo. Usalo solo per gli amministratori di Accessi.`),\n note('info', 'Chi lo modifica', `Un admin può assegnare o togliere sia Admin sia Superutente; un superutente senza Admin può gestire solo il flag Superutente. La verifica è ripetuta dal backend.`),\n ],\n },\n 'user-admin': {\n title: 'Admin (FLGADMIN)',\n blocks: [\n p(`Assegna il flag admin. Un admin accede a tutta la console (catalogo, token di servizio, SSO e utenti) ma NON conferisce abilitazioni: i menu restano quelli assegnati via ABILITAZIONI e RUOLI_MNU.`),\n note('info', 'Può gestire i flag', `Un admin può assegnare o togliere sia il flag Admin sia il flag Superutente. Un superutente senza Admin non può modificare il flag Admin.`),\n ],\n },\n 'user-state': {\n title: 'Stato di registrazione',\n blocks: [\n table(\n ['Stato', 'Significato'],\n [\n ['Non definito / Inserito', 'Utente non confermato.'],\n ['Invitato (10)', 'Richiede il rinnovo della password.'],\n ['Confermato (20)', 'Utente valido, può accedere.'],\n ['Eliminato (50)', 'Soft delete: login bloccato.'],\n ['Bloccato (99)', 'Login bloccato.'],\n ],\n ),\n ],\n },\n\n // ------------------------------------------------------------------ ruoli\n 'role-description': {\n title: 'Descrizione del ruolo',\n blocks: [\n p(`Nome del ruolo (per esempio \"Gestore ordini\"). Deve avere almeno un menu selezionato: il salvataggio sostituisce integralmente i menu del ruolo.`),\n ],\n },\n 'role-level': {\n title: 'Livello di abilitazione',\n blocks: [\n table(\n ['Livello', 'Valore', 'Uso tipico'],\n [\n ['Lettura', '10', 'Sola consultazione.'],\n ['Scrittura', '20', 'Modifica dei dati.'],\n ['Legacy (30)', '30', 'Valore storico, mantenuto senza perdita.'],\n ],\n ),\n p(`Il controllo confronta tipoAbilitazione >= soglia: un livello 20 soddisfa anche una richiesta di livello 10.`),\n ],\n },\n\n // --------------------------------------------------------- catalogo menu\n 'menu-code': {\n title: 'Codice menu',\n blocks: [\n p(`Chiave tecnica del menu, stabile e senza spazi (per esempio ORDINI o MNU001). È la chiave primaria: non si modifica dopo la creazione.`),\n note('warn', 'Immutabile', `Il codice è referenziato da ruoli e grant: per cambiarlo, elimina e ricrea il menu.`),\n ],\n },\n 'menu-group-code': {\n title: 'Codice gruppo',\n blocks: [\n p(`Un solo carattere (per esempio A). Raggruppa i menu nella navigazione. Immutabile dopo la creazione.`),\n ],\n },\n 'menu-type-code': {\n title: 'Codice tipo menu',\n blocks: [\n p(`Un solo carattere (per esempio X). Classifica i menu (amministrazione, operativo, ...). Immutabile dopo la creazione.`),\n ],\n },\n 'menu-group-order': {\n title: 'Ordine del gruppo',\n blocks: [\n p(`Numero che determina l'ordine dei gruppi nella navigazione: valori più bassi compaiono prima.`),\n ],\n },\n 'menu-order': {\n title: 'Ordine del menu',\n blocks: [\n p(`Numero che determina l'ordine dei menu all'interno del gruppo: valori più bassi compaiono prima.`),\n ],\n },\n 'menu-page': {\n title: 'Pagina',\n blocks: [\n p(`Percorso o nome della pagina del frontend associata al menu (per esempio /ordini). È informativo: lo usano la UI host e i client.`),\n ],\n },\n 'menu-icon': {\n title: 'Icona',\n blocks: [\n p(`Identificatore dell'icona usato dalla UI host (per esempio fa-box o un nome concordato). Accessi non impone un set di icone.`),\n ],\n },\n 'menu-rifmenu': {\n title: 'Menu di riferimento',\n blocks: [\n p(`Codice di un altro menu che fa da padre, per costruire gerarchie di menu. Lascia vuoto per un menu di primo livello.`),\n ],\n },\n 'menu-note': {\n title: 'Nota',\n blocks: [\n p(`Nota descrittiva mostrata agli amministratori. Non incide sui permessi.`),\n ],\n },\n 'menu-enabled': {\n title: 'Menu abilitato',\n blocks: [\n p(`Se disattivato, il menu non compare nel catalogo attivo e non viene considerato nel calcolo dei grant. I collegamenti a ruoli e utenti restano.`),\n ],\n },\n 'menu-group-enabled': {\n title: 'Gruppo abilitato',\n blocks: [\n p(`Disattiva l'intero gruppo: i menu al suo interno non sono considerati attivi, ma restano configurabili per una riattivazione futura.`),\n ],\n },\n\n // ------------------------------------------------------------ assegnazioni\n 'role-assignment': {\n title: 'Assegnazione dei ruoli',\n blocks: [\n p(`Il salvataggio SOSTITUISCE integralmente i ruoli dell'utente: la lista selezionata diventa l'unico set di ruoli.`),\n list([\n `Per aggiungere un ruolo, selezionalo mantenendo quelli già presenti.`,\n `Per rimuovere un ruolo, deselezionalo.`,\n `Non modificare i grant diretti: quelli si gestiscono nella scheda \"Grant diretti\".`,\n ]),\n note('warn', 'Non è incrementale', `Inviare solo il nuovo ruolo rimuove gli altri. Invia sempre la lista completa desiderata.`),\n ],\n },\n 'grant-direct': {\n title: 'Grant diretti',\n blocks: [\n p(`Permessi assegnati direttamente all'utente, indipendenti dai ruoli. Hanno precedenza sui permessi ereditati dai ruoli per lo stesso menu.`),\n list([\n `Imposta il livello per concedere l'accesso.`,\n `Scegli \"nessuno\" per rimuovere il grant diretto.`,\n `Il salvataggio sostituisce l'intero set di grant diretti.`,\n ]),\n ],\n },\n 'grant-level': {\n title: 'Livello di grant',\n blocks: [\n table(\n ['Voce', 'Valore', 'Significato'],\n [\n ['nessuno', '—', 'Nessun grant diretto per quel menu (il permesso può arrivare dai ruoli).'],\n ['Lettura', '10', 'Sola consultazione.'],\n ['Scrittura', '20', 'Modifica dei dati.'],\n ],\n ),\n p(`Il confronto è tipoAbilitazione >= soglia richiesta dalla rotta.`),\n ],\n },\n 'user-delete': {\n title: 'Imposta stato eliminato',\n blocks: [\n p(`Esegue un soft delete: imposta lo stato di registrazione a \"Eliminato\" (50). L'utente non può più accedere, ma i dati restano nel database.`),\n note('info', 'Reversibile', `Non è una cancellazione fisica: puoi ripristinare l'utente cambiando lo stato di registrazione.`),\n note('info', 'Chi può farlo', `Sia admin sia superutente possono eseguire il soft delete.`),\n ],\n },\n 'user-delete-permanent': {\n title: 'Elimina definitivamente',\n blocks: [\n p(`Cancella l'utente e tutti i record collegati (configurazione, password, ruoli, abilitazioni, identità SSO, challenge 2FA e GDPR). Operazione irreversibile.`),\n note('danger', 'Non reversibile', `I dati vengono rimossi fisicamente dal database; non è possibile ripristinare l'utente.`),\n note('info', 'Solo admin', `Il pulsante è mostrato e accettato solo per il flag Admin. Un superutente senza Admin può solo flaggare l'utente come eliminato.`),\n ],\n },\n 'user-login-as': {\n title: 'Login as',\n blocks: [\n p(`Genera un accesso temporaneo all'applicazione come l'utente selezionato. Non richiede la password dell'utente e non modifica il suo profilo.`),\n note('danger', 'La durata è quella standard', `Il token dura quanto la sessione Accessi standard (jwtOptions.expiresIn). È una credenziale: chiunque ottenga l'URL può usarlo fino alla scadenza per entrare nell'applicazione come l'utente target. Non condividerlo, non salvarlo in log o chat e non incollarlo in documenti.`),\n note('info', 'Chi può usarlo', `Solo superutenti e admin. Vale la gerarchia ADMIN > SUPER: un superutente non può impersonare un admin.`),\n p(`Il token viene aggiunto all'URL scelto come parametro di query loginAsToken. Da quel momento è l'applicazione di destinazione a decidere come validarlo e cosa consentire.`),\n ],\n },\n 'login-as-url': {\n title: 'URL dell applicazione',\n blocks: [\n p(`Inserisci l'indirizzo assoluto dell'applicazione in cui vuoi entrare, per esempio https://app.example.com/dashboard.`),\n p(`Il modulo aggiunge automaticamente ?loginAsToken=<token> conservando le query e il fragment già presenti. Sono ammessi solo URL http e https.`),\n note('warn', 'Nessun controllo sull applicazione', `Accessi non verifica che l'URL appartenga a un ambiente autorizzato: incollalo con attenzione per non inviare il token a un dominio sbagliato.`),\n ],\n },\n\n // ----------------------------------------------------- selezioni di menu\n 'menu-group-select': {\n title: 'Gruppo',\n blocks: [\n p(`Gruppo di appartenenza del menu. Se l'elenco è vuoto, crea prima un gruppo in \"Menu e gruppi → Gruppi\".`),\n ],\n },\n 'menu-type-select': {\n title: 'Tipo menu',\n blocks: [\n p(`Classificazione del menu (amministrazione, operativo, ...). È facoltativa: se non serve, lascia \"Nessun tipo\". I tipi si gestiscono in \"Menu e gruppi → Tipi menu\".`),\n ],\n },\n\n // ------------------------------------------------------------------ login\n 'login-email': {\n title: 'Email o utente',\n blocks: [\n p(`Indirizzo email dell'utente Accessi. Se l'account è abilitato al solo codice, dopo questo passo riceverai un codice via email invece di inserire la password.`),\n ],\n },\n 'login-password': {\n title: 'Password',\n blocks: [\n p(`Password locale dell'utente. Non serve per gli account passwordless, che accedono con il solo codice email.`),\n ],\n },\n};\n"]}
@@ -604,8 +604,8 @@ exports.WIKI_SECTIONS = [
604
604
  blocks: [
605
605
  p(`Dalla lista utenti della console il pulsante Login as apre il pannello dedicato: inserisci l'URL dell'applicazione e premi "Genera URL di accesso". Accessi emette un JWT per l'utente target e lo allega all'URL come query parameter \`loginAsToken\`.`),
606
606
  code('http', `POST /api/accessi/user/login-as/:codiceUtente\nContent-Type: application/json\nAuthorization: Bearer <jwt amministratore>\n\n{ "url": "https://app.example.com/dashboard" }`, 'Richiesta'),
607
- code('json', `{\n "Result": {\n "loginUrl": "https://app.example.com/dashboard?loginAsToken=eyJ...",\n "token": "eyJ...",\n "expiresInSeconds": 300,\n "expiresAt": "2026-10-23T14:05:00.000Z"\n }\n}`, 'Risposta'),
608
- note('danger', `Il token dura 5 minuti`, `Il token è una credenziale: chiunque abbia l'URL può usarlo fino alla scadenza per entrare nell'applicazione come l'utente target. Non condividerlo, non salvarlo in log o documenti e non usarlo in produzione per operazioni distruttive.`),
607
+ code('json', `{\n "Result": {\n "loginUrl": "https://app.example.com/dashboard?loginAsToken=eyJ...",\n "token": "eyJ...",\n "expiresInSeconds": 86400,\n "expiresAt": "2026-10-24T14:05:00.000Z"\n }\n}`, 'Risposta'),
608
+ note('danger', `La durata è quella standard`, `Il token dura quanto la sessione Accessi standard (jwtOptions.expiresIn). È una credenziale: chiunque abbia l'URL può usarlo fino alla scadenza per entrare nell'applicazione come l'utente target. Non condividerlo, non salvarlo in log o documenti e non usarlo in produzione per operazioni distruttive.`),
609
609
  note('info', `Chi può generarlo`, `Solo utenti con FLGSUPER o FLGADMIN. Vale la stessa gerarchia della gestione utenti: un superutente non può impersonare un admin; un admin può impersonare chiunque. Il tentativo non consentito restituisce 403.`),
610
610
  note('warn', `Responsabilità dell applicazione`, `Accessi non controlla l'URL di destinazione né consuma il token al posto dell'applicazione. L'app deve leggere \`loginAsToken\`, validarlo (per esempio con \`POST /api/accessi/auth/get-user-by-token\` o \`authorizeAccessi\`) e decidere cosa consentire. Il token è un access token Accessi a tutti gli effetti, con claim \`loginAs: true\`, \`amr: ["login_as"]\` e \`act\` valorizzato con l'attore.`),
611
611
  p(`Il token viene emesso anche per utenti con 2FA attiva: l'attore ha già completato l'autenticazione amministrativa. Non usare questa funzione per aggirare la 2FA di un utente comune al di fuori di un intervento amministrativo autorizzato.`),