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

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

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

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

9 ответов

15 просмотров

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

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

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

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

Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
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
any reference of this implementation?
BitBuddha
29
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
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
Ⓐrtto, [4/23/24 7:02 PM] Please explain more fully how it is not working exactly, and what are the steps you are taking, and what error messages come or what happens. Ⓐrtto, ...
Ezza Kezza
2
Btw looks like Kushti is at it with 6.0, has he shared any plans to stop developing Ergo or just to keep going indefinitely?
Original Ergonaut Manley
16
sounds like people have lost their kaspa on tradeogre... does this mean tradeogre not trustworthy?
Ezza Kezza
15
So much speculation in the last week. So much volatility in price. This is because Hedera has a GC that isn't using the network it's governing. Why aren't people asking why a...
Summit Seeker R
9
Question: How viable is it to use Anvil as the backend infrastructure for managing a TradFi portfolio, while integrating Flexa for instant liquidity and payment solutions? Cou...
Kevin
2
Карта сайта