Skip to content
Snippets Groups Projects
Select Git revision
  • 68383310fa46fb9b8a595c9e80bcf3760dd280e8
  • master default
  • y3
  • y2
  • y1
5 results

main.py

Blame
  • app.module.ts 3.17 KiB
    /**
     * @license
     * Copyright Akveo. All Rights Reserved.
     * Licensed under the MIT License. See License.txt in the project root for license information.
     */
    import { BrowserModule } from '@angular/platform-browser';
    import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
    import { NgModule } from '@angular/core';
    import { HttpClientModule, HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';
    import { ConfigModule, ConfigLoader } from '@ngx-config/core';
    import { ConfigHttpLoader } from '@ngx-config/http-loader';
    import { TranslateHttpLoader } from "@ngx-translate/http-loader";
    import { CoreModule } from './@core/core.module';
    import { ThemeModule } from './@theme/theme.module';
    import { AppComponent } from './app.component';
    import { AppRoutingModule } from './app-routing.module';
    import {
      NbDatepickerModule,
      NbDialogModule,
      NbMenuModule,
      NbSidebarModule,
      NbToastrModule,
      NbWindowModule,
    } from '@nebular/theme';
    import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
    import { NbAuthModule, NbAuthOAuth2Token, NbOAuth2AuthStrategy, NbOAuth2ClientAuthMethod } from '@nebular/auth';
    import { NbRoleProvider, NbSecurityModule } from '@nebular/security';
    import { UserInformationService } from './oauth/services/user-information.service';
    import { TokenInterceptor } from './oauth/services/token.interceptor';
    import { AuthGuard } from './oauth/services/auth.guard';
    import { NbOauth2LogoutComponent } from './oauth/nb-oauth2-logout/nb-oauth2-logout.component';
    import { v4 as uuidv4 } from 'uuid';
    
    export function configFactory(http: HttpClient): ConfigLoader {
      return new ConfigHttpLoader(http, './assets/config.json');
    }
    
    export function createTranslateLoader(http: HttpClient) {
      return new TranslateHttpLoader(http, './assets/i18n/', '.json');
    }
    
    @NgModule({
      declarations: [AppComponent, NbOauth2LogoutComponent],
      imports: [
        BrowserModule,
        BrowserAnimationsModule,
        HttpClientModule,
        AppRoutingModule,
        NbSidebarModule.forRoot(),
        NbMenuModule.forRoot(),
        NbDatepickerModule.forRoot(),
        NbDialogModule.forRoot(),
        NbWindowModule.forRoot(),
        NbToastrModule.forRoot(),
        CoreModule.forRoot(),
        ThemeModule.forRoot(),
        ConfigModule.forRoot({
          provide: ConfigLoader,
          useFactory: configFactory,
          deps: [HttpClient]
        }),
        TranslateModule.forRoot({
          loader: {
            provide: TranslateLoader,
            useFactory: createTranslateLoader,
            deps: [HttpClient],
          },
        }),
        NbAuthModule.forRoot({
          strategies: [     
            NbOAuth2AuthStrategy.setup({
              name: 'idm',
              clientId: ''
            }),
          ],
        }),
        NbSecurityModule.forRoot({
          accessControl: {
            ADMIN:{
              view: '*'
            },
            MANAGER:{
              view: ['external-app','maps','home','about','charts','lorem-ipsum']
            },
            CITIZEN:{
              view: ['home','about','ui-features']
            }
          },
        }),
      ],
      providers:[
        AuthGuard,
        {
          provide: HTTP_INTERCEPTORS,
          useClass: TokenInterceptor,
          multi: true
        },
        { provide: NbRoleProvider, useClass: UserInformationService }
      ],
      bootstrap: [AppComponent],
    })
    export class AppModule {
    }