@symfony_php

Страница 766 из 1418
Bohdan
21.03.2018
20:49:25
воутер на одну, воутер на другую...

как вариант какой-то общий брать и искать клиентский ид вверх

Sergey
21.03.2018
20:49:36
а что если делать по воутеру на роль?

по воутеру на роль + контекст?

Google
Bohdan
21.03.2018
20:49:58
контекст в разрезе домена?

Sergey
21.03.2018
20:49:59
как вариант какой-то общий брать и искать клиентский ид вверх
если тебе позволяет твое приложение обобщать правила - окей

Bohdan
21.03.2018
20:50:10
не позволяет, ты прав

Sergey
21.03.2018
20:50:14
мое например не особо позволяет)

Bohdan
21.03.2018
20:50:17
то так было, идея в воздух

теоретически можно писать один общий + много меньших

т.к.

Sergey
21.03.2018
20:50:37
- тормозной, у меня сотни миллионы обьектов (хотя их подход интересный в плане оптимизации нагрузок) - разграничивать права по пользователям - гуд, но мне нужно развести права еще на группы. В принципе, любой объект может быть владельцем других объектов

Bohdan
21.03.2018
20:50:57
у меня часть воутеров имеет свитч-кейс по действиям на них, а часть просто проверяет принадлежность и кидает 403 при ошибке

и, возможно, проверку на 403 имеет смысл вынести "наверх"

Sergey
21.03.2018
20:54:02
- тормозной, у меня сотни миллионы обьектов (хотя их подход интересный в плане оптимизации нагрузок) - разграничивать права по пользователям - гуд, но мне нужно развести права еще на группы. В принципе, любой объект может быть владельцем других объектов
- сотни и миллионы объектов которые ты грузишь в воутеры? что? - в чем проблема с группами? у меня есть 5 ролей пользователей, которые имеют доступ к определенным ресурсам (причем с пересечением и для каждоой роли свои проверки).

Bohdan
21.03.2018
20:55:25
403, т.к. проверяю по is_granted аннотации (ну или дергаю напрямую в коде, я еще не решил, как лучше) ну и дальше уже хендлер обрабатывает исключение и отдает страничку с мессенджем

Google
Sergey
21.03.2018
20:55:42
а ну это ж не сам воутер, это уже AuthorizationChecker делает

Bohdan
21.03.2018
20:56:07
дергается воутером оно)

тьфу

чекер дергает воутер

Sergey
21.03.2018
20:56:54
нет. Не гружу сотни лямов объектов в вотеры. Наверно не совсем корректно выразился. У меня есть - классические пользователи - классические группы - классические роли В целом, все хорошо. Но как обычно, всегда есть но. Я должен навешивать разрешения не только на пользователя/группу/роль, но и на любой произвольный объект, коих очень много и они все разные

Sergey
21.03.2018
20:58:15
к примеру как?

Sergey
21.03.2018
20:58:30
что-то типа хранить спецификации доступа для сущностей. Ну и как правило у тебя будут дефолтные которые можно расширять (вайт лист пользователей какой-нибудь)

ну то есть вот вообще отдельно все это. ОТдельные таблички, никаких FK, тип сущности, айдишка, кому и чего можно

Sergey
21.03.2018
20:59:48
хм, заманчиво. Есть примеры решений?

Sergey
21.03.2018
21:00:02
хз но делается за вечер

если без UI

Sergey
21.03.2018
21:00:38
он особо и не нужен, этот UI )

Sergey
21.03.2018
21:00:49
а как ты будешь "гибко настраивать что кому можно?"

Sergey
21.03.2018
21:01:05
эх )))

Sergey
21.03.2018
21:01:07
или речь не идет о том что бы можно было для каждой отдельной штуки асайнить права доступа

?

Sergey
21.03.2018
21:01:50
я не буду настраивать. Права бдут подтягиваться из 1C, редмайна, лдап и раздаваться автоматом)))

Google
Sergey
21.03.2018
21:04:00
не совсем. Мозг ломает сильно тк никто и никогда не думал о разграничении доступов в этих подсистемах и все они живут своей отдельной жизнью )

Sergey
21.03.2018
21:04:27
вот по этому воутеры это офигенно.... ты можешь просто по началу всем все разрешать но делать проверки)

а потом все так вот вжух и разрулил)

но конечно для этого надо уже понимать что "проверки прав доступа делать надо всегда". Конечно если ты не личный блог пишешь

Sergey
21.03.2018
21:05:34
так и было. Но потом количество вотеров, исключений и правилл накопилось столько, что просто мракобесие. Хочется все причесать и упорядочить

Sergey
21.03.2018
21:06:49
воутеры - это просто механизм позволяющий тебе организовать какие хочешь проверки. Если тебе не удобно с воутерами, то попробуй перегруппировать проверки

Sergey
21.03.2018
21:07:54
но конечно для этого надо уже понимать что "проверки прав доступа делать надо всегда". Конечно если ты не личный блог пишешь
нет, не блог. Для понимания количества обектов, могу привести ебей. Тьма товаров, все они разные, тьма пользователей..... мрак Да, NDA есть, куда же без него) Поэтому и не могу конкретнее описать масштаб проблем)

Sergey
21.03.2018
21:07:56
если все еще не удобно - придумываем новые типы проверок (как случай когда нам надо отдельно хранить кто куда ходить может)

Bohdan
21.03.2018
21:08:53
подумай еще над моей идеей разделить проверки на воутерах по уровням

