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

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

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

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

9 ответов

7 просмотров

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...

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

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

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

Hi everyone, long time no see! 🐼 recently i want to update our Ergo Eco-System map, can everyone help to find out, which to delete and other new to add in? list it, that i can...
HEROKOO
13
I will wait, no problem, I invested in other project also, but with my 8 years experience I can see when something is not good enough. Last bull market everyone was so excited...
jeronim jurakovic
1
This topic is discussed al lot. Please use the search function for the answers. The same question pops up every two weeks. First check this video https://www.youtube.com/watch...
Enrico
2
If arrr gets implemented on cake wallet. Would that mean arrr/xmr swaps possible in cake wallet like atomic swaps on komodowallet ?
Keks Meister 🏴‍☠️
22
30 BCH videos in Hausa Language successfully delivered. In December 2023, I created a Flipstarter to produce Bitcoin Cash videos in the Hausa language for greater outreach an...
Munnir
9
Yeh scammer hai kya ? 🙄 mujhre bhi solana invest ke liye bol re thi kal
Amit
18
Hello team of Kadena, every day 100 000 coins more on market, no news no partnership, how do you think that someone will notice Kadena with so small volume and on the 247th pl...
jeronim jurakovic
13
Hi. Kindly share the transaction hash of the swap you executed. Also what do you mean by metamask volt, please?
Michael | Kyber Network
11
@AMP_Whale do we earn anvil inu for staking it for 4 years?
Drunken Barbie
16
Hi. Is there something wrong in koala wallet or is it just my new phone? Balance is 0.00
Jani Ginman
12
Карта сайта