У меня есть большой проект с аутентификацией, но теперь он выключен. Я могу видеть страницу "/ admin" и все остальное, но есть блоки с *ngIf="isAdmin"
, происходящим из authentication.server
. Мне нужно установить пользователя Admin по умолчанию и не проверять его из базы, когда аутентификация отключена, чтобы я мог видеть все блоки. Я знаю, что нужно сделать проверку и установить пользователя по умолчанию в get(): Observable<User> {}
, но не понимаю, как это сделать правильно. Сначала я подумал, что просто создайте new User()
с role = "UserRole.Admin"
, но не могу вернуть простой объект, причину Observable
. Как мне вернуть пользователя по умолчанию? Был бы очень признателен за любую помощь!
Вот мой код:
в компонентах он выглядит так:
this.authentificationService.get()
.subscribe((user: User) => this.isAdmin = user.role.name === UserRole.Admin);
authentication.server.ts
import { Injectable } from '@angular/core';
import { HttpClient} from '@angular/common/http';
import { Observable } from 'rxjs';
import { User } from '../shared/models/user';
@Injectable()
export class AuthenticationService {
private backEndUrl = 'api/user';
constructor(private http: HttpClient) { }
get(): Observable<User> {
// need to return default User here in correct format
return this.http.get<User>(this.backEndUrl)
}
}
User.ts
import { UserRole } from '../user-role.enum';
export class Role {
constructor(id: number, name: UserRole) {}
}
export class User {
constructor(
id: number = null,
firstName: string = '',
lastName: string = '',
email: string = '',
role: Role = null
}
User-role.enum.ts
export enum UserRole {
Admin = 'Admin',
Manager = 'Manager',
User = 'User'
}