definma-ui/src/app/login/login.component.ts
2020-09-03 15:51:53 +02:00

63 lines
1.7 KiB
TypeScript

import {Component, OnInit, ViewChild} from '@angular/core';
import {ValidationService} from '../services/validation.service';
import {LoginService} from '../services/login.service';
import {Router} from '@angular/router';
import {ApiService} from '../services/api.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
username = ''; // credentials
password = '';
email = '';
message = ''; // message below login fields
passreset = false; // to toggle between normal login and password reset form
@ViewChild('loginForm') loginForm;
constructor(
private validate: ValidationService,
private login: LoginService,
private api: ApiService,
private router: Router
) { }
ngOnInit() {
}
userLogin() {
if (this.passreset) { // reset password
this.api.post('/user/passreset', {name: this.username, email: this.email}, (data, err) => {
if (err) {
this.message = 'Could not find a valid user';
}
else {
this.message = 'Password reset, check your inbox';
}
});
}
else {
this.login.login(this.username, this.password).then(ok => {
if (ok) {
this.message = 'Login successful';
if (this.login.isLevel.read) {
this.router.navigate(['/samples']);
}
else { // navigate prediction users to prediction as they cannot access samples
this.router.navigate(['/prediction']);
}
}
else {
this.message = 'Wrong credentials!';
}
});
}
}
}