Skip to content

Commit

Permalink
Merge pull request #4 from Fileless/fix-dependencies
Browse files Browse the repository at this point in the history
Fix dependencies
  • Loading branch information
alx-andru authored Oct 18, 2018
2 parents dbd480f + cad9891 commit 7f73b8c
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 43 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
...

## [1.0.3] - 2018-10-18
### Fixed
- Resolve dependencies for OidcService
- Fix Redirect Logout button in example app

## [1.0.2] - 2018-10-18
### Fixed
Expand All @@ -21,5 +27,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- First release

[1.0.3]: https://github.com/fileless/ng-oidc-client/compare/v1.0.2...v1.0.3
[1.0.2]: https://github.com/fileless/ng-oidc-client/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/fileless/ng-oidc-client/compare/v1.0.0...v1.0.1
27 changes: 9 additions & 18 deletions projects/ng-oidc-client/src/lib/facades/oidc.facade.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,27 @@
import { Injectable, Inject } from '@angular/core';
import { Injectable } from '@angular/core';
import { Store } from '@ngrx/store';
import { OidcClient, SigninRequest, SignoutRequest, User as OidcUser, UserManager } from 'oidc-client';
import { Observable } from 'rxjs';
import { filter, take } from 'rxjs/operators';
import { OidcActions } from '../actions';
import { OidcEvent, RequestArugments } from '../models';
import {
OidcState,
getOidcLoading,
isIdentityExpiring,
isIdentityExpired,
isLoggedIn,
getOidcIdentity,
ErrorState,
selectOidcErrorState
} from '../reducers/oidc.reducer';
import * as fromOidc from '../reducers/oidc.reducer';
import { OidcService } from '../services/oidc.service';

