209 похожих чатов

Как можно навесить декоратор роли на весь контроллер, а не

на отдельные методы?
Щас получается что проверки на роль не происходит. Есть задекорирую метод класса - будет проверять.

@ApiTags('Автомобили')
@UseGuards(JwtAuthGuard, RolesGuard)
@Controller('cars')
@Roles(UserRole.Customer)
export class CarController {
@Get('allCarsOfUser')
getAllCarsOfUser(): string {
return 'getAllCarsOfUser';
}
}

9 ответов

18 просмотров

const roles = this.reflector.getAll<string[]>( 'roles', [context.getHandler(), context.getClass()] )

Андрей-Иванов Автор вопроса
Georgy Gnezdilov
const roles = this.reflector.getAll<string[]>( ...

Щас приходят роли в декоратор в таком виде [ undefined, [ 'Admin' ] ]. Я так понимаю нужно в плоский массив привести и ходить по нему как раньше? roles.some((role) => role === candidate.role)

Андрей-Иванов Автор вопроса
Андрей-Иванов Автор вопроса
Андрей Иванов
Спасибо. Это работает для меня)

А если я хочу весь контроллер предоставить в свободное пользование "админу", а его некоторое методы только пользователям. Это как то иначе реализуется? Щас у меня приходит только то что из хендлера то есть @Roles(UserRole.Customer)

Ну почему, если на методе нет декоратора, то он будет брать роли, которые на контроллере, а если укажешь на методе - роль перезапишется на ту, которая на методе

Андрей-Иванов Автор вопроса
Georgy Gnezdilov
Ну почему, если на методе нет декоратора, то он бу...

Ну вот да, на методе есть роль кастомера, а на контролеере роль - админа. Я будучи админом дергаю метод(с ролью кастомера) и меня нахрен шлют) потому что роль перетерлась) А вот мерж помогает в этой ситуации

Андрей Иванов
Ну вот да, на методе есть роль кастомера, а на кон...

Я, кстати, чтобы не было кода такого вида @Role(Role.ADMIN, Role.USER), сами роли сделал числами export enum Role { USER, ADMIN } В гарде просто проверяю сравнением return user.role >= role;

Georgy Gnezdilov
Я, кстати, чтобы не было кода такого вида @Role(Ro...

Пока не вижу проблем с репрезентацией этих чисел в человеко-понятные названия, как по мне такой подход проще

Похожие вопросы

Обсуждают сегодня

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта