Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
"moment": "^2.29.1",
"rxjs": "~6.6.0",
"sweetalert2": "^10.15.2",
"swiper": "^6.4.15",
"tslib": "^2.0.0",
"zone.js": "~0.11.3"
},
Expand Down
78 changes: 39 additions & 39 deletions src/app/app-routing.module.ts
Original file line number Diff line number Diff line change
@@ -1,60 +1,60 @@
import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
import {LoginComponent} from './pages/login/login.component';
import {AuthGuard} from './guards/auth.guard';
import {RegisterComponent} from './pages/register/register.component';
import {HomeComponent} from './pages/home/home.component';
import {LoginComponent} from "./pages/login/login.component";
import {AuthGuard} from "./core/guards/auth.guard";
import {RegisterComponent} from "./pages/register/register.component";
import {HomeComponent} from "./pages/home/home.component";
import { CopyrightComponent } from './pages/copyright/copyright.component';
import { TermsprivacyComponent } from './pages/termsprivacy/termsprivacy.component';
import { VerificationEmailComponent } from './pages/utils/verification-email/verification-email.component';
import { ProfileComponent } from './pages/profile/profile.component';
import { PrincipalComponent } from './pages/perfil/principal/principal.component';

import { CounterComponent } from './pages/section/counter/counter.component';
import { SponsorsComponent } from './pages/section/sponsor/sponsors/sponsors.component';
import { ProfiledetailsComponent } from './pages/profile/profiledetails/profiledetails.component';
import { ProfilegruposComponent } from './pages/profile/profilegrupos/profilegrupos.component';
import { ProfileinsigniasComponent } from './pages/profile/profileinsignias/profileinsignias.component';
import { ProfileventosComponent } from './pages/profile/profileventos/profileventos.component';

const routes: Routes = [
// {path:'',outlet:'sponsor', loadChildren: () => import('./pages/section/sponsor/sponsor.module').then(mod => mod.SponsorModule)},
// {path:'course',loadChildren: () => import('./pages/section/course/course.module').then(mod => mod.CourseModule)},
// {path:'comunidad',loadChildren: () => import('./pages/section/comunidad/comunidad.module').then(mod => mod.ComunidadModule)},
// {path: 'sponsorList', component: SponsorsComponent},

// {
// path: 'sponsor',
// outlet: 'sponsor',
// loadChildren: () => import('./pages/section/sponsor/sponsor.module').then(mod => mod.SponsorModule)
// },
// {
// path: 'comunidad',
// outlet: 'comunidad',
// loadChildren: () => import('./pages/section/comunidad/comunidad.module').then(mod => mod.ComunidadModule)
// },
// {
// path: 'course',
// outlet: 'course',
// loadChildren: () => import('./pages/section/course/course.module').then(mod => mod.CourseModule)
// },
// {
// path: 'counter',
// outlet: 'counter',
// loadChildren: () => import('./pages/section/counter/counter.module').then( mod => mod.CounterModule)
// }

//{path:'course',loadChildren: () => import('./pages/section/course/course.module').then(mod => mod.CourseModule)},
//{path:'comunidad',loadChildren: () => import('./pages/section/comunidad/comunidad.module').then(mod => mod.ComunidadModule)},
//{path: 'sponsorList', component: SponsorsComponent},
{
path: '', component: HomeComponent,
children: [
{
path: '',
outlet: 'sponsor',
loadChildren: () => import('./pages/section/sponsor/sponsor.module').then(mod => mod.SponsorModule)
},
{
path: '',
outlet: 'comunidad',
loadChildren: () => import('./pages/section/comunidad/comunidad.module').then(mod => mod.ComunidadModule)
}
]
},
{path: 'profiledetails', component: ProfiledetailsComponent},
{path: 'profilegrupos', component: ProfilegruposComponent},
{path: 'profileinsignias', component: ProfileinsigniasComponent},
{path: 'profileventos', component: ProfileventosComponent},
{path: 'login', component: LoginComponent},
{path: 'register', component: RegisterComponent},
{path: 'copyright', component: CopyrightComponent},
{path: 'verification', component: VerificationEmailComponent},
{path: 'profile', component: ProfileComponent},
{path: 'profile', component: ProfileComponent, canActivate:[AuthGuard]},
{path: 'terms', component: TermsprivacyComponent},
{path: 'counter', component: CounterComponent},
{path: 'home', component: HomeComponent},
{
path: 'perfil',
loadChildren: () => import('./pages/perfil/perfil.module').then( mod => mod.PerfilModule)
},
{path: '**', redirectTo: 'login'}

{path: '**', redirectTo: 'home'}
];

