Size: a a a

2021 April 11

G[

GamIet [UA, Odessa] in symfony
зачем править контроллер? Я предлагаю вместо ($user->isCanView == true) сделать проверку ($user->postPublished >= $min_pposts_published) и всё.
источник

В

Вадим in symfony
Но это детали реализации. Я к тому, что сама логика выполнилась в момент записи, а на чтении вы только читаете флаг и тупо передаёте его в шаблон, и этот же флаг вы проверяете в методе публикации комента.
источник

✨Basic_Instinct✨ in symfony
сомнительно, если условие n вдруг поменяется
источник

G[

GamIet [UA, Odessa] in symfony
Ну т.е. ДВА модуля. правильно?
источник

✨Basic_Instinct✨ in symfony
ну допустим так
источник

G[

GamIet [UA, Odessa] in symfony
ну норм. но это уже детали.. вопрос бы не об этом
источник

Ш

Шурик in symfony
ты же сам говорил, что требования по доступам могут меняться часто. и если в сотне мест ты сделал проверку на $user->postPublished >= $min_pposts_published, а потом выяснится, что кроме количества постов нужно проверять еще и их рейтинг - что делать?
источник

G[

GamIet [UA, Odessa] in symfony
у модели users сделать метод isCanViewPost() и внутри реализовать всю логику и менять в одном месте.
источник

G[

GamIet [UA, Odessa] in symfony
но в базе хранить не флаг, а число постов)
источник

В

Вадим in symfony
Все опять же зависит от того как это важно для бизнеса, если это константа в коде которая редко меняется, то поменяли н сделали миграцию которая пересчитает все и проставит флаги по новой, если будет требование что это должно изменяется с админки, тогда возможно будет другое решение
источник

Ш

Шурик in symfony
а их рейтинг где хранить?
источник

G[

GamIet [UA, Odessa] in symfony
там же в базе в Users. если это единый рейтинг пользователя
источник

Ш

Шурик in symfony
и ты же сам сказал обратное. вот твои слова
Я предлагаю вместо ($user->isCanView == true) сделать проверку ($user->postPublished >= $min_pposts_published) и всё.
источник

✨Basic_Instinct✨ in symfony
уходим от сути
источник

G[

GamIet [UA, Odessa] in symfony
или сделать UsersDetails для всяких экстра-счетчиков
источник

✨Basic_Instinct✨ in symfony
бизнес зло?
источник

В

Вадим in symfony
Детали -- это что именно хранить, количество постов или булеан. Основной посыл был в том, что логика не отрабатывает на каждое чтение, а проверяется только результат
источник

Ш

Шурик in symfony
а зачем каждый раз пересчитывать права доступа? не лучше ли при наступлении события давать/отнимать права?
источник

✨Basic_Instinct✨ in symfony
для модуля это все ровно бизнес, не имеет значения пересчитал ты, или прочел флаг
источник

✨Basic_Instinct✨ in symfony
условие если пользователь имеет n постов, даем доступ
источник