mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-03-24 13:40:57 +03:00
Fixed bug that prevented migrations from succeeding
Added scaffolding required for jwt authentication for certain routes Added logger to auth_api Added necessary routing rules for multi-user mode Registration is now possible
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
<mat-card class="login-card">
|
||||
<mat-tab-group>
|
||||
<mat-tab-group [(selectedIndex)]="selectedTabIndex">
|
||||
<mat-tab label="Login">
|
||||
<div style="margin-top: 10px;">
|
||||
<mat-form-field>
|
||||
<input [(ngModel)]="usernameInput" matInput placeholder="User name">
|
||||
<input [(ngModel)]="loginUsernameInput" matInput placeholder="User name">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field>
|
||||
<input [(ngModel)]="passwordInput" type="password" matInput placeholder="Password">
|
||||
<input [(ngModel)]="loginPasswordInput" type="password" matInput placeholder="Password">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px; margin-top: 10px;">
|
||||
@@ -16,7 +16,24 @@
|
||||
</div>
|
||||
</mat-tab>
|
||||
<mat-tab *ngIf="registrationEnabled" label="Register">
|
||||
|
||||
<div style="margin-top: 10px;">
|
||||
<mat-form-field>
|
||||
<input [(ngModel)]="registrationUsernameInput" matInput placeholder="User name">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field>
|
||||
<input [(ngModel)]="registrationPasswordInput" type="password" matInput placeholder="Password">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field>
|
||||
<input [(ngModel)]="registrationPasswordConfirmationInput" type="password" matInput placeholder="Confirm Password">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px; margin-top: 10px;">
|
||||
<button [disabled]="registering" color="primary" (click)="register()" mat-raised-button>Register</button>
|
||||
</div>
|
||||
</mat-tab>
|
||||
</mat-tab-group>
|
||||
</mat-card>
|
||||
@@ -1,5 +1,7 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'app-login',
|
||||
@@ -8,24 +10,82 @@ import { PostsService } from 'app/posts.services';
|
||||
})
|
||||
export class LoginComponent implements OnInit {
|
||||
|
||||
usernameInput = '';
|
||||
passwordInput = '';
|
||||
registrationEnabled = true;
|
||||
selectedTabIndex = 0;
|
||||
|
||||
// login
|
||||
loginUsernameInput = '';
|
||||
loginPasswordInput = '';
|
||||
loggingIn = false;
|
||||
|
||||
constructor(private postsService: PostsService) { }
|
||||
// registration
|
||||
registrationEnabled = true;
|
||||
registrationUsernameInput = '';
|
||||
registrationPasswordInput = '';
|
||||
registrationPasswordConfirmationInput = '';
|
||||
registering = false;
|
||||
|
||||
constructor(private postsService: PostsService, private snackBar: MatSnackBar, private router: Router) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
if (this.postsService.isLoggedIn) {
|
||||
this.router.navigate(['/home']);
|
||||
}
|
||||
}
|
||||
|
||||
login() {
|
||||
this.loggingIn = true;
|
||||
this.postsService.login(this.usernameInput, this.passwordInput).subscribe(res => {
|
||||
this.postsService.login(this.loginUsernameInput, this.loginPasswordInput).subscribe(res => {
|
||||
this.loggingIn = false;
|
||||
console.log(res);
|
||||
}, err => {
|
||||
this.loggingIn = false;
|
||||
});
|
||||
}
|
||||
|
||||
register() {
|
||||
if (!this.registrationUsernameInput || this.registrationUsernameInput === '') {
|
||||
this.openSnackBar('User name is required!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.registrationPasswordInput || this.registrationPasswordInput === '') {
|
||||
this.openSnackBar('Password is required!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.registrationPasswordConfirmationInput || this.registrationPasswordConfirmationInput === '') {
|
||||
this.openSnackBar('Password confirmation is required!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.registrationPasswordInput !== this.registrationPasswordConfirmationInput) {
|
||||
this.openSnackBar('Password confirmation is incorrect!');
|
||||
return;
|
||||
}
|
||||
|
||||
this.registering = true;
|
||||
this.postsService.register(this.registrationUsernameInput, this.registrationPasswordInput).subscribe(res => {
|
||||
this.registering = false;
|
||||
if (res && res['user']) {
|
||||
this.openSnackBar(`User ${res['user']['name']} successfully registered.`);
|
||||
this.loginUsernameInput = res['user']['name'];
|
||||
this.selectedTabIndex = 0;
|
||||
} else {
|
||||
|
||||
}
|
||||
}, err => {
|
||||
this.registering = false;
|
||||
if (err && err.error && typeof err.error === 'string') {
|
||||
this.openSnackBar(err.error);
|
||||
} else {
|
||||
console.log(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public openSnackBar(message: string, action: string = '') {
|
||||
this.snackBar.open(message, action, {
|
||||
duration: 2000,
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user