@NgModule({
imports: [RouterModule.forRoot(routes)],
imports: [RouterModule.forRoot(routes,{
enableTracing: true,
preloadingStrategy: PreloadAllModules
})],
exports: [RouterModule]
})
export class AppRoutingModule { }
13 changes: 2 additions & 11 deletions src/app/app.component.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,4 @@
<!--<app-register></app-register>-->
<!-- <app-header></app-header>
<app-header></app-header>
<router-outlet></router-outlet>
<app-footer></app-footer> -->

<div id="main-wrapper">

<app-header></app-header>
<div class="clearfix"></div>

<router-outlet #outlet="outlet"></router-outlet>
<app-footer></app-footer>
</div>
<app-footer></app-footer>
38 changes: 19 additions & 19 deletions src/app/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

// forms
//forms
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
// firebase
//firebase
import { AngularFireModule } from '@angular/fire';
import { environment } from 'src/environments/environment';
import { AngularFirestoreModule } from '@angular/fire/firestore';
Expand All @@ -23,12 +23,15 @@ import { TermsprivacyComponent } from './pages/termsprivacy/termsprivacy.compone
import { RouterModule } from '@angular/router';
import { VerificationEmailComponent } from './pages/utils/verification-email/verification-email.component';
import { ProfileComponent } from './pages/profile/profile.component';
import {TimeService} from './services/time.service';
import { CounterComponent } from './pages/section/counter/counter.component';
import { TimeService } from './core/services/time.service';
//import { SponsorsComponent } from './pages/section/sponsor/sponsors/sponsors.component';
import { ComponentsModule } from './shared/components/components.module';
import { ProfiledetailsComponent } from './pages/profile/profiledetails/profiledetails.component';
import { ProfileinsigniasComponent } from './pages/profile/profileinsignias/profileinsignias.component';
import { ProfilegruposComponent } from './pages/profile/profilegrupos/profilegrupos.component';
import { ProfileventosComponent } from './pages/profile/profileventos/profileventos.component';

