我有一个带有身份验证的项目,但现在已关闭。我需要将“管理员”用户设置为默认用户,并且在“身份验证”不起作用时不要从基础上对其进行检查。我知道应该检查一下并在get(): Observable<User> {}
中设置一个默认用户,但是不知道如何。
非常感谢您的帮助!
这是我的代码:
authentication.server.ts
import { User } from '../shared/models/user';
@Injectable()
export class AuthenticationService {
constructor(private http: HttpClient) { }
get(): Observable<User> {
return this.http.get<User>('api/user')
}
}
User.ts
import { UserRole } from '../user-role.enum';
export class Role {
constructor(id: number, name: UserRole) {}
}
export class User {
constructor(
role: Role = null
}
User-role.enum.ts
export enum UserRole {
Admin = 'Admin',
Manager = 'Manager',
User = 'User'
}
答案 0 :(得分:0)
关于您的问题,首先,您的用户类必须指向UserRole枚举,如下所示:
// make sure to put you directory and the name of the object
import { UserRole } from './../enum/User-role.enum';
export class User {
constructor(
id: number = null,
firstName: string = '',
lastName: string = '',
email: string = '',
//the type of role must be te name of object import between {UserRole}
role: UserRole = UserRole.Admin
}
第二秒,当您创建一些用户时,您可以像下面这样:
a)声明:
private userAdmin: User = new User();
b)用于某些方法:
userAdmin.role = UserRole.Admin
最后,请确保在导入类用户时正确指向您的枚举目录。
我想就这些。
答案 1 :(得分:0)
您的服务还可以,但是您已经在将使用该服务的组件上进行了此操作。
在组件上,首先创建一个用户以接收数据:
public returnedUser: User = new User(); // public if you want to use on template
然后,将此代码放在组件的ngInit中以使用该服务,并订阅该服务以从API接收信息。
this.AuthenticationService.get()
.subscribe((data) => {
data = this.returnedUser = data;
});
最后,您将使您的用户进入对象returnUser。
我认为这就是您所需要的。