ngx-admin/src/app/@core/core.module.ts

73 lines
1.6 KiB
TypeScript
Raw Normal View History

import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
2017-04-13 14:24:23 +03:00
import { CommonModule } from '@angular/common';
import { NbAuthModule, NbDummyAuthProvider } from '@nebular/auth';
import { NbSecurityModule, NbRoleProvider } from '@nebular/security';
import { of as observableOf } from 'rxjs/observable/of';
2017-04-13 14:24:23 +03:00
import { throwIfAlreadyLoaded } from './module-import-guard';
import { DataModule } from './data/data.module';
2017-09-20 13:55:34 +03:00
import { AnalyticsService } from './utils/analytics.service';
const NB_CORE_PROVIDERS = [
...DataModule.forRoot().providers,
...NbAuthModule.forRoot({
providers: {
email: {
service: NbDummyAuthProvider,
config: {
delay: 3000,
login: {
rememberMe: true,
},
},
},
},
}).providers,
NbSecurityModule.forRoot({
accessControl: {
guest: {
view: '*',
},
user: {
parent: 'guest',
create: '*',
edit: '*',
remove: '*',
},
},
}).providers,
{
provide: NbRoleProvider,
useValue: {
getRole: () => {
return observableOf('guest'); // here you could provide any role based on any auth flow
},
},
},
2017-09-20 13:55:34 +03:00
AnalyticsService,
];
2017-04-13 14:24:23 +03:00
@NgModule({
imports: [
2017-05-06 15:35:15 +03:00
CommonModule,
2017-04-13 14:24:23 +03:00
],
exports: [
NbAuthModule,
],
2017-05-06 15:35:15 +03:00
declarations: [],
2017-04-13 14:24:23 +03:00
})
export class CoreModule {
constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
throwIfAlreadyLoaded(parentModule, 'CoreModule');
}
static forRoot(): ModuleWithProviders {
return <ModuleWithProviders>{
ngModule: CoreModule,
providers: [
...NB_CORE_PROVIDERS,
],
};
}
2017-04-13 14:24:23 +03:00
}