Sergey
21.03.2018
21:08:57
ну то есть формализовать правила не особо сложно если посидеть, порисовать и подумать

подумай еще над моей идеей разделить проверки на воутерах по уровням
ну вот я сколько не пробовал - идея делать по воутеру на сущность приводит к раку.

Bohdan
21.03.2018
21:09:28
то бишь, если у тебя есть возможность группировать их (как говорит Сергей) - возможно, получится разложить их "по полочкам" и сделать "конвеер"

Sergey
21.03.2018
21:09:33
люди могут входить в группы, группы могут быть вложенными, люди в группах пересекаются... А еще у людей есть есть индивидуальные роли...

Bohdan
21.03.2018
21:10:07
ну вот я сколько не пробовал - идея делать по воутеру на сущность приводит к раку.
у меня по воутеру на сущность сейчас потому, что походу каждая сущность - уже контекст

Sergey
21.03.2018
21:10:13
ну то есть... ясно что "сложна", но это к воутерам никакого отношения не имеет.

Bohdan
21.03.2018
21:10:33
то, о чем мы говорили - я не могу выделить контекст "биллинг" или "инвентарь" как в примерах всяких

Google
Bohdan
21.03.2018
21:10:48
и это усложняется еще и иерархичностью сущностей

Sergey
21.03.2018
21:11:05
и это усложняется еще и иерархичностью сущностей
ничего не усложняется, грамотно определи границы агрегатов

там где у тебя "вложенные сущности" часто не сущности а только их айдишки на самом деле

Bohdan
21.03.2018
21:11:46
границы функций, ими выполняемых?

Sergey
21.03.2018
21:12:08
ты разбирался что такое агрегаты сущностей? корень агрегата там всякий, границы бизнес транзакций и т.д.

Sergey
21.03.2018
21:12:24
вот пример. есть обект А есть лярд, обектов Б, С, Д.... Нужно получить список обектов, которые может редактировать обьекта А. Вотеры тут не особо помогут (

Bohdan
21.03.2018
21:12:38
окей, гугл как определить, где у меня сущности, а где их айдишки?) идея с shared айдишками?

Admin
ERROR: S client not available

Bohdan
21.03.2018
21:12:53
плаваю

Sergey
21.03.2018
21:13:06
окей, гугл как определить, где у меня сущности, а где их айдишки?) идея с shared айдишками?
если все что тебя интересует - референс на сущность - тебе хватит только айдишки)

и это сильно развязывает руки в плане того что и как можно разделить

Sergey
21.03.2018
21:13:38
К примеру удалили обект А. Нужно удалить все разрешения - это просто пример

Sergey
21.03.2018
21:14:02
К примеру удалили обект А. Нужно удалить все разрешения - это просто пример
ммм.... причем тут ACL? ты можешь потом просто почистить мусор. Еще есть доменные ивенты и прочие штуки.

Sergey
21.03.2018
21:14:11
или просто просмотреть в UI куда имеет доступ обект А

Sergey
21.03.2018
21:14:32
или просто просмотреть в UI куда имеет доступ обект А
ну это ж сам понимаешь к ACL никакого отношения уже не имеет

а что еще может интересовать?)
ну тип там методы в рамках бизнес транзакции надо дергать

Sergey
21.03.2018
21:14:58
нет, не имеет, но очень рядом)

Google
Sergey
21.03.2018
21:15:17
а еще - часто то что ты думаешь должно происходить в рамках одной бизнес транзакции на самом деле две разных

и очень много "проблем" в том что бы видеть границы вызывают привычки и UI

последнее чаще всего приводит к добавлению непонятных связей в сущностях которые даже не нужны

Bohdan
21.03.2018
21:16:51
ну тип там методы в рамках бизнес транзакции надо дергать
во, в моем случае зачастую нужно дергать методы или создавать новые агрегируемые сущности

Bohdan
21.03.2018
21:17:10
последнее чаще всего приводит к добавлению непонятных связей в сущностях которые даже не нужны
со связями у меня тоже печально.... впрочем, это все нужно рассматривать на конкретных примерах конкретных действий

нужно посмотреть и еще раз подумать

Sergey
21.03.2018
21:17:19
блин я плохо помню что там у тебя за штуки

+ у тебя там тоже NDA....

Bohdan
21.03.2018
21:17:37
я не особо описывал детали того, что где происходит

да я думаю себе выписать на листок куда-то схему действий, которые можно выполнять в системе

и желательно со связями, какие действия что затрагивают

типа сущность и для нее рисуем звездочку, где на каждом конце - действие и его зависимости пожалуй, даже не прокидывать линии к самим зависимостям, т.к. будет трешак

Andrew
21.03.2018
21:26:28
вот пример. есть обект А есть лярд, обектов Б, С, Д.... Нужно получить список обектов, которые может редактировать обьекта А. Вотеры тут не особо помогут (
а это точно авторизация доступа? Обычно задача авторизации заключается в простом "имеет ли объект А доступ к объекту Б)

Sergey
21.03.2018
21:26:41
ну то есть обычная логика приложения, фреймворк тут мало чем поможет

Sergey
21.03.2018
21:27:56
да как бы дело и не во фреймворке. Изначально то я хотел найти и посмотреть альтернативы симфонийскому ACL ) У всех своя специфика, если конечно речь не о личном блоге)

Спасибо, коллеги. Натолкнули меня на пару интересных идей. Пойду думать)

Страница 766 из 1418