Anton
🙂
Maksim (Ellrion)
так try cath же прекрасно работает там что вы тут мусолите?
Anton
Anton
ну... по заявлениям ТС...
Maksim (Ellrion)
Anton
Вариант огонь! Но вдруг там у ТС нельзя такое делать 🙂
Denis
Ага, спасибо я уже решил вопрос.
Anton
Даже на 400 bad request
Сергей
подскажите у меня роут имеет вот такой 'middleware' => ['auth', 'role:manager', 'role:admin']
как сделать так чтобы юзер manager имел доступ к пути, сейчас не имеет из за того что нет админа
Сергей
вот красавчик) спасибо)
SarcasmIO
Евгений
правильно
Евгений
то есть это нормально других людей просить за себя смотреть в доку?
Евгений
скажи, это было в доке?
Сергей
скажи, это было в доке?
там обычный пример
Route::put('post/{id}', function ($id) {
//
})->middleware('role:editor');
Евгений
какой пакет юзаешь для ролей?
Сергей
Igor
Есть бд. В бд есть таблица с фильмами, странами (1 ко многим), студиями(1 ко ногим), жанрами (многие ко многим), актёрами (многие ко многим).
Нужно получить список фильмов с определёнными странами, студиями, жанрами и актёрами.
Со связями 1 ко многим легче - т.к. фильмы и идентификаторы находятся в 1 таблице. Но кол-во выбранных стран и студий может разниться . Делать несколько запросов в бд и совмещать результаты?
Например:
$films = array();
foreach ($counties as $country) {
$films = array_merge ($films, Films::where('country_id', $country)
}
Выходит очень дофига запросов к бд.
А если посмотреть на то что ещё есть связи многие ко многим дак это вообще печаль получается, ибо связь с основной таблицей там имется только через вспомогательные по ключам. При этом всём нужно всё это дело сортировать по дате / году выпуска / алфавиту / рейтингу и т.п.
Вроде как в ларавеле есть функции облегчающие и оптимизирующие всё это дело.
Подскажите пожалуйста как это всё грамотно сделать?
Сергей
ну кстати с таким вариантом если у админа нет менеджера в ролях то не пускает)
Сергей
пускает)
Сергей
меняю местами и по разному работает 'role:admin,manager']
Сергей
если менагер первый то манагера пускает а просто админа нет и наоборот если админ первый то просто манагера не пускает)
Maksim (Ellrion)
role и так его мидл
Сергей
Евгений
Maksim (Ellrion)
@kardashov ты лучше на основании ролей определи абилки (или политики) и юзай can
Евгений
Film::whereHas('countries', function($query) use ($countriesIds) {
$query->whereIn('id', $countriesIds);
})->whereHas('genres', ....)....
Maksim (Ellrion)
похоже на то)
Евгений
Евгений
сделай тут перед id dd($role);
Maksim (Ellrion)
explode только наверное
Сергей
у меня api как я can смогу юзать?
Евгений
public function handle($request, Closure $next, array $roles) попробуй и сделай dd($roles)
Igor
Евгений
всё равно, там через связь вытаскивается
Maksim (Ellrion)
Евгений
просто массив да
Евгений
ну тогда верни стринг и делай explode
Евгений
Евгений
ты dd($role); делал и там одна роль?
Сергей
Евгений
в каом то проекте я делал мидлварю с ролями, щас попробую вспомнить где и посмотрю
Евгений
смотри через дебагбар
Сергей
ну кстати да) массив получается
Евгений
а тьфу блин, я забыл про вариант с ...
Евгений
так и делал у себя
Сергей
ну дальше всё понятно уже как делать)
Сергей
а что вы юзаете для ролей?
Евгений
примерно то же самое
Сергей
Евгений
хотя у меня в последних проектах кроме роли админа ничего не было, поэтому там намного проще) у юзера is_admin поле и всё
Сергей
а вот с ролями лучше держать массив ролей у юзера или одну роль? как тут правильнее?
Евгений
https://github.com/romanbican/roles - вот один раз юзал пакет, но в итоге очень мало что из него использовал. Да и давно это было. И пакет сам по всей видимости уже не поддерживается
Maksim (Ellrion)
Anonymous
топлю за bouncer
Anonymous
но сам какого то хера юзаю laratrust
Сергей
а если ты фрилансер и ты сам себя просишь?)
Maksim (Ellrion)
фигня все эти пакеты. или юзать половину не будешь или переделаешь половину под себя в итоге
Anton
а я entrust юзал )
Maksim (Ellrion)
видимо мы по разному понимаем этот термин тогда
Maksim (Ellrion)
тебе говорят что отменять заказы могут только менеджер ведущий клиента и директор на всякий случай. это не бизнес логика?
Nik
RBAC и есть часть БЛ
Maksim (Ellrion)
бл - " совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика — это реализация правил и ограничений автоматизируемых операций."
Maksim (Ellrion)
контроль доста это те самые ограничения операций. на равне с правилами валидации и т.д.
а ты со своим DDD в вакууме иде лесом)
Anton
в DDD авторизация думаю на слое приложения а не домена находится
Nik
Допил пиво, вышел из бара, чуть позже гляну :)
MAGI
поподробнее с этого момента
Anton
просто тут у каждого свое мнение, один топит за DDD, другой понимает иначе