import {SponsorsComponent} from './pages/section/sponsor/sponsors/sponsors.component'
import {ComunidadesComponent} from './pages/section/comunidad/comunidades/comunidades.component'
import {CounterComponent} from './pages/section/counter/counter/counter.component'
import {CoursesComponent} from './pages/section/course/courses/courses.component'
@NgModule({
declarations: [
AppComponent,
Expand All @@ -41,10 +44,12 @@ import {CoursesComponent} from './pages/section/course/courses/courses.component
TermsprivacyComponent,
VerificationEmailComponent,
ProfileComponent,
SponsorsComponent,
ComunidadesComponent,
CounterComponent,
CoursesComponent
ProfiledetailsComponent,
ProfileinsigniasComponent,
ProfilegruposComponent,
ProfileventosComponent,
// SponsorsComponent
],
imports: [
BrowserModule,
Expand All @@ -56,14 +61,9 @@ import {CoursesComponent} from './pages/section/course/courses/courses.component
AngularFireAuthModule,
AngularFirestoreModule,
AngularFireStorageModule,
ComponentsModule,
],
entryComponents: [
SponsorsComponent,
ComunidadesComponent,
CounterComponent,
CoursesComponent
],
providers: [ TimeService ],
bootstrap: [AppComponent]
providers: [TimeService],
bootstrap: [AppComponent],
})
export class AppModule { }
export class AppModule {}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ export class AuthGuard implements CanActivate {
constructor(private auth: AuthService, private router: Router) {
}

canActivate():boolean{
if ( this.auth.isAuthenticated() ){
async canActivate(){
const user = await this.auth.isAuthenticated();
if ( user ){
return true;
} else {
this.router.navigateByUrl('/login');
Expand Down
137 changes: 137 additions & 0 deletions src/app/core/services/auth.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { UserModel } from '../../shared/models/user.model';
import { first, map, switchMap } from 'rxjs/operators';
import firebase from 'firebase/app';
import { AngularFireAuth } from '@angular/fire/auth';
import {
AngularFirestore,
AngularFirestoreDocument,
} from '@angular/fire/firestore';
import { Observable, of } from 'rxjs';
import { RoleValidator } from '../../shared/helpers/roleValidator';
@Injectable({
providedIn: 'root',
})
export class AuthService extends RoleValidator {
//private url: string = 'urlApi';
//private apiKey: string = 'apiKey';
private url = 'https://www.googleapis.com/identitytoolkit/v3/relyingparty';
private apiKey = 'AIzaSyDHxlKfchpJrycT_fAOX3JjBCWp_uFlcjI';

public userToken: string = '';
constructor(
private http: HttpClient,
public afAuth: AngularFireAuth,
private db: AngularFirestore
) {
super();
}
GoogleAuth() {
return this.AuthLogin(new firebase.auth.GoogleAuthProvider());
}
FacebookAuth() {
return this.AuthLogin(new firebase.auth.FacebookAuthProvider());
}
async sendVerificationEmail(): Promise<void> {
return (await this.afAuth.currentUser)?.sendEmailVerification();
}
recoveryPassword(emailAddress: string) {
return this.afAuth.sendPasswordResetEmail(emailAddress);
}

// Auth logic to run auth providers
AuthLogin(provider: any) {
this.logOut();
return this.afAuth
.signInWithPopup(provider)
.then((result: any) => {
console.log('You have been successfully logged in!', result);
console.log(
'email, user!',
result.user['email'] + ' ' + result.user['displayName']
);
this.updateUserData(result.user);
})
.catch((error: any) => {
console.log(error);
});
}

async login(userData: UserModel): Promise<any> {
try {
const { user } = await this.afAuth.signInWithEmailAndPassword(
userData.email,
userData.password!
);
if (user) {
this.updateUserData(user);
}
console.log('recordarme: ' + userData.rememberme);
if (userData.rememberme)
this.afAuth.setPersistence(firebase.auth.Auth.Persistence.SESSION);
else this.afAuth.setPersistence(firebase.auth.Auth.Persistence.NONE);
return user;
} catch (error) {
console.log(error);
return error;
}
}

async newUser(userData: UserModel): Promise<any> {
try {
const { user } = await this.afAuth.createUserWithEmailAndPassword(
userData.email,
userData.password!
);
await this.sendVerificationEmail();
const usernew = await this.isAuthenticated();
if (usernew && user) {
usernew.updateProfile({ displayName: userData.displayName });
userData.uid = user.uid;
userData.emailVerified = user.emailVerified;
userData.refreshToken = user.refreshToken;
this.updateUserData(userData);
}
return user;
} catch (error) {
console.log(error);
}
}

logOut(): boolean {
localStorage.removeItem('token');
localStorage.removeItem('displayName');
localStorage.removeItem('email');
this.userToken = '';
return true;
}
async logout(): Promise<void> {
try {
await this.afAuth.signOut();
} catch (error) {
console.log(error);
}
}

isAuthenticated() {
return this.afAuth.authState.pipe(first()).toPromise();
}
private updateUserData(user: any) {
const userRef: AngularFirestoreDocument<UserModel> = this.db.doc(
`users/${user.uid}`
);
//console.log("user saving :"+JSON.stringify(user));
const data: UserModel = {
uid: user.uid,
email: user.email,
emailVerified: user.emailVerified,
displayName: user.displayName,
photoURL: user.photoURL ? user.photoURL : 'assets/photo',
refreshToken: user.refreshToken ? user.refreshToken : '',
organization: user.email!.split('@')[1],
};

return userRef.set(data, { merge: true });
}
}
Loading