alfenory-authv2-ui 0.0.21 → 0.0.22
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.
|
@@ -421,7 +421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
421
421
|
|
|
422
422
|
class UsergroupAttributesService extends BasicProviderAlfenoryAuthV2 {
|
|
423
423
|
get url() {
|
|
424
|
-
return `${this.basicUrlAuthUrl}/${this.localstorage.getUsergroupId()}/attributes`;
|
|
424
|
+
return `${this.basicUrlAuthUrl}/usergroup/${this.localstorage.getUsergroupId()}/attributes`;
|
|
425
425
|
}
|
|
426
426
|
urlWithId(id) {
|
|
427
427
|
return `${this.url}/${id}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alfenory-authv2-ui.mjs","sources":["../../../projects/alfenoryauthv2-ui/src/lib/models/basic.model.ts","../../../projects/alfenoryauthv2-ui/src/lib/models/localstorage-keys.model.ts","../../../projects/alfenoryauthv2-ui/src/lib/models/get-filter-query-relation.enum.ts","../../../projects/alfenoryauthv2-ui/src/lib/models/usergroup-attribute.model.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/connection.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/basic-localstorage.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/localstorage.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/auth.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/authstore/auth.store.ts","../../../projects/alfenoryauthv2-ui/src/lib/authguard/authgard.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/login/login.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/login/login.html","../../../projects/alfenoryauthv2-ui/src/lib/components/logout/logout.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/logout/logout.html","../../../projects/alfenoryauthv2-ui/src/lib/providers/basic-provider.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/basic-provider-alfenoryauthv2.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/usergroup-attributes.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/switch-membership/switch-membership.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/switch-membership/switch-membership.html","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-basic.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-field-base.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-textfield.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-number.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-textarea.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-select.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-list-detail.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-list.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes.ts","../../../projects/alfenoryauthv2-ui/src/lib/directive/hideifnopriv.directive.ts","../../../projects/alfenoryauthv2-ui/src/alfenory-authv2-ui.ts"],"sourcesContent":["import { HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport const API_URL = new InjectionToken<string>('API_URL');\r\n\r\nexport type HttpHeaderOptionList = Record<string, string | string[]>;\r\n\r\nexport interface HttpHeaderOptions {\r\n headers?: HttpHeaders | HttpHeaderOptionList;\r\n observe?: 'body';\r\n params?: HttpParams | HttpHeaderOptionList;\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n};\r\n\r\nexport interface BasicModel {\r\n id: string;\r\n}\r\n\r\nexport interface BasicResponse {\r\n success: boolean;\r\n}\r\n\r\nexport interface BasicDataResponse<T> {\r\n data: T;\r\n}\r\n\r\nexport interface BasicResponseExtended extends BasicResponse {\r\n didRequest: boolean;\r\n error: string;\r\n}\r\n","export enum LocalStorageKeys {\r\n userId = 'AUTH_USER_ID',\r\n authToken = 'AUTH_TOKEN',\r\n memberships = 'AUTH_MEMBERSHIPS',\r\n currentMembership = 'AUTH_CURRENT_MEMBERSHIP',\r\n privileges = 'AUTH_PRIVILEGES',\r\n usergroupId = 'AUTH_USERGROUP_ID',\r\n}\r\n","export enum GetFilterQueryRelation\r\n{\r\n eq = 'eq',\r\n contains = 'contains',\r\n in = 'in',\r\n gt = 'gt'\r\n}","import { BasicModel } from './basic.model';\r\n\r\nexport interface UsergroupAttribute extends BasicModel {\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport enum UsergroupAttributeEditType {\r\n InputNumber = 1,\r\n InputString = 2,\r\n InputArea = 3,\r\n selectTypes = 4,\r\n}\r\n\r\n// Basis-Eigenschaften, die immer vorhanden sind\r\ninterface BaseType {\r\n key: string;\r\n}\r\n\r\ninterface SelectMapping extends BaseType {\r\n editType: UsergroupAttributeEditType.selectTypes;\r\n selectableValues: string[];\r\n}\r\n\r\ninterface StandardMapping extends BaseType {\r\n editType: Exclude<UsergroupAttributeEditType, UsergroupAttributeEditType.selectTypes>;\r\n}\r\n\r\nexport type UsergroupAttributeEditTypeMapping = SelectMapping | StandardMapping;\r\n\r\nexport interface UsergroupAttributeWithType extends UsergroupAttribute {\r\n typeMapping: UsergroupAttributeEditTypeMapping;\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from 'rxjs';\r\nimport { API_URL, HttpHeaderOptions } from \"../models\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConnectionService {\r\n\r\n private http = inject(HttpClient);\r\n private apiUrl = inject(API_URL);\r\n\r\n get<T>(\r\n customUrl: string, \r\n options?: HttpHeaderOptions\r\n ): Observable<T> {\r\n return this.http.get<T>(\r\n this.getURL(customUrl),\r\n options\r\n );\r\n }\r\n\r\n post<T>(\r\n customUrl: string, \r\n body: object | null, \r\n options?: HttpHeaderOptions\r\n ): Observable<T> {\r\n return this.http.post<T>(\r\n this.getURL(customUrl), \r\n body, \r\n options\r\n );\r\n }\r\n\r\n patch<T>(\r\n customUrl: string, \r\n body: object | null, \r\n options?: HttpHeaderOptions\r\n ): Observable<T> {\r\n return this.http.patch<T>(\r\n this.getURL(customUrl), \r\n body, \r\n options\r\n );\r\n }\r\n\r\n delete<T>(\r\n customUrl: string, \r\n options?: HttpHeaderOptions\r\n ): Observable<T> {\r\n return this.http.delete<T>(\r\n this.getURL(customUrl), \r\n options\r\n );\r\n }\r\n\r\n private getURL(customUrl: string): string {\r\n return `${this.apiUrl}/${customUrl}`;\r\n }\r\n} \r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BasicLocalStorageService {\r\n setString(key: string, value: string) {\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n setNumber(key: string, value: number) {\r\n localStorage.setItem(key, value.toString());\r\n }\r\n\r\n setJson(key: string, value: object) {\r\n this.setString(key, JSON.stringify(value));\r\n }\r\n\r\n getString(key: string): string | null {\r\n return localStorage.getItem(key);\r\n }\r\n\r\n getNumber(key: string, defaultValue?: string): number {\r\n return parseInt(this.getString(key) ?? defaultValue ?? '0');\r\n }\r\n\r\n getJson(key: string, defaultValue: object) {\r\n const resp = localStorage.getItem(key) as string;\r\n if (resp === undefined || resp === null) {\r\n return defaultValue;\r\n }\r\n try {\r\n return JSON.parse(resp);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n return defaultValue;\r\n }\r\n\r\n removeKey(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n}\r\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpHeaderOptions, LocalStorageKeys } from '../models';\r\nimport { BasicLocalStorageService } from './basic-localstorage.service';\r\nimport { Membership } from '../models/auth.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LocalStorageService extends BasicLocalStorageService {\r\n public getAuthToken(): string | null {\r\n return this.getString(LocalStorageKeys.authToken);\r\n }\r\n\r\n public setAuthToken(token: string) {\r\n this.setString(LocalStorageKeys.authToken, token);\r\n }\r\n\r\n public getUserId(): string | null {\r\n return this.getString(LocalStorageKeys.userId);\r\n }\r\n\r\n public setUserId(userId: string) {\r\n this.setString(LocalStorageKeys.userId, userId);\r\n }\r\n\r\n public getUsergroupId(): string | null {\r\n return this.getString(LocalStorageKeys.usergroupId);\r\n }\r\n\r\n public setUsergroupId(usergroupId: string): void {\r\n this.setString(LocalStorageKeys.usergroupId, usergroupId);\r\n }\r\n\r\n public setMemberships(memberships: Membership[]): void {\r\n this.setJson(LocalStorageKeys.memberships, memberships);\r\n }\r\n\r\n public getMemberships(): Membership[] | null {\r\n return this.getJson(LocalStorageKeys.memberships, []);\r\n }\r\n\r\n public setPrivs(privs: string[]) {\r\n this.setJson(LocalStorageKeys.privileges, privs);\r\n }\r\n\r\n public getPrivs(): string[] | null {\r\n return this.getJson(LocalStorageKeys.privileges, []);\r\n }\r\n\r\n public setCurrentMembershipId(membershipId: string): void {\r\n this.setString(LocalStorageKeys.currentMembership, membershipId);\r\n }\r\n\r\n public getCurrentMembershipId(): string | null {\r\n return this.getString(LocalStorageKeys.currentMembership);\r\n }\r\n\r\n public getHeaderWithAuth(): HttpHeaderOptions {\r\n let headers = new HttpHeaders();\r\n if (this.getAuthToken()) {\r\n headers = headers.set('Authorization', 'Bearer ' + this.getAuthToken());\r\n }\r\n const params = new HttpParams();\r\n return { headers, params };\r\n }\r\n\r\n public removeAll() {\r\n this.removeKey(LocalStorageKeys.userId);\r\n this.removeKey(LocalStorageKeys.authToken);\r\n this.removeKey(LocalStorageKeys.privileges);\r\n this.removeKey(LocalStorageKeys.memberships);\r\n this.removeKey(LocalStorageKeys.currentMembership);\r\n this.removeKey(LocalStorageKeys.usergroupId);\r\n }\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { BasicResponse } from \"../models\";\r\nimport { catchError, Observable, of } from \"rxjs\";\r\nimport { ConnectionService } from \"./connection.service\";\r\nimport { LocalStorageService } from \"./localstorage.service\";\r\nimport { LoginResponse, MembershipResponse, OwnPrivilegResponse } from \"../models/auth.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n public localstorageService = inject(LocalStorageService);\r\n public connectionService = inject(ConnectionService);\r\n\r\n checkIfValid(): Observable<BasicResponse> {\r\n return this.connectionService.post<BasicResponse>( \r\n 'v1/auth/users/checkvalidsession',\r\n {},\r\n this.localstorageService.getHeaderWithAuth()\r\n ).pipe(\r\n catchError(() => {\r\n return of({success:false});\r\n })\r\n );\r\n }\r\n\r\n doLogin(username: string, password: string): Observable<LoginResponse> {\r\n return this.connectionService.post<LoginResponse>(\r\n 'v1/auth/users/login', \r\n { username: username, password: password}\r\n ).pipe(\r\n catchError(() => {\r\n return of({success:false});\r\n })\r\n );\r\n }\r\n\r\n doLogout(): Observable<BasicResponse> {\r\n return this.connectionService.get<BasicResponse>(\r\n 'v1/auth/users/logout',\r\n this.localstorageService.getHeaderWithAuth()\r\n ); \r\n }\r\n\r\n getPrivsForMembership(membershipId: string): Observable<OwnPrivilegResponse> {\r\n return this.connectionService.get<OwnPrivilegResponse>(\r\n `v1/auth/${membershipId}/privileges`,\r\n this.localstorageService.getHeaderWithAuth()\r\n );\r\n }\r\n\r\n getMemberships(): Observable<MembershipResponse> {\r\n return this.connectionService.get<MembershipResponse>(\r\n 'v1/auth/users/memberships',\r\n this.localstorageService.getHeaderWithAuth()\r\n ).pipe(\r\n catchError(() => {\r\n return of({success: false})\r\n }) \r\n );\r\n }\r\n}\r\n","import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\r\nimport { inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, of, switchMap, tap } from 'rxjs';\r\nimport { AuthService } from '../providers/auth.service';\r\nimport { LocalStorageService } from '../providers/localstorage.service';\r\nimport { Membership } from '../models/auth.model';\r\n\r\nexport const AuthStore = signalStore(\r\n { providedIn: 'root' },\r\n\r\n withState({\r\n loading: false,\r\n isAuthenticated: false,\r\n loginError: false,\r\n sessionRunoutError: false,\r\n hasNewPriv: false,\r\n }),\r\n\r\n withMethods((store) => {\r\n const router = inject(Router);\r\n const authservice = inject(AuthService);\r\n const localstorageService = inject(LocalStorageService);\r\n\r\n return {\r\n loadMemberships(): void {\r\n authservice.getMemberships().subscribe((val) => {\r\n const memberships = val.data ?? [];\r\n localstorageService.setMemberships(memberships);\r\n if (memberships.length === 0) {\r\n return router.navigate(['/auth/logout']);\r\n }\r\n if (memberships.length === 1) {\r\n return this.setMembershipId(memberships[0]);\r\n } else {\r\n return router.navigate(['/auth/switch-membership']);\r\n }\r\n });\r\n },\r\n login(username: string, password: string): void {\r\n patchState(store, {\r\n loading: true,\r\n loginError: false,\r\n sessionRunoutError: false,\r\n isAuthenticated: false,\r\n });\r\n authservice.doLogin(username, password).subscribe((val) => {\r\n if (val.success && val.data) {\r\n patchState(store, { loading: false, isAuthenticated: true });\r\n localstorageService.setAuthToken(val.data);\r\n this.loadMemberships();\r\n } else {\r\n patchState(store, { loading: false, loginError: true });\r\n }\r\n });\r\n },\r\n setMembershipId(membership: Membership): void {\r\n localstorageService.setCurrentMembershipId(membership.id);\r\n localstorageService.setUserId(membership.user_id);\r\n localstorageService.setUsergroupId(membership.usergroup_id);\r\n this.loadPrivileges(membership);\r\n },\r\n loadPrivileges(membership: Membership): void {\r\n authservice.getPrivsForMembership(membership.id).subscribe((val) => {\r\n localstorageService.setPrivs(val.data ?? []);\r\n patchState(store, { hasNewPriv: true });\r\n setTimeout(() => patchState(store, { hasNewPriv: false }), 1000);\r\n router.navigate(['/dashboard']);\r\n });\r\n },\r\n checkValid(): Observable<boolean> {\r\n patchState(store, { loading: true, sessionRunoutError: false });\r\n return authservice.checkIfValid().pipe(\r\n tap((val) => {\r\n if (val.success) {\r\n patchState(store, { loading: false, isAuthenticated: true });\r\n } else {\r\n patchState(store, {\r\n loading: false,\r\n isAuthenticated: false,\r\n sessionRunoutError: localstorageService.getAuthToken() ? true : false,\r\n });\r\n localstorageService.removeAll();\r\n router.navigate(['/auth/login']);\r\n }\r\n }),\r\n switchMap((val) => of(val.success)),\r\n );\r\n },\r\n hasOneOfPrivs(privs: string[]): boolean {\r\n for (const priv of privs) {\r\n if (this.hasPriv(priv)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n hasPriv(priv: string): boolean {\r\n const privs = localstorageService.getPrivs();\r\n if (privs) {\r\n return privs.find((val) => val === priv) !== undefined;\r\n }\r\n return false;\r\n },\r\n logout(): void {\r\n patchState(store, { loading: true });\r\n authservice.doLogout().subscribe((val) => {\r\n if (val.success) {\r\n patchState(store, { loading: false, isAuthenticated: false });\r\n localstorageService.removeAll();\r\n }\r\n });\r\n },\r\n };\r\n }),\r\n);\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn } from '@angular/router';\r\nimport { AuthStore } from '../authstore';\r\n\r\nexport function authGuard(privs: string[]): CanActivateFn {\r\n return () => {\r\n const authStore = inject(AuthStore);\r\n return authStore.checkValid() && (privs.length === 0 || authStore.hasOneOfPrivs(privs));\r\n }\r\n};\r\n\r\n","import { Component, computed, inject, Signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AbstractControl, FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { AuthStore } from '../../authstore';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-ui-login',\r\n imports: [CommonModule, TranslateModule, ReactiveFormsModule],\r\n templateUrl: './login.html'\r\n})\r\nexport class Login {\r\n \r\n private authStore = inject(AuthStore);\r\n\r\n public get isLoading(): Signal<boolean> {\r\n return this.authStore.loading;\r\n }\r\n\r\n public errorType = computed(() => {\r\n if(this.authStore.loginError()) { return 1; }\r\n if(this.authStore.sessionRunoutError()) { return 2; }\r\n return 0;\r\n })\r\n \r\n public formGroup: FormGroup = new FormGroup({\r\n username: new FormControl('', [ Validators.required ]),\r\n password: new FormControl('', [ Validators.required ]),\r\n });\r\n\r\n public get usernameControl(): AbstractControl { return this.formGroup.controls['username']; }\r\n public get passwordControl(): AbstractControl { return this.formGroup.controls['password']; }\r\n\r\n onSubmit() {\r\n this.formGroup.markAllAsTouched(); \r\n if(this.formGroup.valid) {\r\n this.authStore.login(\r\n this.usernameControl.value?.trim(),\r\n this.passwordControl.value?.trim()\r\n )\r\n }\r\n }\r\n}\r\n","@if (isLoading()) {\r\n <div class=\"spinner-border\" role=\"status\">\r\n <span class=\"sr-only\"></span>\r\n </div>\r\n} \r\n@else {\r\n<div class=\"card\">\r\n <div class=\"card-header\">\r\n <h1>{{'alfenoryauthv2.login.header' | translate}}</h1>\r\n </div>\r\n <div class=\"card-body\">\r\n @if (errorType() !== 0) \r\n {\r\n <div class=\"alert alert-danger\" role=\"alert\">\r\n <b>{{'general.messages.error' | translate}}</b>\r\n @if (errorType() === 1) {\r\n {{'alfenoryauthv2.login.loginerror' | translate}}\r\n } \r\n @if (errorType() === 2) {\r\n {{'alfenoryauthv2.login.sessionrunouterror_text' | translate}}\r\n } \r\n </div>\r\n }\r\n <form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\"> \r\n <div class=\"form-floating mb-3\">\r\n <input type=\"email\" class=\"form-control\" formControlName=\"username\" id=\"username\" name=\"username\" autocomplete=\"username\" placeholder=\"Email\" [ngClass]=\"{'is-invalid' : usernameControl.touched && usernameControl.errors}\">\r\n <label for=\"username\">{{'alfenoryauthv2.login.email' | translate}}</label>\r\n <div class=\"invalid-feedback\">\r\n {{'general.messages.required' | translate}}\r\n </div>\r\n </div>\r\n <div class=\"form-floating mb-3\">\r\n <input type=\"password\" class=\"form-control\" formControlName=\"password\" id=\"password\" name=\"password\" autocomplete=\"current-password\" placeholder=\"Passwort\" [ngClass]=\"{'is-invalid' : passwordControl.touched && passwordControl.errors}\">\r\n <label for=\"password\">{{'alfenoryauthv2.login.password' | translate}}</label>\r\n <div class=\"invalid-feedback\">\r\n {{'general.messages.required' | translate}}\r\n </div>\r\n </div>\r\n <button class=\"btn btn-primary\" type=\"submit\">\r\n {{'alfenoryauthv2.login.submit' | translate}}\r\n </button>\r\n </form>\r\n </div>\r\n</div>\r\n}","import { Component, inject, OnInit, Signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AuthStore } from '../../authstore';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-ui-logout',\r\n imports: [CommonModule, TranslateModule],\r\n templateUrl: './logout.html'\r\n})\r\nexport class Logout implements OnInit {\r\n\r\n private authStore = inject(AuthStore);\r\n\r\n public get isLoading(): Signal<boolean> {\r\n return this.authStore.loading;\r\n }\r\n\r\n ngOnInit() : void {\r\n this.authStore.logout();\r\n }\r\n}\r\n","@if(isLoading()) {\r\n <div class=\"spinner-border\" role=\"status\">\r\n <span class=\"sr-only\"></span>\r\n </div>\r\n} @else { \r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <h1>{{'alfenoryauthv2.logout.logout' | translate}}</h1>\r\n </div>\r\n <div class=\"card-body\">\r\n <p>{{'alfenoryauthv2.logout.success_logouttext' | translate}}</p>\r\n <a href=\"/auth/login\">{{ 'alfenoryauthv2.logout.login-link' | translate }}</a>\r\n </div> \r\n </div>\r\n}","import { Directive, inject } from '@angular/core';\r\nimport {\r\n API_URL,\r\n BasicDataResponse,\r\n BasicResponse,\r\n GetFilterQueryParam,\r\n HttpHeaderOptions,\r\n} from '../models';\r\nimport { Observable, of, switchMap } from 'rxjs';\r\nimport { LocalStorageService } from './localstorage.service';\r\nimport { ConnectionService } from './connection.service';\r\n\r\n@Directive()\r\nexport abstract class BasicProvider {\r\n apiUrl = inject(API_URL);\r\n localstorage = inject(LocalStorageService);\r\n connectionService = inject(ConnectionService);\r\n\r\n abstract get url(): string;\r\n\r\n protected get authHeader(): HttpHeaderOptions {\r\n return this.localstorage.getHeaderWithAuth();\r\n }\r\n\r\n protected getQueryFilter(filterParams: GetFilterQueryParam[]): string {\r\n if (filterParams.length === 0) {\r\n return '';\r\n }\r\n return filterParams.map((val) => `filter[${val.key}][${val.relation}]=${val.value}`).join('&');\r\n }\r\n\r\n protected getQueryUrl(filterQueryParams: GetFilterQueryParam[]): string {\r\n const queryFilter = this.getQueryFilter(filterQueryParams);\r\n return `${this.url}${queryFilter ? '?' : ''}${queryFilter}`;\r\n }\r\n\r\n public getWithFilterQueryParams<T>(params: GetFilterQueryParam[]): Observable<T> {\r\n return this.connectionService\r\n .get<BasicDataResponse<T>>(this.getQueryUrl(params), this.authHeader)\r\n .pipe(switchMap((val) => of(val.data)));\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n protected createBasic<T>(url: string, obj: any): Observable<BasicDataResponse<T>> {\r\n return this.connectionService.post<BasicDataResponse<T>>(url, obj, this.authHeader);\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n protected updateBasic<T>(url: string, obj: any): Observable<BasicDataResponse<T>> {\r\n return this.connectionService.patch<BasicDataResponse<T>>(url, obj, this.authHeader);\r\n }\r\n\r\n public removeBasic(url: string): Observable<BasicResponse> {\r\n return this.connectionService.delete(url, this.authHeader);\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { BasicProvider } from './basic-provider';\r\n\r\n@Directive()\r\nexport abstract class BasicProviderAlfenoryAuthV2 extends BasicProvider {\r\n get basicUrlAuthUrl(): string {\r\n return `v1/auth/${this.localstorage.getCurrentMembershipId() ?? ''}`;\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { UsergroupAttribute } from '../models/usergroup-attribute.model';\r\nimport { BasicProviderAlfenoryAuthV2 } from './basic-provider-alfenoryauthv2.service';\r\nimport { BasicDataResponse, BasicResponse } from '../models';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UsergroupAttributesService extends BasicProviderAlfenoryAuthV2 {\r\n override get url(): string {\r\n return `${this.basicUrlAuthUrl}/${this.localstorage.getUsergroupId()}/attributes`;\r\n }\r\n\r\n urlWithId(id: string): string {\r\n return `${this.url}/${id}`;\r\n }\r\n\r\n public create(\r\n usergroupAttribute: UsergroupAttribute,\r\n ): Observable<BasicDataResponse<UsergroupAttribute>> {\r\n return this.createBasic<UsergroupAttribute>(this.url, usergroupAttribute);\r\n }\r\n\r\n public update(\r\n usergroupAttribute: UsergroupAttribute,\r\n ): Observable<BasicDataResponse<UsergroupAttribute>> {\r\n return this.updateBasic<UsergroupAttribute>(\r\n this.urlWithId(usergroupAttribute.id),\r\n usergroupAttribute,\r\n );\r\n }\r\n\r\n public remove(id: string): Observable<BasicResponse> {\r\n return this.removeBasic(this.urlWithId(id));\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { Component, computed, inject } from \"@angular/core\";\r\nimport { AuthStore } from \"../../authstore\";\r\nimport { LocalStorageService } from \"../../providers\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { Membership } from \"../../models/auth.model\";\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-ui-switch-membership',\r\n templateUrl: './switch-membership.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class SwitchMembership {\r\n\r\n private authStore = inject(AuthStore);\r\n private localStorageService = inject(LocalStorageService);\r\n public memberships = computed(() => this.localStorageService.getMemberships() ?? []);\r\n\r\n public switch(membership: Membership): void\r\n {\r\n this.authStore.setMembershipId(membership);\r\n }\r\n}","<div class=\"list-group\">\r\n <div class=\"list-group-item\">\r\n <h1>{{'alfenoryauthv2.switchmembership.header' | translate}}</h1>\r\n </div>\r\n <div class=\"list-group-item\">\r\n <p>{{'alfenoryauthv2.switchmembership.text' | translate}}</p>\r\n @for (membership of memberships(); track membership.id) {\r\n <div class=\"pt-2\">\r\n <button class=\"btn btn-outline-primary\" (click)=\"switch(membership)\">{{membership.ug.name}}</button>\r\n </div>\r\n }\r\n </div>\r\n</div>","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { UsergroupAttributeWithType } from '../../models/usergroup-attribute.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Directive()\r\nexport class UsergroupAttributeBasic {\r\n attribute = input.required<UsergroupAttributeWithType>();\r\n translateService = inject(TranslateService);\r\n label = computed(() =>\r\n this.translateService.instant(`alfenoryauthv2.usergroupattributes.${this.attribute().key}`),\r\n );\r\n}\r\n","import { Directive, effect, output } from '@angular/core';\r\nimport { UsergroupAttributeBasic } from './usergroup-attributes-basic';\r\n\r\n@Directive()\r\nexport class UsergroupAttributeUpdateFieldBase extends UsergroupAttributeBasic {\r\n valueChanges = output<string>();\r\n value = '';\r\n oldValue = '';\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n this.value = this.attribute().value ?? '';\r\n this.oldValue = this.value;\r\n });\r\n }\r\n\r\n triggerValueChange(): void {\r\n if (this.oldValue !== this.value) {\r\n this.valueChanges.emit(this.value);\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { UsergroupAttributeUpdateFieldBase } from './usergroup-attributes-update-field-base';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update-textfield',\r\n template: `\r\n <div class=\"form-floating\">\r\n <input\r\n id=\"attributeTextField\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"triggerValueChange()\"\r\n />\r\n <label for=\"attributeTextField\">{{ label() }}</label>\r\n </div>\r\n `,\r\n imports: [FormsModule],\r\n})\r\nexport class UsergroupAttributeUpdateTextfield extends UsergroupAttributeUpdateFieldBase {}\r\n","import { Component } from '@angular/core';\r\nimport { UsergroupAttributeUpdateFieldBase } from './usergroup-attributes-update-field-base';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update-number',\r\n template: `\r\n <div class=\"form-floating\">\r\n <input\r\n id=\"attributeTextField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"triggerValueChange()\"\r\n />\r\n <label for=\"attributeTextField\">{{ label() }}</label>\r\n </div>\r\n `,\r\n imports: [FormsModule],\r\n})\r\nexport class UsergroupAttributeUpdateNumber extends UsergroupAttributeUpdateFieldBase {\r\n override triggerValueChange(): void {\r\n this.valueChanges.emit(`${this.value}`);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { UsergroupAttributeUpdateFieldBase } from './usergroup-attributes-update-field-base';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update-textarea',\r\n template: `\r\n <div class=\"form-floating\">\r\n <textarea\r\n id=\"attributeTextField\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"triggerValueChange()\"\r\n ></textarea>\r\n <label for=\"attributeTextField\">{{ label() }}</label>\r\n </div>\r\n `,\r\n imports: [FormsModule],\r\n})\r\nexport class UsergroupAttributeUpdateTextarea extends UsergroupAttributeUpdateFieldBase {}\r\n","import { Component, computed } from '@angular/core';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { UsergroupAttributeUpdateFieldBase } from './usergroup-attributes-update-field-base';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update-select',\r\n template: `\r\n <div class=\"form-floating\">\r\n <select\r\n id=\"attributeTextField\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"triggerValueChange()\"\r\n >\r\n @for (value of selectableValues(); track value) {\r\n <option [value]=\"value\">\r\n {{ 'alfenoryauthv2.usergroupattributes.selectable_' + value | translate }}\r\n </option>\r\n }\r\n </select>\r\n <label for=\"attributeTextField\">{{ label() }}</label>\r\n </div>\r\n `,\r\n imports: [FormsModule, TranslatePipe],\r\n})\r\nexport class UsergroupAttributeUpdateSelect extends UsergroupAttributeUpdateFieldBase {\r\n selectableValues = computed(() => {\r\n const mapping = this.attribute().typeMapping;\r\n if ('selectableValues' in mapping) {\r\n return mapping.selectableValues;\r\n }\r\n return [];\r\n });\r\n}\r\n","import { Component, inject, input, output } from '@angular/core';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport {\r\n UsergroupAttribute,\r\n UsergroupAttributeEditType,\r\n UsergroupAttributeWithType,\r\n} from '../../models/usergroup-attribute.model';\r\nimport { UsergroupAttributesService } from '../../providers/usergroup-attributes.service';\r\nimport { UsergroupAttributeUpdateTextfield } from './usergroup-attributes-update-textfield';\r\nimport { UsergroupAttributeUpdateNumber } from './usergroup-attributes-update-number';\r\nimport { UsergroupAttributeUpdateTextarea } from './usergroup-attributes-update-textarea';\r\nimport { UsergroupAttributeUpdateSelect } from './usergroup-attributes-update-select';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update',\r\n template: `\r\n @switch (this.attribute().typeMapping.editType) {\r\n @case (EditType.InputArea) {\r\n <alfenoryauthv2-usergroup-attributes-update-textarea\r\n [attribute]=\"attribute()\"\r\n (valueChanges)=\"updateValue($event)\"\r\n />\r\n }\r\n @case (EditType.InputNumber) {\r\n <alfenoryauthv2-usergroup-attributes-update-number\r\n [attribute]=\"attribute()\"\r\n (valueChanges)=\"updateValue($event)\"\r\n />\r\n }\r\n @case (EditType.selectTypes) {\r\n <alfenoryauthv2-usergroup-attributes-update-select\r\n [attribute]=\"attribute()\"\r\n (valueChanges)=\"updateValue($event)\"\r\n />\r\n }\r\n @default {\r\n <alfenoryauthv2-usergroup-attributes-update-textfield\r\n [attribute]=\"attribute()\"\r\n (valueChanges)=\"updateValue($event)\"\r\n />\r\n }\r\n }\r\n\r\n <button\r\n class=\"btn btn-outline-primary\"\r\n (click)=\"doSave()\"\r\n title=\"{{ 'general.messages.save' | translate }}\"\r\n >\r\n <i class=\"bi-save\"></i>\r\n </button>\r\n `,\r\n imports: [\r\n UsergroupAttributeUpdateTextfield,\r\n UsergroupAttributeUpdateNumber,\r\n UsergroupAttributeUpdateTextarea,\r\n UsergroupAttributeUpdateSelect,\r\n TranslatePipe,\r\n ],\r\n})\r\nexport class UsergroupAttributeUpdate {\r\n attribute = input.required<UsergroupAttributeWithType>();\r\n usergroupAttributeService = inject(UsergroupAttributesService);\r\n EditType = UsergroupAttributeEditType;\r\n value = '';\r\n didSave = output();\r\n\r\n doSave() {\r\n if (this.value) {\r\n if (this.attribute().id) {\r\n this.usergroupAttributeService.update(this.toModel());\r\n } else {\r\n this.usergroupAttributeService.create(this.toModel());\r\n }\r\n } else {\r\n if (this.attribute().id) {\r\n this.usergroupAttributeService.remove(this.attribute().id);\r\n }\r\n }\r\n this.didSave.emit();\r\n }\r\n\r\n updateValue(val: string): void {\r\n this.value = val;\r\n }\r\n\r\n toModel(): UsergroupAttribute {\r\n return {\r\n ...this.attribute(),\r\n value: this.value,\r\n };\r\n }\r\n}\r\n","import { Component, computed, inject, input, output, signal } from '@angular/core';\r\nimport {\r\n UsergroupAttributeEditType,\r\n UsergroupAttributeWithType,\r\n} from '../../models/usergroup-attribute.model';\r\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UsergroupAttributeUpdate } from './usergroup-attributes-update';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-list-detail',\r\n template: `\r\n <div>{{ keyName() }} : {{ value() }}</div>\r\n\r\n <button\r\n class=\"btn btn-outline-primary\"\r\n title=\"{{ 'general.messages.update' | translate }}\"\r\n (click)=\"openUpdate()\"\r\n >\r\n <i class=\"bi-pen\"></i>\r\n </button>\r\n `,\r\n imports: [TranslatePipe],\r\n})\r\nexport class UsergroupAttributesListDetail {\r\n attribute = input.required<UsergroupAttributeWithType>();\r\n keyName = computed(() => `alfenoryauthv2.usergroupattributes.${this.attribute()?.key}`);\r\n private translateService = inject(TranslateService);\r\n private modalService = inject(NgbModal);\r\n\r\n value = computed(() => this.getValue());\r\n didSaveValue = output();\r\n\r\n getValue() {\r\n switch (this.attribute().typeMapping.editType) {\r\n case UsergroupAttributeEditType.InputArea:\r\n return this.translateService.instant('alfenoryauthv2.usergroup-attribute.long-text');\r\n case UsergroupAttributeEditType.selectTypes:\r\n return this.translateService.instant(\r\n `alfenoryauthv2.usergroup-attribute.${this.attribute().value === '' ? 'novalue' : this.attribute().value}`,\r\n );\r\n default:\r\n return this.attribute().value;\r\n }\r\n }\r\n\r\n openUpdate() {\r\n const component = this.modalService.open(UsergroupAttributeUpdate);\r\n component.componentInstance.usergroupAttribute = signal(this.attribute());\r\n component.closed.subscribe(() => this.didSaveValue.emit());\r\n }\r\n}\r\n","import { Component, input, output } from '@angular/core';\r\nimport { UsergroupAttributeWithType } from '../../models/usergroup-attribute.model';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { UsergroupAttributesListDetail } from './usergroup-attributes-list-detail';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-list',\r\n template: `\r\n <div class=\"list-group\">\r\n <div class=\"list-group-item fw-bold\">\r\n {{ 'alfenoryauthv2.usergroup-attributes.usergroup-attribute' | translate }}\r\n </div>\r\n @for (attribute of attributes(); track attribute.id) {\r\n <alfenoryauthv2-usergroup-attributes-list-detail\r\n class=\"list-group-item d-flex justify-content-between\"\r\n [attribute]=\"attribute\"\r\n (didSaveValue)=\"handleDidSaveValue()\"\r\n />\r\n } @empty {\r\n <div class=\"list-group-item\">\r\n {{ 'general.messages.emptylist' | translate }}\r\n </div>\r\n }\r\n </div>\r\n `,\r\n imports: [TranslatePipe, UsergroupAttributesListDetail],\r\n})\r\nexport class UsergroupAttributesList {\r\n attributes = input<UsergroupAttributeWithType[]>();\r\n didSaveValue = output();\r\n\r\n handleDidSaveValue(): void {\r\n this.didSaveValue.emit();\r\n }\r\n}\r\n","import { Component, computed, effect, inject, input, signal } from '@angular/core';\r\nimport { AuthStore } from '../../authstore';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { UsergroupAttributesService } from '../../providers/usergroup-attributes.service';\r\nimport {\r\n UsergroupAttribute,\r\n UsergroupAttributeEditTypeMapping,\r\n UsergroupAttributeWithType,\r\n} from '../../models/usergroup-attribute.model';\r\nimport { UsergroupAttributesList } from './usergroup-attributes-list';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes',\r\n template: `\r\n @if (hasPrivilege()) {\r\n @if (isLoading()) {\r\n <div class=\"spinner-border\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n } @else {\r\n <alfenoryauthv2-usergroup-attributes-list\r\n [attributes]=\"attributes()\"\r\n (didSaveValue)=\"loadUsergroupAttributes()\"\r\n />\r\n }\r\n } @else {\r\n <p>{{ 'general.messages.nopriv' | translate }}</p>\r\n }\r\n `,\r\n imports: [TranslatePipe, UsergroupAttributesList],\r\n})\r\nexport class UsergroupAttributes {\r\n editableUsergroupAttributesTypes = input.required<UsergroupAttributeEditTypeMapping[]>();\r\n authStore = inject(AuthStore);\r\n attributesService = inject(UsergroupAttributesService);\r\n attributes = signal([] as UsergroupAttributeWithType[]);\r\n\r\n isLoading = signal(false);\r\n hasPrivilege = computed(() => this.authStore.hasPriv('usergroupattribute.get'));\r\n\r\n constructor() {\r\n this.authStore.checkValid();\r\n effect(() => {\r\n if (this.hasPrivilege()) {\r\n this.loadUsergroupAttributes();\r\n }\r\n });\r\n }\r\n\r\n loadUsergroupAttributes(): void {\r\n this.isLoading.set(true);\r\n this.attributesService.getWithFilterQueryParams<UsergroupAttribute[]>([]).subscribe((ugAts) => {\r\n this.isLoading.set(false);\r\n this.attributes.set(\r\n ugAts\r\n //setUsergroupAttributes with Mapping\r\n .map((val) => this.toUsergroupAttributeWithType(val))\r\n //filter where to mapping are found\r\n .filter((val) => val !== undefined),\r\n );\r\n this.addMissingTypeMappings();\r\n });\r\n }\r\n\r\n toUsergroupAttributeWithType(\r\n usergroupAttribute: UsergroupAttribute,\r\n ): UsergroupAttributeWithType | undefined {\r\n const attributeTypeMapping = this.editableUsergroupAttributesTypes().find(\r\n (val) => val.key === usergroupAttribute.key,\r\n );\r\n if (attributeTypeMapping) {\r\n return {\r\n ...usergroupAttribute,\r\n typeMapping: attributeTypeMapping,\r\n };\r\n }\r\n return undefined;\r\n }\r\n\r\n addMissingTypeMappings(): void {\r\n const currentAttributes = this.attributes();\r\n const existingKeys = new Set(currentAttributes.map((a) => a.key));\r\n\r\n const newElements = this.editableUsergroupAttributesTypes()\r\n .filter((type) => !existingKeys.has(type.key))\r\n .map((type) => ({\r\n key: type.key,\r\n value: '',\r\n id: '',\r\n typeMapping: type,\r\n }));\r\n\r\n if (newElements.length > 0) {\r\n this.attributes.set([...currentAttributes, ...newElements]);\r\n }\r\n }\r\n}\r\n","import { Directive, effect, ElementRef, inject, input } from \"@angular/core\";\r\nimport { AuthStore } from '../authstore/auth.store';\r\n\r\n@Directive({\r\n selector: '[hideIfNoPriv]'\r\n})\r\nexport class HideIfNoPriv {\r\n hideIfNoPriv = input<string>();\r\n authService = inject(AuthStore);\r\n elementRef = inject(ElementRef);\r\n hasNewPriv = this.authService.hasNewPriv;\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.hasNewPriv()) {\r\n this.updateVisibility();\r\n }\r\n });\r\n }\r\n\r\n private updateVisibility() {\r\n const privileges = this.hideIfNoPriv()?.split(';') ?? [];\r\n const isVisible = this.authService.checkValid() && this.authService.hasOneOfPrivs(privileges);\r\n this.elementRef.nativeElement.style.display = isVisible ? '' : 'none';\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alfenory-authv2-ui.mjs","sources":["../../../projects/alfenoryauthv2-ui/src/lib/models/basic.model.ts","../../../projects/alfenoryauthv2-ui/src/lib/models/localstorage-keys.model.ts","../../../projects/alfenoryauthv2-ui/src/lib/models/get-filter-query-relation.enum.ts","../../../projects/alfenoryauthv2-ui/src/lib/models/usergroup-attribute.model.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/connection.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/basic-localstorage.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/localstorage.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/auth.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/authstore/auth.store.ts","../../../projects/alfenoryauthv2-ui/src/lib/authguard/authgard.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/login/login.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/login/login.html","../../../projects/alfenoryauthv2-ui/src/lib/components/logout/logout.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/logout/logout.html","../../../projects/alfenoryauthv2-ui/src/lib/providers/basic-provider.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/basic-provider-alfenoryauthv2.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/providers/usergroup-attributes.service.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/switch-membership/switch-membership.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/switch-membership/switch-membership.html","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-basic.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-field-base.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-textfield.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-number.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-textarea.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update-select.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-update.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-list-detail.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes-list.ts","../../../projects/alfenoryauthv2-ui/src/lib/components/usergroup-attributes/usergroup-attributes.ts","../../../projects/alfenoryauthv2-ui/src/lib/directive/hideifnopriv.directive.ts","../../../projects/alfenoryauthv2-ui/src/alfenory-authv2-ui.ts"],"sourcesContent":["import { HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport const API_URL = new InjectionToken<string>('API_URL');\r\n\r\nexport type HttpHeaderOptionList = Record<string, string | string[]>;\r\n\r\nexport interface HttpHeaderOptions {\r\n headers?: HttpHeaders | HttpHeaderOptionList;\r\n observe?: 'body';\r\n params?: HttpParams | HttpHeaderOptionList;\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n};\r\n\r\nexport interface BasicModel {\r\n id: string;\r\n}\r\n\r\nexport interface BasicResponse {\r\n success: boolean;\r\n}\r\n\r\nexport interface BasicDataResponse<T> {\r\n data: T;\r\n}\r\n\r\nexport interface BasicResponseExtended extends BasicResponse {\r\n didRequest: boolean;\r\n error: string;\r\n}\r\n","export enum LocalStorageKeys {\r\n userId = 'AUTH_USER_ID',\r\n authToken = 'AUTH_TOKEN',\r\n memberships = 'AUTH_MEMBERSHIPS',\r\n currentMembership = 'AUTH_CURRENT_MEMBERSHIP',\r\n privileges = 'AUTH_PRIVILEGES',\r\n usergroupId = 'AUTH_USERGROUP_ID',\r\n}\r\n","export enum GetFilterQueryRelation\r\n{\r\n eq = 'eq',\r\n contains = 'contains',\r\n in = 'in',\r\n gt = 'gt'\r\n}","import { BasicModel } from './basic.model';\r\n\r\nexport interface UsergroupAttribute extends BasicModel {\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport enum UsergroupAttributeEditType {\r\n InputNumber = 1,\r\n InputString = 2,\r\n InputArea = 3,\r\n selectTypes = 4,\r\n}\r\n\r\n// Basis-Eigenschaften, die immer vorhanden sind\r\ninterface BaseType {\r\n key: string;\r\n}\r\n\r\ninterface SelectMapping extends BaseType {\r\n editType: UsergroupAttributeEditType.selectTypes;\r\n selectableValues: string[];\r\n}\r\n\r\ninterface StandardMapping extends BaseType {\r\n editType: Exclude<UsergroupAttributeEditType, UsergroupAttributeEditType.selectTypes>;\r\n}\r\n\r\nexport type UsergroupAttributeEditTypeMapping = SelectMapping | StandardMapping;\r\n\r\nexport interface UsergroupAttributeWithType extends UsergroupAttribute {\r\n typeMapping: UsergroupAttributeEditTypeMapping;\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from 'rxjs';\r\nimport { API_URL, HttpHeaderOptions } from \"../models\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConnectionService {\r\n\r\n private http = inject(HttpClient);\r\n private apiUrl = inject(API_URL);\r\n\r\n get<T>(\r\n customUrl: string, \r\n options?: HttpHeaderOptions\r\n ): Observable<T> {\r\n return this.http.get<T>(\r\n this.getURL(customUrl),\r\n options\r\n );\r\n }\r\n\r\n post<T>(\r\n customUrl: string, \r\n body: object | null, \r\n options?: HttpHeaderOptions\r\n ): Observable<T> {\r\n return this.http.post<T>(\r\n this.getURL(customUrl), \r\n body, \r\n options\r\n );\r\n }\r\n\r\n patch<T>(\r\n customUrl: string, \r\n body: object | null, \r\n options?: HttpHeaderOptions\r\n ): Observable<T> {\r\n return this.http.patch<T>(\r\n this.getURL(customUrl), \r\n body, \r\n options\r\n );\r\n }\r\n\r\n delete<T>(\r\n customUrl: string, \r\n options?: HttpHeaderOptions\r\n ): Observable<T> {\r\n return this.http.delete<T>(\r\n this.getURL(customUrl), \r\n options\r\n );\r\n }\r\n\r\n private getURL(customUrl: string): string {\r\n return `${this.apiUrl}/${customUrl}`;\r\n }\r\n} \r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BasicLocalStorageService {\r\n setString(key: string, value: string) {\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n setNumber(key: string, value: number) {\r\n localStorage.setItem(key, value.toString());\r\n }\r\n\r\n setJson(key: string, value: object) {\r\n this.setString(key, JSON.stringify(value));\r\n }\r\n\r\n getString(key: string): string | null {\r\n return localStorage.getItem(key);\r\n }\r\n\r\n getNumber(key: string, defaultValue?: string): number {\r\n return parseInt(this.getString(key) ?? defaultValue ?? '0');\r\n }\r\n\r\n getJson(key: string, defaultValue: object) {\r\n const resp = localStorage.getItem(key) as string;\r\n if (resp === undefined || resp === null) {\r\n return defaultValue;\r\n }\r\n try {\r\n return JSON.parse(resp);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n return defaultValue;\r\n }\r\n\r\n removeKey(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n}\r\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpHeaderOptions, LocalStorageKeys } from '../models';\r\nimport { BasicLocalStorageService } from './basic-localstorage.service';\r\nimport { Membership } from '../models/auth.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LocalStorageService extends BasicLocalStorageService {\r\n public getAuthToken(): string | null {\r\n return this.getString(LocalStorageKeys.authToken);\r\n }\r\n\r\n public setAuthToken(token: string) {\r\n this.setString(LocalStorageKeys.authToken, token);\r\n }\r\n\r\n public getUserId(): string | null {\r\n return this.getString(LocalStorageKeys.userId);\r\n }\r\n\r\n public setUserId(userId: string) {\r\n this.setString(LocalStorageKeys.userId, userId);\r\n }\r\n\r\n public getUsergroupId(): string | null {\r\n return this.getString(LocalStorageKeys.usergroupId);\r\n }\r\n\r\n public setUsergroupId(usergroupId: string): void {\r\n this.setString(LocalStorageKeys.usergroupId, usergroupId);\r\n }\r\n\r\n public setMemberships(memberships: Membership[]): void {\r\n this.setJson(LocalStorageKeys.memberships, memberships);\r\n }\r\n\r\n public getMemberships(): Membership[] | null {\r\n return this.getJson(LocalStorageKeys.memberships, []);\r\n }\r\n\r\n public setPrivs(privs: string[]) {\r\n this.setJson(LocalStorageKeys.privileges, privs);\r\n }\r\n\r\n public getPrivs(): string[] | null {\r\n return this.getJson(LocalStorageKeys.privileges, []);\r\n }\r\n\r\n public setCurrentMembershipId(membershipId: string): void {\r\n this.setString(LocalStorageKeys.currentMembership, membershipId);\r\n }\r\n\r\n public getCurrentMembershipId(): string | null {\r\n return this.getString(LocalStorageKeys.currentMembership);\r\n }\r\n\r\n public getHeaderWithAuth(): HttpHeaderOptions {\r\n let headers = new HttpHeaders();\r\n if (this.getAuthToken()) {\r\n headers = headers.set('Authorization', 'Bearer ' + this.getAuthToken());\r\n }\r\n const params = new HttpParams();\r\n return { headers, params };\r\n }\r\n\r\n public removeAll() {\r\n this.removeKey(LocalStorageKeys.userId);\r\n this.removeKey(LocalStorageKeys.authToken);\r\n this.removeKey(LocalStorageKeys.privileges);\r\n this.removeKey(LocalStorageKeys.memberships);\r\n this.removeKey(LocalStorageKeys.currentMembership);\r\n this.removeKey(LocalStorageKeys.usergroupId);\r\n }\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { BasicResponse } from \"../models\";\r\nimport { catchError, Observable, of } from \"rxjs\";\r\nimport { ConnectionService } from \"./connection.service\";\r\nimport { LocalStorageService } from \"./localstorage.service\";\r\nimport { LoginResponse, MembershipResponse, OwnPrivilegResponse } from \"../models/auth.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n public localstorageService = inject(LocalStorageService);\r\n public connectionService = inject(ConnectionService);\r\n\r\n checkIfValid(): Observable<BasicResponse> {\r\n return this.connectionService.post<BasicResponse>( \r\n 'v1/auth/users/checkvalidsession',\r\n {},\r\n this.localstorageService.getHeaderWithAuth()\r\n ).pipe(\r\n catchError(() => {\r\n return of({success:false});\r\n })\r\n );\r\n }\r\n\r\n doLogin(username: string, password: string): Observable<LoginResponse> {\r\n return this.connectionService.post<LoginResponse>(\r\n 'v1/auth/users/login', \r\n { username: username, password: password}\r\n ).pipe(\r\n catchError(() => {\r\n return of({success:false});\r\n })\r\n );\r\n }\r\n\r\n doLogout(): Observable<BasicResponse> {\r\n return this.connectionService.get<BasicResponse>(\r\n 'v1/auth/users/logout',\r\n this.localstorageService.getHeaderWithAuth()\r\n ); \r\n }\r\n\r\n getPrivsForMembership(membershipId: string): Observable<OwnPrivilegResponse> {\r\n return this.connectionService.get<OwnPrivilegResponse>(\r\n `v1/auth/${membershipId}/privileges`,\r\n this.localstorageService.getHeaderWithAuth()\r\n );\r\n }\r\n\r\n getMemberships(): Observable<MembershipResponse> {\r\n return this.connectionService.get<MembershipResponse>(\r\n 'v1/auth/users/memberships',\r\n this.localstorageService.getHeaderWithAuth()\r\n ).pipe(\r\n catchError(() => {\r\n return of({success: false})\r\n }) \r\n );\r\n }\r\n}\r\n","import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\r\nimport { inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, of, switchMap, tap } from 'rxjs';\r\nimport { AuthService } from '../providers/auth.service';\r\nimport { LocalStorageService } from '../providers/localstorage.service';\r\nimport { Membership } from '../models/auth.model';\r\n\r\nexport const AuthStore = signalStore(\r\n { providedIn: 'root' },\r\n\r\n withState({\r\n loading: false,\r\n isAuthenticated: false,\r\n loginError: false,\r\n sessionRunoutError: false,\r\n hasNewPriv: false,\r\n }),\r\n\r\n withMethods((store) => {\r\n const router = inject(Router);\r\n const authservice = inject(AuthService);\r\n const localstorageService = inject(LocalStorageService);\r\n\r\n return {\r\n loadMemberships(): void {\r\n authservice.getMemberships().subscribe((val) => {\r\n const memberships = val.data ?? [];\r\n localstorageService.setMemberships(memberships);\r\n if (memberships.length === 0) {\r\n return router.navigate(['/auth/logout']);\r\n }\r\n if (memberships.length === 1) {\r\n return this.setMembershipId(memberships[0]);\r\n } else {\r\n return router.navigate(['/auth/switch-membership']);\r\n }\r\n });\r\n },\r\n login(username: string, password: string): void {\r\n patchState(store, {\r\n loading: true,\r\n loginError: false,\r\n sessionRunoutError: false,\r\n isAuthenticated: false,\r\n });\r\n authservice.doLogin(username, password).subscribe((val) => {\r\n if (val.success && val.data) {\r\n patchState(store, { loading: false, isAuthenticated: true });\r\n localstorageService.setAuthToken(val.data);\r\n this.loadMemberships();\r\n } else {\r\n patchState(store, { loading: false, loginError: true });\r\n }\r\n });\r\n },\r\n setMembershipId(membership: Membership): void {\r\n localstorageService.setCurrentMembershipId(membership.id);\r\n localstorageService.setUserId(membership.user_id);\r\n localstorageService.setUsergroupId(membership.usergroup_id);\r\n this.loadPrivileges(membership);\r\n },\r\n loadPrivileges(membership: Membership): void {\r\n authservice.getPrivsForMembership(membership.id).subscribe((val) => {\r\n localstorageService.setPrivs(val.data ?? []);\r\n patchState(store, { hasNewPriv: true });\r\n setTimeout(() => patchState(store, { hasNewPriv: false }), 1000);\r\n router.navigate(['/dashboard']);\r\n });\r\n },\r\n checkValid(): Observable<boolean> {\r\n patchState(store, { loading: true, sessionRunoutError: false });\r\n return authservice.checkIfValid().pipe(\r\n tap((val) => {\r\n if (val.success) {\r\n patchState(store, { loading: false, isAuthenticated: true });\r\n } else {\r\n patchState(store, {\r\n loading: false,\r\n isAuthenticated: false,\r\n sessionRunoutError: localstorageService.getAuthToken() ? true : false,\r\n });\r\n localstorageService.removeAll();\r\n router.navigate(['/auth/login']);\r\n }\r\n }),\r\n switchMap((val) => of(val.success)),\r\n );\r\n },\r\n hasOneOfPrivs(privs: string[]): boolean {\r\n for (const priv of privs) {\r\n if (this.hasPriv(priv)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n hasPriv(priv: string): boolean {\r\n const privs = localstorageService.getPrivs();\r\n if (privs) {\r\n return privs.find((val) => val === priv) !== undefined;\r\n }\r\n return false;\r\n },\r\n logout(): void {\r\n patchState(store, { loading: true });\r\n authservice.doLogout().subscribe((val) => {\r\n if (val.success) {\r\n patchState(store, { loading: false, isAuthenticated: false });\r\n localstorageService.removeAll();\r\n }\r\n });\r\n },\r\n };\r\n }),\r\n);\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn } from '@angular/router';\r\nimport { AuthStore } from '../authstore';\r\n\r\nexport function authGuard(privs: string[]): CanActivateFn {\r\n return () => {\r\n const authStore = inject(AuthStore);\r\n return authStore.checkValid() && (privs.length === 0 || authStore.hasOneOfPrivs(privs));\r\n }\r\n};\r\n\r\n","import { Component, computed, inject, Signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AbstractControl, FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { AuthStore } from '../../authstore';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-ui-login',\r\n imports: [CommonModule, TranslateModule, ReactiveFormsModule],\r\n templateUrl: './login.html'\r\n})\r\nexport class Login {\r\n \r\n private authStore = inject(AuthStore);\r\n\r\n public get isLoading(): Signal<boolean> {\r\n return this.authStore.loading;\r\n }\r\n\r\n public errorType = computed(() => {\r\n if(this.authStore.loginError()) { return 1; }\r\n if(this.authStore.sessionRunoutError()) { return 2; }\r\n return 0;\r\n })\r\n \r\n public formGroup: FormGroup = new FormGroup({\r\n username: new FormControl('', [ Validators.required ]),\r\n password: new FormControl('', [ Validators.required ]),\r\n });\r\n\r\n public get usernameControl(): AbstractControl { return this.formGroup.controls['username']; }\r\n public get passwordControl(): AbstractControl { return this.formGroup.controls['password']; }\r\n\r\n onSubmit() {\r\n this.formGroup.markAllAsTouched(); \r\n if(this.formGroup.valid) {\r\n this.authStore.login(\r\n this.usernameControl.value?.trim(),\r\n this.passwordControl.value?.trim()\r\n )\r\n }\r\n }\r\n}\r\n","@if (isLoading()) {\r\n <div class=\"spinner-border\" role=\"status\">\r\n <span class=\"sr-only\"></span>\r\n </div>\r\n} \r\n@else {\r\n<div class=\"card\">\r\n <div class=\"card-header\">\r\n <h1>{{'alfenoryauthv2.login.header' | translate}}</h1>\r\n </div>\r\n <div class=\"card-body\">\r\n @if (errorType() !== 0) \r\n {\r\n <div class=\"alert alert-danger\" role=\"alert\">\r\n <b>{{'general.messages.error' | translate}}</b>\r\n @if (errorType() === 1) {\r\n {{'alfenoryauthv2.login.loginerror' | translate}}\r\n } \r\n @if (errorType() === 2) {\r\n {{'alfenoryauthv2.login.sessionrunouterror_text' | translate}}\r\n } \r\n </div>\r\n }\r\n <form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\"> \r\n <div class=\"form-floating mb-3\">\r\n <input type=\"email\" class=\"form-control\" formControlName=\"username\" id=\"username\" name=\"username\" autocomplete=\"username\" placeholder=\"Email\" [ngClass]=\"{'is-invalid' : usernameControl.touched && usernameControl.errors}\">\r\n <label for=\"username\">{{'alfenoryauthv2.login.email' | translate}}</label>\r\n <div class=\"invalid-feedback\">\r\n {{'general.messages.required' | translate}}\r\n </div>\r\n </div>\r\n <div class=\"form-floating mb-3\">\r\n <input type=\"password\" class=\"form-control\" formControlName=\"password\" id=\"password\" name=\"password\" autocomplete=\"current-password\" placeholder=\"Passwort\" [ngClass]=\"{'is-invalid' : passwordControl.touched && passwordControl.errors}\">\r\n <label for=\"password\">{{'alfenoryauthv2.login.password' | translate}}</label>\r\n <div class=\"invalid-feedback\">\r\n {{'general.messages.required' | translate}}\r\n </div>\r\n </div>\r\n <button class=\"btn btn-primary\" type=\"submit\">\r\n {{'alfenoryauthv2.login.submit' | translate}}\r\n </button>\r\n </form>\r\n </div>\r\n</div>\r\n}","import { Component, inject, OnInit, Signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AuthStore } from '../../authstore';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-ui-logout',\r\n imports: [CommonModule, TranslateModule],\r\n templateUrl: './logout.html'\r\n})\r\nexport class Logout implements OnInit {\r\n\r\n private authStore = inject(AuthStore);\r\n\r\n public get isLoading(): Signal<boolean> {\r\n return this.authStore.loading;\r\n }\r\n\r\n ngOnInit() : void {\r\n this.authStore.logout();\r\n }\r\n}\r\n","@if(isLoading()) {\r\n <div class=\"spinner-border\" role=\"status\">\r\n <span class=\"sr-only\"></span>\r\n </div>\r\n} @else { \r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <h1>{{'alfenoryauthv2.logout.logout' | translate}}</h1>\r\n </div>\r\n <div class=\"card-body\">\r\n <p>{{'alfenoryauthv2.logout.success_logouttext' | translate}}</p>\r\n <a href=\"/auth/login\">{{ 'alfenoryauthv2.logout.login-link' | translate }}</a>\r\n </div> \r\n </div>\r\n}","import { Directive, inject } from '@angular/core';\r\nimport {\r\n API_URL,\r\n BasicDataResponse,\r\n BasicResponse,\r\n GetFilterQueryParam,\r\n HttpHeaderOptions,\r\n} from '../models';\r\nimport { Observable, of, switchMap } from 'rxjs';\r\nimport { LocalStorageService } from './localstorage.service';\r\nimport { ConnectionService } from './connection.service';\r\n\r\n@Directive()\r\nexport abstract class BasicProvider {\r\n apiUrl = inject(API_URL);\r\n localstorage = inject(LocalStorageService);\r\n connectionService = inject(ConnectionService);\r\n\r\n abstract get url(): string;\r\n\r\n protected get authHeader(): HttpHeaderOptions {\r\n return this.localstorage.getHeaderWithAuth();\r\n }\r\n\r\n protected getQueryFilter(filterParams: GetFilterQueryParam[]): string {\r\n if (filterParams.length === 0) {\r\n return '';\r\n }\r\n return filterParams.map((val) => `filter[${val.key}][${val.relation}]=${val.value}`).join('&');\r\n }\r\n\r\n protected getQueryUrl(filterQueryParams: GetFilterQueryParam[]): string {\r\n const queryFilter = this.getQueryFilter(filterQueryParams);\r\n return `${this.url}${queryFilter ? '?' : ''}${queryFilter}`;\r\n }\r\n\r\n public getWithFilterQueryParams<T>(params: GetFilterQueryParam[]): Observable<T> {\r\n return this.connectionService\r\n .get<BasicDataResponse<T>>(this.getQueryUrl(params), this.authHeader)\r\n .pipe(switchMap((val) => of(val.data)));\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n protected createBasic<T>(url: string, obj: any): Observable<BasicDataResponse<T>> {\r\n return this.connectionService.post<BasicDataResponse<T>>(url, obj, this.authHeader);\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n protected updateBasic<T>(url: string, obj: any): Observable<BasicDataResponse<T>> {\r\n return this.connectionService.patch<BasicDataResponse<T>>(url, obj, this.authHeader);\r\n }\r\n\r\n public removeBasic(url: string): Observable<BasicResponse> {\r\n return this.connectionService.delete(url, this.authHeader);\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { BasicProvider } from './basic-provider';\r\n\r\n@Directive()\r\nexport abstract class BasicProviderAlfenoryAuthV2 extends BasicProvider {\r\n get basicUrlAuthUrl(): string {\r\n return `v1/auth/${this.localstorage.getCurrentMembershipId() ?? ''}`;\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { UsergroupAttribute } from '../models/usergroup-attribute.model';\r\nimport { BasicProviderAlfenoryAuthV2 } from './basic-provider-alfenoryauthv2.service';\r\nimport { BasicDataResponse, BasicResponse } from '../models';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UsergroupAttributesService extends BasicProviderAlfenoryAuthV2 {\r\n override get url(): string {\r\n return `${this.basicUrlAuthUrl}/usergroup/${this.localstorage.getUsergroupId()}/attributes`;\r\n }\r\n\r\n urlWithId(id: string): string {\r\n return `${this.url}/${id}`;\r\n }\r\n\r\n public create(\r\n usergroupAttribute: UsergroupAttribute,\r\n ): Observable<BasicDataResponse<UsergroupAttribute>> {\r\n return this.createBasic<UsergroupAttribute>(this.url, usergroupAttribute);\r\n }\r\n\r\n public update(\r\n usergroupAttribute: UsergroupAttribute,\r\n ): Observable<BasicDataResponse<UsergroupAttribute>> {\r\n return this.updateBasic<UsergroupAttribute>(\r\n this.urlWithId(usergroupAttribute.id),\r\n usergroupAttribute,\r\n );\r\n }\r\n\r\n public remove(id: string): Observable<BasicResponse> {\r\n return this.removeBasic(this.urlWithId(id));\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { Component, computed, inject } from \"@angular/core\";\r\nimport { AuthStore } from \"../../authstore\";\r\nimport { LocalStorageService } from \"../../providers\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { Membership } from \"../../models/auth.model\";\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-ui-switch-membership',\r\n templateUrl: './switch-membership.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class SwitchMembership {\r\n\r\n private authStore = inject(AuthStore);\r\n private localStorageService = inject(LocalStorageService);\r\n public memberships = computed(() => this.localStorageService.getMemberships() ?? []);\r\n\r\n public switch(membership: Membership): void\r\n {\r\n this.authStore.setMembershipId(membership);\r\n }\r\n}","<div class=\"list-group\">\r\n <div class=\"list-group-item\">\r\n <h1>{{'alfenoryauthv2.switchmembership.header' | translate}}</h1>\r\n </div>\r\n <div class=\"list-group-item\">\r\n <p>{{'alfenoryauthv2.switchmembership.text' | translate}}</p>\r\n @for (membership of memberships(); track membership.id) {\r\n <div class=\"pt-2\">\r\n <button class=\"btn btn-outline-primary\" (click)=\"switch(membership)\">{{membership.ug.name}}</button>\r\n </div>\r\n }\r\n </div>\r\n</div>","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { UsergroupAttributeWithType } from '../../models/usergroup-attribute.model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Directive()\r\nexport class UsergroupAttributeBasic {\r\n attribute = input.required<UsergroupAttributeWithType>();\r\n translateService = inject(TranslateService);\r\n label = computed(() =>\r\n this.translateService.instant(`alfenoryauthv2.usergroupattributes.${this.attribute().key}`),\r\n );\r\n}\r\n","import { Directive, effect, output } from '@angular/core';\r\nimport { UsergroupAttributeBasic } from './usergroup-attributes-basic';\r\n\r\n@Directive()\r\nexport class UsergroupAttributeUpdateFieldBase extends UsergroupAttributeBasic {\r\n valueChanges = output<string>();\r\n value = '';\r\n oldValue = '';\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n this.value = this.attribute().value ?? '';\r\n this.oldValue = this.value;\r\n });\r\n }\r\n\r\n triggerValueChange(): void {\r\n if (this.oldValue !== this.value) {\r\n this.valueChanges.emit(this.value);\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { UsergroupAttributeUpdateFieldBase } from './usergroup-attributes-update-field-base';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update-textfield',\r\n template: `\r\n <div class=\"form-floating\">\r\n <input\r\n id=\"attributeTextField\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"triggerValueChange()\"\r\n />\r\n <label for=\"attributeTextField\">{{ label() }}</label>\r\n </div>\r\n `,\r\n imports: [FormsModule],\r\n})\r\nexport class UsergroupAttributeUpdateTextfield extends UsergroupAttributeUpdateFieldBase {}\r\n","import { Component } from '@angular/core';\r\nimport { UsergroupAttributeUpdateFieldBase } from './usergroup-attributes-update-field-base';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update-number',\r\n template: `\r\n <div class=\"form-floating\">\r\n <input\r\n id=\"attributeTextField\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"triggerValueChange()\"\r\n />\r\n <label for=\"attributeTextField\">{{ label() }}</label>\r\n </div>\r\n `,\r\n imports: [FormsModule],\r\n})\r\nexport class UsergroupAttributeUpdateNumber extends UsergroupAttributeUpdateFieldBase {\r\n override triggerValueChange(): void {\r\n this.valueChanges.emit(`${this.value}`);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { UsergroupAttributeUpdateFieldBase } from './usergroup-attributes-update-field-base';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update-textarea',\r\n template: `\r\n <div class=\"form-floating\">\r\n <textarea\r\n id=\"attributeTextField\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"triggerValueChange()\"\r\n ></textarea>\r\n <label for=\"attributeTextField\">{{ label() }}</label>\r\n </div>\r\n `,\r\n imports: [FormsModule],\r\n})\r\nexport class UsergroupAttributeUpdateTextarea extends UsergroupAttributeUpdateFieldBase {}\r\n","import { Component, computed } from '@angular/core';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { UsergroupAttributeUpdateFieldBase } from './usergroup-attributes-update-field-base';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update-select',\r\n template: `\r\n <div class=\"form-floating\">\r\n <select\r\n id=\"attributeTextField\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"value\"\r\n (change)=\"triggerValueChange()\"\r\n >\r\n @for (value of selectableValues(); track value) {\r\n <option [value]=\"value\">\r\n {{ 'alfenoryauthv2.usergroupattributes.selectable_' + value | translate }}\r\n </option>\r\n }\r\n </select>\r\n <label for=\"attributeTextField\">{{ label() }}</label>\r\n </div>\r\n `,\r\n imports: [FormsModule, TranslatePipe],\r\n})\r\nexport class UsergroupAttributeUpdateSelect extends UsergroupAttributeUpdateFieldBase {\r\n selectableValues = computed(() => {\r\n const mapping = this.attribute().typeMapping;\r\n if ('selectableValues' in mapping) {\r\n return mapping.selectableValues;\r\n }\r\n return [];\r\n });\r\n}\r\n","import { Component, inject, input, output } from '@angular/core';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport {\r\n UsergroupAttribute,\r\n UsergroupAttributeEditType,\r\n UsergroupAttributeWithType,\r\n} from '../../models/usergroup-attribute.model';\r\nimport { UsergroupAttributesService } from '../../providers/usergroup-attributes.service';\r\nimport { UsergroupAttributeUpdateTextfield } from './usergroup-attributes-update-textfield';\r\nimport { UsergroupAttributeUpdateNumber } from './usergroup-attributes-update-number';\r\nimport { UsergroupAttributeUpdateTextarea } from './usergroup-attributes-update-textarea';\r\nimport { UsergroupAttributeUpdateSelect } from './usergroup-attributes-update-select';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-update',\r\n template: `\r\n @switch (this.attribute().typeMapping.editType) {\r\n @case (EditType.InputArea) {\r\n <alfenoryauthv2-usergroup-attributes-update-textarea\r\n [attribute]=\"attribute()\"\r\n (valueChanges)=\"updateValue($event)\"\r\n />\r\n }\r\n @case (EditType.InputNumber) {\r\n <alfenoryauthv2-usergroup-attributes-update-number\r\n [attribute]=\"attribute()\"\r\n (valueChanges)=\"updateValue($event)\"\r\n />\r\n }\r\n @case (EditType.selectTypes) {\r\n <alfenoryauthv2-usergroup-attributes-update-select\r\n [attribute]=\"attribute()\"\r\n (valueChanges)=\"updateValue($event)\"\r\n />\r\n }\r\n @default {\r\n <alfenoryauthv2-usergroup-attributes-update-textfield\r\n [attribute]=\"attribute()\"\r\n (valueChanges)=\"updateValue($event)\"\r\n />\r\n }\r\n }\r\n\r\n <button\r\n class=\"btn btn-outline-primary\"\r\n (click)=\"doSave()\"\r\n title=\"{{ 'general.messages.save' | translate }}\"\r\n >\r\n <i class=\"bi-save\"></i>\r\n </button>\r\n `,\r\n imports: [\r\n UsergroupAttributeUpdateTextfield,\r\n UsergroupAttributeUpdateNumber,\r\n UsergroupAttributeUpdateTextarea,\r\n UsergroupAttributeUpdateSelect,\r\n TranslatePipe,\r\n ],\r\n})\r\nexport class UsergroupAttributeUpdate {\r\n attribute = input.required<UsergroupAttributeWithType>();\r\n usergroupAttributeService = inject(UsergroupAttributesService);\r\n EditType = UsergroupAttributeEditType;\r\n value = '';\r\n didSave = output();\r\n\r\n doSave() {\r\n if (this.value) {\r\n if (this.attribute().id) {\r\n this.usergroupAttributeService.update(this.toModel());\r\n } else {\r\n this.usergroupAttributeService.create(this.toModel());\r\n }\r\n } else {\r\n if (this.attribute().id) {\r\n this.usergroupAttributeService.remove(this.attribute().id);\r\n }\r\n }\r\n this.didSave.emit();\r\n }\r\n\r\n updateValue(val: string): void {\r\n this.value = val;\r\n }\r\n\r\n toModel(): UsergroupAttribute {\r\n return {\r\n ...this.attribute(),\r\n value: this.value,\r\n };\r\n }\r\n}\r\n","import { Component, computed, inject, input, output, signal } from '@angular/core';\r\nimport {\r\n UsergroupAttributeEditType,\r\n UsergroupAttributeWithType,\r\n} from '../../models/usergroup-attribute.model';\r\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UsergroupAttributeUpdate } from './usergroup-attributes-update';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-list-detail',\r\n template: `\r\n <div>{{ keyName() }} : {{ value() }}</div>\r\n\r\n <button\r\n class=\"btn btn-outline-primary\"\r\n title=\"{{ 'general.messages.update' | translate }}\"\r\n (click)=\"openUpdate()\"\r\n >\r\n <i class=\"bi-pen\"></i>\r\n </button>\r\n `,\r\n imports: [TranslatePipe],\r\n})\r\nexport class UsergroupAttributesListDetail {\r\n attribute = input.required<UsergroupAttributeWithType>();\r\n keyName = computed(() => `alfenoryauthv2.usergroupattributes.${this.attribute()?.key}`);\r\n private translateService = inject(TranslateService);\r\n private modalService = inject(NgbModal);\r\n\r\n value = computed(() => this.getValue());\r\n didSaveValue = output();\r\n\r\n getValue() {\r\n switch (this.attribute().typeMapping.editType) {\r\n case UsergroupAttributeEditType.InputArea:\r\n return this.translateService.instant('alfenoryauthv2.usergroup-attribute.long-text');\r\n case UsergroupAttributeEditType.selectTypes:\r\n return this.translateService.instant(\r\n `alfenoryauthv2.usergroup-attribute.${this.attribute().value === '' ? 'novalue' : this.attribute().value}`,\r\n );\r\n default:\r\n return this.attribute().value;\r\n }\r\n }\r\n\r\n openUpdate() {\r\n const component = this.modalService.open(UsergroupAttributeUpdate);\r\n component.componentInstance.usergroupAttribute = signal(this.attribute());\r\n component.closed.subscribe(() => this.didSaveValue.emit());\r\n }\r\n}\r\n","import { Component, input, output } from '@angular/core';\r\nimport { UsergroupAttributeWithType } from '../../models/usergroup-attribute.model';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { UsergroupAttributesListDetail } from './usergroup-attributes-list-detail';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes-list',\r\n template: `\r\n <div class=\"list-group\">\r\n <div class=\"list-group-item fw-bold\">\r\n {{ 'alfenoryauthv2.usergroup-attributes.usergroup-attribute' | translate }}\r\n </div>\r\n @for (attribute of attributes(); track attribute.id) {\r\n <alfenoryauthv2-usergroup-attributes-list-detail\r\n class=\"list-group-item d-flex justify-content-between\"\r\n [attribute]=\"attribute\"\r\n (didSaveValue)=\"handleDidSaveValue()\"\r\n />\r\n } @empty {\r\n <div class=\"list-group-item\">\r\n {{ 'general.messages.emptylist' | translate }}\r\n </div>\r\n }\r\n </div>\r\n `,\r\n imports: [TranslatePipe, UsergroupAttributesListDetail],\r\n})\r\nexport class UsergroupAttributesList {\r\n attributes = input<UsergroupAttributeWithType[]>();\r\n didSaveValue = output();\r\n\r\n handleDidSaveValue(): void {\r\n this.didSaveValue.emit();\r\n }\r\n}\r\n","import { Component, computed, effect, inject, input, signal } from '@angular/core';\r\nimport { AuthStore } from '../../authstore';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { UsergroupAttributesService } from '../../providers/usergroup-attributes.service';\r\nimport {\r\n UsergroupAttribute,\r\n UsergroupAttributeEditTypeMapping,\r\n UsergroupAttributeWithType,\r\n} from '../../models/usergroup-attribute.model';\r\nimport { UsergroupAttributesList } from './usergroup-attributes-list';\r\n\r\n@Component({\r\n selector: 'alfenoryauthv2-usergroup-attributes',\r\n template: `\r\n @if (hasPrivilege()) {\r\n @if (isLoading()) {\r\n <div class=\"spinner-border\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n } @else {\r\n <alfenoryauthv2-usergroup-attributes-list\r\n [attributes]=\"attributes()\"\r\n (didSaveValue)=\"loadUsergroupAttributes()\"\r\n />\r\n }\r\n } @else {\r\n <p>{{ 'general.messages.nopriv' | translate }}</p>\r\n }\r\n `,\r\n imports: [TranslatePipe, UsergroupAttributesList],\r\n})\r\nexport class UsergroupAttributes {\r\n editableUsergroupAttributesTypes = input.required<UsergroupAttributeEditTypeMapping[]>();\r\n authStore = inject(AuthStore);\r\n attributesService = inject(UsergroupAttributesService);\r\n attributes = signal([] as UsergroupAttributeWithType[]);\r\n\r\n isLoading = signal(false);\r\n hasPrivilege = computed(() => this.authStore.hasPriv('usergroupattribute.get'));\r\n\r\n constructor() {\r\n this.authStore.checkValid();\r\n effect(() => {\r\n if (this.hasPrivilege()) {\r\n this.loadUsergroupAttributes();\r\n }\r\n });\r\n }\r\n\r\n loadUsergroupAttributes(): void {\r\n this.isLoading.set(true);\r\n this.attributesService.getWithFilterQueryParams<UsergroupAttribute[]>([]).subscribe((ugAts) => {\r\n this.isLoading.set(false);\r\n this.attributes.set(\r\n ugAts\r\n //setUsergroupAttributes with Mapping\r\n .map((val) => this.toUsergroupAttributeWithType(val))\r\n //filter where to mapping are found\r\n .filter((val) => val !== undefined),\r\n );\r\n this.addMissingTypeMappings();\r\n });\r\n }\r\n\r\n toUsergroupAttributeWithType(\r\n usergroupAttribute: UsergroupAttribute,\r\n ): UsergroupAttributeWithType | undefined {\r\n const attributeTypeMapping = this.editableUsergroupAttributesTypes().find(\r\n (val) => val.key === usergroupAttribute.key,\r\n );\r\n if (attributeTypeMapping) {\r\n return {\r\n ...usergroupAttribute,\r\n typeMapping: attributeTypeMapping,\r\n };\r\n }\r\n return undefined;\r\n }\r\n\r\n addMissingTypeMappings(): void {\r\n const currentAttributes = this.attributes();\r\n const existingKeys = new Set(currentAttributes.map((a) => a.key));\r\n\r\n const newElements = this.editableUsergroupAttributesTypes()\r\n .filter((type) => !existingKeys.has(type.key))\r\n .map((type) => ({\r\n key: type.key,\r\n value: '',\r\n id: '',\r\n typeMapping: type,\r\n }));\r\n\r\n if (newElements.length > 0) {\r\n this.attributes.set([...currentAttributes, ...newElements]);\r\n }\r\n }\r\n}\r\n","import { Directive, effect, ElementRef, inject, input } from \"@angular/core\";\r\nimport { AuthStore } from '../authstore/auth.store';\r\n\r\n@Directive({\r\n selector: '[hideIfNoPriv]'\r\n})\r\nexport class HideIfNoPriv {\r\n hideIfNoPriv = input<string>();\r\n authService = inject(AuthStore);\r\n elementRef = inject(ElementRef);\r\n hasNewPriv = this.authService.hasNewPriv;\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.hasNewPriv()) {\r\n this.updateVisibility();\r\n }\r\n });\r\n }\r\n\r\n private updateVisibility() {\r\n const privileges = this.hideIfNoPriv()?.split(';') ?? [];\r\n const isVisible = this.authService.checkValid() && this.authService.hasOneOfPrivs(privileges);\r\n this.elementRef.nativeElement.style.display = isVisible ? '' : 'none';\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1"],"mappings":"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"}
|