Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import {FIREBASE_PROVIDERS, defaultFirebase, firebaseAuthConfig, AuthProviders, AuthMethods, FirebaseListObservable} from 'angularfire2';
import {UserService} from './common/user.service';
import {AuthService, User} from './common/auth.service';
import {WebRTCConfig} from './common/webrtc.config';
import {WebRTCService} from './common/webrtc.service';
@App({
template: '',
config: {}, // http://ionicframework.com/docs/v2/api/config/Config/
providers: [
FIREBASE_PROVIDERS,
defaultFirebase('https://ng2-webrtc.firebaseio.com/'),
firebaseAuthConfig({
provider: AuthProviders.Google,
method: AuthMethods.Popup,
remember: 'default',
scope: ['email']
}),
WebRTCConfig, UserService, AuthService, WebRTCService],
})
export class MyApp {
// We show the fake page here and will change it after success authorization
rootPage: any = HomePage;
constructor(platform: Platform, webRTC: WebRTCService, authService:AuthService, userService:UserService) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
// Let's sign in first
authService.login().then((user: User) => {
AuthProviders,
AuthMethods
} from 'angularfire2';
@App({
templateUrl: 'build/app.html',
config: {}, // http://ionicframework.com/docs/v2/api/config/Config/
providers: [
Story,
User,
Beacons,
FIREBASE_PROVIDERS,
defaultFirebase('https://aofs.firebaseio.com/'),
firebaseAuthConfig({
provider: AuthProviders.Facebook,
method: AuthMethods.Popup,
remember: 'default',
scope: ['email']
})
]
})
class MyApp {
// make HelloIonicPage the root (or first) page
rootPage: any = Start;
pages: Array<{ title: string, component: any }>;
constructor(
private app: IonicApp,
private platform: Platform,
private menu: MenuController
) {
this.initializeApp();
PinItemComponent,
PinDetailComponent,
ModalComponent,
PinEditComponent,
PinCommentComponent,
PinCommentNewComponent
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
HttpModule,
AppRoutes,
AngularFireModule.initializeApp(firebaseConfig, {
provider: AuthProviders.Google,
method: AuthMethods.Popup
}),
RouterModule.forRoot(routes),
StoreModule.provideStore(reducer, {
router: {
path: window.location.pathname + window.location.search
}
}),
// StoreDevtoolsModule.instrumentOnlyWithExtension(),
RouterStoreModule.connectRouter(),
EffectsModule.run(UserAuthEffects),
EffectsModule.run(PinEffects),
EffectsModule.run(CommentEffects),
EffectsModule.run(NotificationEffects),
MasonryModule,
InfiniteScrollModule,
SlimLoadingBarModule.forRoot(),
firebase.auth().signInWithCredential(provider).then(firebaseData => {
this.af.database.list('users').update(firebaseData.uid, {
name: firebaseData.displayName,
email: firebaseData.email,
provider: 'facebook',
image: firebaseData.photoURL
});
observer.next();
});
}, error => {
observer.error(error);
});
} else {
this.af.auth.login({
provider: AuthProviders.Facebook,
method: AuthMethods.Popup
}).then((facebookData) => {
this.af.database.list('users').update(facebookData.auth.uid, {
name: facebookData.auth.displayName,
email: facebookData.auth.email,
provider: 'facebook',
image: facebookData.auth.photoURL
});
observer.next();
}).catch((error) => {
console.info("error", error);
observer.error(error);
});
}
});
}
(dialog: MatDialog, af: AngularFire, dRef: MatDialogRef) => {
let spy = spyOn(af.auth, "login");
fixture.detectChanges();
let deButtons = fixture.debugElement.queryAll(By.css('button'));
deButtons[0].triggerEventHandler('click', null);
expect(af.auth.login).toHaveBeenCalled();
expect(spy.calls.mostRecent().args[0].provider).toBe(AuthProviders.Google, 'Provider Google');
expect(spy.calls.mostRecent().args[0].method).toBe(AuthMethods.Popup, 'Method Popup');
deButtons[1].triggerEventHandler('click', null);
expect(af.auth.login).toHaveBeenCalled();
expect(spy.calls.mostRecent().args[0].provider).toBe(AuthProviders.Facebook, 'Provider Facebook');
expect(spy.calls.mostRecent().args[0].method).toBe(AuthMethods.Popup, 'Method Popup');
deButtons[2].triggerEventHandler('click', null);
expect(af.auth.login).toHaveBeenCalled();
expect(spy.calls.mostRecent().args[0].provider).toBe(AuthProviders.Twitter, 'Provider Twitter');
expect(spy.calls.mostRecent().args[0].method).toBe(AuthMethods.Popup, 'Method Popup');
deButtons[3].triggerEventHandler('click', null);
expect(af.auth.login).toHaveBeenCalled();
expect(spy.calls.mostRecent().args[0].provider).toBe(AuthProviders.Github, 'Provider Github');
expect(spy.calls.mostRecent().args[0].method).toBe(AuthMethods.Popup, 'Method Popup');
let deButtons = fixture.debugElement.queryAll(By.css('button'));
deButtons[0].triggerEventHandler('click', null);
expect(af.auth.login).toHaveBeenCalled();
expect(spy.calls.mostRecent().args[0].provider).toBe(AuthProviders.Google, 'Provider Google');
expect(spy.calls.mostRecent().args[0].method).toBe(AuthMethods.Popup, 'Method Popup');
deButtons[1].triggerEventHandler('click', null);
expect(af.auth.login).toHaveBeenCalled();
expect(spy.calls.mostRecent().args[0].provider).toBe(AuthProviders.Facebook, 'Provider Facebook');
expect(spy.calls.mostRecent().args[0].method).toBe(AuthMethods.Popup, 'Method Popup');
deButtons[2].triggerEventHandler('click', null);
expect(af.auth.login).toHaveBeenCalled();
expect(spy.calls.mostRecent().args[0].provider).toBe(AuthProviders.Twitter, 'Provider Twitter');
expect(spy.calls.mostRecent().args[0].method).toBe(AuthMethods.Popup, 'Method Popup');
deButtons[3].triggerEventHandler('click', null);
expect(af.auth.login).toHaveBeenCalled();
expect(spy.calls.mostRecent().args[0].provider).toBe(AuthProviders.Github, 'Provider Github');
expect(spy.calls.mostRecent().args[0].method).toBe(AuthMethods.Popup, 'Method Popup');
let spy2 = spyOn(dialog, "open")
.and.callFake((type: any, options: any) => {
expect(typeof type).toEqual("function");
expect(options.disableClose).toEqual(false);
});
deButtons[4].triggerEventHandler('click', null);
expect(spy2).toHaveBeenCalled();
let spy3 = spyOn(dRef, "close")
public login(provider: string) {
this.angularFire.auth
.login({
provider: AuthProviders[provider],
method: AuthMethods.Popup,
})
.then(() => {
this.router.navigate(['/todos']);
})
.catch(error => {
alert(error);
})
;
}
}
login() {
this.af.auth.login({
provider: AuthProviders.Google,
method: AuthMethods.Popup,
});
}
login() {
this.af.auth.login({
provider: AuthProviders.Facebook,
method: AuthMethods.Popup
})
}
import {AppComponent} from './app.component';
import {AboutComponent} from './+about/about.component';
import {BenefitsComponent} from './+benefits/benefits.component';
import {GoalsComponent} from './+goals/goals.component';
import {ConductComponent} from './+conduct/conduct.component';
import {BlogComponent} from './+blog/blog.component';
import {GroupsComponent} from './+groups/groups.component';
import {GroupSponsorComponent} from './+group-sponsor/group-sponsor.component';
import {GroupEventsComponent} from './+group-events/group-events.component';
import {GroupAboutComponent} from './+group-about/group-about.component';
import {ChapterMapComponent} from './chapter-map/chapter-map.component';
const firebaseAuthConfig = {
provider: AuthProviders.Google,
method: AuthMethods.Popup
};
@NgModule({
declarations: [
AppComponent,
PolymerElement('app-header'),
PolymerElement('app-toolbar'),
PolymerElement('iron-icon'),
PolymerElement('iron-image'),
PolymerElement('iron-media-query'),
PolymerElement('paper-button'),
PolymerElement('paper-card'),
PolymerElement('paper-icon-button'),
PolymerElement('paper-icon-item'),
AboutComponent,
BenefitsComponent,