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

Подскажете без посылания в другой чат? дано: пост-запрос на изменение

данных в один и тот же котроллер
надо: разграничить возможность изменения данных. т.е. если это админ, то может изменять больше полей, чем обычный пользователь.

14 ответов

9 просмотров

гг тебе

а с роутами что? если админ то отправляешь на один роут и одну функцию в контролере, если юзер отправляешь на вторую функцию в том же контролере

Vladimir-Kovalenko Автор вопроса

а если модератор, то на третий, а если прав чуть оттуда и оттуда, то в /dev/null?

Так делать не надо, но если бы мне пришлось, я бы на уровне реквеста описал, какие поля могут быть не пустыми, если человек админ, и выводил на клиенте разные формы. Тогда на сервере не было бы никаких ифов, было бы простое сохранение данных

как по мне лучше сделать отдельный роут но если надо работать с тем что есть надо рганизовать 2 масива с списком полей и запихнуть в only а проверять на права лучше через policy

Vladimir-Kovalenko Автор вопроса

ага, спасиб. в этом направлении и думал. главное красиво эти массива запилить

а если модератор небыло в задаче.

что б я рекомендовал поставить can в контролёре и там в if формировать массив only возможно скоро решишь сделать отдельные роуты и тогда переписывать меньше, а если так потом уведешь картину как лучше обеднить

а можешь объяснить почему это одна форма? я так понимаю там не только админ может больше редактировать Если посмотреть саму задачу, тогда смогу более красивое решения предложить

Vladimir-Kovalenko Автор вопроса

юзер может выбрать группу и какие-то плюшки (ограниченные), модер может убрать их)) админ может ваще всё. в итоге юзер хочет снова убранную плюшку и на тот же урл шлёт запрос)

тоесть получаться пользователь отправляет id при редактировании профиля? Лучше как минимум не давать пользователю указать id е редактировать через auth соответственно тогда получиться как минимум разделения обычных юзеров и модеров, а админ это суперпользователь на которого не будут действовать ограничения (я так понимаю в этом контексте админ и модер может редактировать одинакоіие поля) разница только в том может ли редактировать поле конкретного пользователя итого тогда будет 2 роута пользователь без id модер с id и полиси на права причем если это админ полиси повернет true, а если нет посмотрит есть ли у модера право редактировать этого пользователя так подходит или не совсем точно пойнял?

Vladimir-Kovalenko Автор вопроса

ну как бы да, свели к проблеме что может суперадмин, чего не может модер)

А что может?

Vladimir-Kovalenko Автор вопроса

да банально сделать модером или убрать оттуда)

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта