Size: a a a

2021 October 21

AK

Andrey K in Evolution CMS
Эмм. Ну вот пошёл юзер у меня по роуте
/machine/part/22
Я обрабатываю это контроллером PartsController
Откуда он там узнает, что всё ок и это нужный цех?
Я ставлю в функции в контроллере гейт, в гейте пытаюсь проверить права.
Соответственно там и пишу это вот выше с return $_p->machine->branches->first()->users->pluck('id');
источник

AA

Am Ambrion in Evolution CMS
В этой логике пользователь не должен видеть вообще роут такой.
Или проверять в таком роуте доступ к цеху. Раз когда есть доступ к цеху, то все остальное можно.
источник

AA

Am Ambrion in Evolution CMS
Тут у Вас проблема в том что Вы не получаете нужный атрибут в роуте.
источник

AA

Am Ambrion in Evolution CMS
Должно быть так, раз нужно показать такой роут:
/machine/ID_цеха/part/22
источник

AK

Andrey K in Evolution CMS
Да.
"Цех" по сути, невидим юзеру. Он заходит и ему норм, он работает внутри со станками.
А вот админ у себя группирует это по разной логике нужной цеха, станки
источник

AK

Andrey K in Evolution CMS
Опять же, это "закладка" на будущее, т.к. возможна смена цеха в интерфейсе. Вдруг да будет какой-то особо трудолюбивый начальник, который аж разрывается между двумя точками.
источник

AA

Am Ambrion in Evolution CMS
Упустил Вашу мысль. ((%

Когда есть пользователь, то у него должен быть роут по которому Вы должны уметь правильно определить доступ к запчасти, станку, цеху.
Все это делается добавлением в роут атрибута ID_цеха по которому в любой части Вы сможете сделать один запрос указав в нем user_id и ID_цеха.  Раз есть доступ в цех, значит к станкам и запчастям тоже (как Вы говорили ранее).
источник

AK

Andrey K in Evolution CMS
Ок. Представим ситуацию, где я делаю аякс-запрос с айди запчасти. Скажем, юзер её в корзинку суёт.
/ajax/card/addpart/22
И как реагировать? Тоже номер цеха передавать? Не секьюрно ни разу.
источник

AA

Am Ambrion in Evolution CMS
Почему? Вы ж определяете по этому какой доступ. Пара id_user - ID_цеха у Вас записана в БД. user_Id Вы получаете из сессии. Раз у Вас в сессии уже этот пользователь, то более чем ему нужно уже не будет.
источник

AK

Andrey K in Evolution CMS
Давайте "обнулимся".
Юзер смотрит на модель. Не важно, какой роут. Нет там ничего, просто /part/22
А мне надо проверить, может ли он смотреть на эту модель, исходя из условий, что эта модель привязана к другой, которая привязана к ещё другой, у которой айди равен айди юзера)
источник

AA

Am Ambrion in Evolution CMS
Дык, для этого и создали роуты. Их ненужно делать как /part/22 Их нужно планировать так чтобы была иерархия определенная.
источник

AA

Am Ambrion in Evolution CMS
Т.е. у Вас в этой системе ничего кроме роута и сессии вообще нет.
источник

AK

Andrey K in Evolution CMS
Ну нет таких роутов, вот такое задание.
источник

AA

Am Ambrion in Evolution CMS
Раз роутов таких нет, то нужно исходить только из того что есть. Тут и думать нечего. ((%
источник

AK

Andrey K in Evolution CMS
Вот я и исхожу — карабкаясь по методам моделей вверх.
Так можно или это криво? И это "тяжело" в плане запросов каких-то
источник

AA

Am Ambrion in Evolution CMS
Раз у Вас такое задание и нельзя ничего менять, то тут выбор только так и делать - можно простыми запросами получить то что нужно, можно сложными. Тут проблема в архитектуре.
источник

AK

Andrey K in Evolution CMS
Спасибо. Не очень понимаю эти связи в плане "как оно будет когда зайдёт 1000 человек"
источник

МФ

Максим Филин... in Evolution CMS
если кеша не будет, будет плохо )
источник

AA

Am Ambrion in Evolution CMS
Для этого и есть тесты. Хотя бы базовые a/b от апачи. ((:
источник

DL

Dmytro Lukianenko in Evolution CMS
jMeter есть можно сымулировать нагрузку какую надо
источник