@Injectable({
providedIn: 'root'
})
export class OidcFacade {
constructor(private store: Store<OidcState>, @Inject(OidcService) private oidcService: OidcService) {
constructor(private store: Store<fromOidc.OidcState>, private oidcService: OidcService) {
this.registerDefaultEvents();
}

loading$: Observable<boolean> = this.store.select(getOidcLoading);
expiring$: Observable<boolean> = this.store.select(isIdentityExpiring);
expired$: Observable<boolean> = this.store.select(isIdentityExpired);
loggedIn$: Observable<boolean> = this.store.select(isLoggedIn);
identity$: Observable<OidcUser> = this.store.select(getOidcIdentity);
errors$: Observable<ErrorState> = this.store.select(selectOidcErrorState);
loading$: Observable<boolean> = this.store.select(fromOidc.getOidcLoading);
expiring$: Observable<boolean> = this.store.select(fromOidc.isIdentityExpiring);
expired$: Observable<boolean> = this.store.select(fromOidc.isIdentityExpired);
loggedIn$: Observable<boolean> = this.store.select(fromOidc.isLoggedIn);
identity$: Observable<OidcUser> = this.store.select(fromOidc.getOidcIdentity);
errors$: Observable<fromOidc.ErrorState> = this.store.select(fromOidc.selectOidcErrorState);

// default bindings to events
private addUserUnLoaded = function() {
Expand Down
8 changes: 4 additions & 4 deletions projects/ng-oidc-client/src/lib/ng-oidc-client.module.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { CommonModule } from '@angular/common';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core';
import { EffectsModule } from '@ngrx/effects';
import { StoreModule } from '@ngrx/store';
import { OidcEffects } from './effects/oidc.effect';
import { OidcFacade } from './facades/oidc.facade';
import { Config, OIDC_CONFIG } from './models/config.model';
import { oidcReducer } from './reducers/oidc.reducer';
import { oidcReducer } from './reducers';
import { OidcService } from './services/oidc.service';

@NgModule({
Expand All @@ -19,8 +19,8 @@ export class NgOidcClientModule {
ngModule: NgOidcClientModule,
providers: [
{ provide: OIDC_CONFIG, useValue: config },
{ provide: OidcService, useClass: OidcService, deps: [OIDC_CONFIG] },
{ provide: OidcFacade, useClass: OidcFacade, deps: [OidcService] }
{ provide: OidcService, useClass: OidcService, deps: [OIDC_CONFIG, PLATFORM_ID] },
{ provide: OidcFacade, useClass: OidcFacade}
]
};
}
Expand Down
1 change: 1 addition & 0 deletions projects/ng-oidc-client/src/lib/reducers/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './oidc.reducer';
35 changes: 21 additions & 14 deletions projects/ng-oidc-client/src/lib/services/oidc.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,27 @@ export class OidcService {
private _useCallbackFlag = true;

constructor(@Inject(OIDC_CONFIG) private config: Config, @Inject(PLATFORM_ID) private platformId: Object) {
const { log: logSettings = null, oidc_config: clientSettings } = this.config;
const logSettings = this.config.log;
let clientSettings = this.config.oidc_config;

if (this.config.useCallbackFlag != null) {
this._useCallbackFlag = this.config.useCallbackFlag;
} else {
this._useCallbackFlag = true;
}

if (logSettings) {
Log.level = logSettings.level;
Log.logger = logSettings.logger;
}

if (clientSettings.userStore != null) {
clientSettings = {
...clientSettings,
userStore: clientSettings.userStore()
};
}

this._oidcUserManager = new UserManager(clientSettings);
this._oidcClient = new OidcClient(clientSettings);
}
Expand Down Expand Up @@ -103,30 +113,26 @@ export class OidcService {
}

signInPopup(args?: any): Observable<OidcUser> {
if (this._useCallbackFlag) {
this.setCallbackInformation(true);
}
this.setCallbackInformation(true);

return from(this._oidcUserManager.signinPopup({ ...args }));
}

signInRedirect(args?: any): Observable<OidcUser> {
if (this._useCallbackFlag) {
this.setCallbackInformation(false);
}
this.setCallbackInformation(false);

return from(this._oidcUserManager.signinRedirect({ ...args }));
}

signOutPopup(args?: any): Observable<any> {
if (this._useCallbackFlag) {
this.setCallbackInformation(true);
}
this.setCallbackInformation(true);

return from(this._oidcUserManager.signoutPopup({ ...args }));
}

signOutRedirect(args?: any): Observable<any> {
if (this._useCallbackFlag) {
this.setCallbackInformation(false);
}
this.setCallbackInformation(false);

return from(this._oidcUserManager.signoutRedirect({ ...args }));
}

Expand Down Expand Up @@ -159,7 +165,8 @@ export class OidcService {
}

private setCallbackInformation(isPopupCallback: boolean) {
if (isPlatformBrowser(this.platformId)) {
// is browser and useCallbackFlag set to true or defaults to true
if (isPlatformBrowser(this.platformId) && this._useCallbackFlag) {
localStorage.setItem(StorageKeys.PopupCallback, `${isPopupCallback}`);
}
}
Expand Down
11 changes: 6 additions & 5 deletions src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { EffectsModule } from '@ngrx/effects';
import { routerReducer, RouterReducerState } from '@ngrx/router-store';
import { ActionReducerMap, StoreModule } from '@ngrx/store';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import { NgOidcClientModule, Config } from 'ng-oidc-client';
import { NgOidcClientModule } from 'ng-oidc-client';
import { AppComponent } from './core/components/app/app.component';
import { HomeComponent } from './core/components/home/home.component';
import { OidcGuardService } from './core/providers/oidc-guard.service';
Expand Down Expand Up @@ -73,11 +73,12 @@ export function getWebStorageStateStore() {
accessTokenExpiringNotificationTime: 10,
automaticSilentRenew: true,
userStore: getWebStorageStateStore
},
log: {
logger: console,
level: 0
}
// log: {
// logger: console,
// level: 0
// },
// useCallbackFlag: true
}),
UserModule.forRoot({
urls: {
Expand Down
4 changes: 2 additions & 2 deletions src/app/core/components/app/app.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<span class="example-spacer"></span>
<mat-menu #appMenu="matMenu">
<button mat-menu-item (click)="logoutPopup()">Popup</button>
<button mat-menu-item (click)="logoutPopup()">Redirect</button>
<button mat-menu-item (click)="logoutRedirect()">Redirect</button>
</mat-menu>
<button mat-button [matMenuTriggerFor]="appMenu" *ngIf="loggedIn$ | async">
Sign Out
Expand All @@ -35,4 +35,4 @@
<router-outlet></router-outlet>
</mat-sidenav-content>
</mat-sidenav-container>
</div>
</div>

0 comments on commit 7f73b8c

Please sign in to comment.