
Maksim
04.07.2019
15:07:21
и последняя кратная 10 позиция и есть айдишка последнего
гениально )
@miksir спасибо

Google

??????
04.07.2019
15:16:23
если есть 21 а не 20 значит есть и следующая страница, показываете только 20

Виктория
04.07.2019
15:45:34
Всем привет!
Компания ManyChat приглашает на Meetup "Performance talks", который состоится 12 июля в 18:30. Темой встречи станет производительность бекенда.
Мероприятие бесплатное, проходит в Москве. Подробности и форму регистрации легко найти по ссылке: https://manychat.timepad.ru/event/1014343/
Приходите, будем очень рады?

FrontendPro™
04.07.2019
15:45:51

Vitaliy Nameless
04.07.2019
17:24:35
Mnepechot

⠀
05.07.2019
15:40:43
?

Alexander
05.07.2019
16:42:00
Как думаете Intel Core i7-6700 не слабоват для сервера: память 64 GB диск 2x 512GB NVMe SSD сеть 1 Gbps 30TB ?

Aefseo
05.07.2019
16:50:44
Хвастаешься?

⠀
05.07.2019
16:51:27

Alexander
05.07.2019
16:53:17
не, подешевке сервер предлагают )
а мне как раз надо много ssd и памяти 25 гб + хороший канал...но вот процессор вызывает сомнения
короче я заказал, бум пробовать

Pavel
05.07.2019
17:49:08
Core i7 конечно не такой крутой как ксеон, но для мини-хайлоада пойдет

Google

??????
05.07.2019
18:04:31
мини хайлоад ))) этот как оценка 4 .. мол хорошо но есть куда стараться ))))


Grigoriy
06.07.2019
00:34:20
кто нибудь знает способ грамотно вести полномочия пользователей сайта/апишки/админки?
если написать стандартизированный рест контроллер который работает со всеми таблицами в базе получается что тот у кого есть доступ на апи может к примеру обновить свой заказ и привязать к нему чужие заказы поскольку для базы это всего лишь записи и так можно. можно поставить полномочие orders.update и выдавать его только админам, но тогда юзер в принципе не сможет обновить свой заказ. даже если сделать заказы необновляемыми - есть таблица пользователей куда можно привязать роли. и там такая же ерунда - если апишка дает право обновлять юзера и привязывать к нему связанные модели, то любой у кого есть доступ на обновление юзеров, может привязать себе любую роль. Получается что одни полномочия для входа на апишку, другие для того чтобы узнать что он привязать может, а что - нет. и это все получаются какие-то частные случаи, которые разве что в контроллер вшить...
логика кому можно и что можно выглядит слишком гибкой чтобы написать ее единообразно, или я ее не так понимаю
можно попробовать в выборку моделей всунуть глобальное условие что юзер не может получить роли которые выше его собственной. но тогда по запросу /get/roles/admin он тоже получит фигу, т.к. это роль выше пользовательской, то есть он даже справку не сможет получить какие роли бывают. таким образом тут получается фильтруются не те данные что я пытаюсь запросить селектом, а прям как-то в момент загрузки связей нужно применить собственную логику, которая для каждой страницы может быть своя - то есть в случае с заказом - проверять айди владельца, в случае с ролью - проверять старшинство ролей и тд
как вы бы это сделали?


Terminator
06.07.2019
04:59:44
@mayerstar будет жить. Поприветствуем!

Анна
06.07.2019
05:00:02
Всем привет!
Ищем на стажировку программиста PHP (junior).
Нацелены брать людей, которые готовы быстро включаться в проект и не пропадают.
В свою очередь, чем мы интересны?
Мы начинаем стартап-проект и планируем привлекать инвестиции. Даем возможность с минимальными начальными навыками стать частью крутой команды по разработке.
У нас будут интересные проекты, которые реально нужны конечному потребителю.
Здесь вы научитесь быть частью команды. Увидите весь процесс создания IT-продукта от начала до конца.
За всеми подробностями пишите мне


Pavel
06.07.2019
07:07:39
кто нибудь знает способ грамотно вести полномочия пользователей сайта/апишки/админки?
если написать стандартизированный рест контроллер который работает со всеми таблицами в базе получается что тот у кого есть доступ на апи может к примеру обновить свой заказ и привязать к нему чужие заказы поскольку для базы это всего лишь записи и так можно. можно поставить полномочие orders.update и выдавать его только админам, но тогда юзер в принципе не сможет обновить свой заказ. даже если сделать заказы необновляемыми - есть таблица пользователей куда можно привязать роли. и там такая же ерунда - если апишка дает право обновлять юзера и привязывать к нему связанные модели, то любой у кого есть доступ на обновление юзеров, может привязать себе любую роль. Получается что одни полномочия для входа на апишку, другие для того чтобы узнать что он привязать может, а что - нет. и это все получаются какие-то частные случаи, которые разве что в контроллер вшить...
логика кому можно и что можно выглядит слишком гибкой чтобы написать ее единообразно, или я ее не так понимаю
можно попробовать в выборку моделей всунуть глобальное условие что юзер не может получить роли которые выше его собственной. но тогда по запросу /get/roles/admin он тоже получит фигу, т.к. это роль выше пользовательской, то есть он даже справку не сможет получить какие роли бывают. таким образом тут получается фильтруются не те данные что я пытаюсь запросить селектом, а прям как-то в момент загрузки связей нужно применить собственную логику, которая для каждой страницы может быть своя - то есть в случае с заказом - проверять айди владельца, в случае с ролью - проверять старшинство ролей и тд
как вы бы это сделали?
Есть же RBAC


Grigoriy
06.07.2019
08:05:48

Pavel
06.07.2019
08:06:48
Чево минус один, используй рбак, не создавай проблемы окружающим разработчикам

Grigoriy
06.07.2019
08:07:05

Pavel
06.07.2019
08:07:07
Если возьмешь abac будет вообще отлично

Grigoriy
06.07.2019
08:09:58
Если возьмешь abac будет вообще отлично
вот скажи, тебя спросили как таблицы ролей написать? или может как колбэки сделать? или как почитать определения? как заглянуть в вики?
тебя спросили как бы вы это сделали. какой рбак абак? это желание ответить 4-мя буквами? или желание отправить читать про абстракцию, уважаемый?
ты мне покажи как ты бы реализовал у себя рбак хоть бы псевдокодом. чем по твоему мнению отличается абак. а не ты мне 4 буквы как собачонке кинул и сейчас будешь доказывать что помог
у меня и рбак и абак подключены по-моему. но только мы не придем ни к чему если ты мне будешь доказывать что "у меня неправильный абак"
просто скажи какой правильный. я не враг тебе

Pavel
06.07.2019
08:10:58

Grigoriy
06.07.2019
08:11:16

Gena
06.07.2019
08:16:56

Grigoriy
06.07.2019
08:17:42

Gena
06.07.2019
08:18:58

Grigoriy
06.07.2019
08:20:56

Pavel
06.07.2019
08:21:03
Я вот щас перечитал его вопрос в третий раз и понял что он походу касается надстройки над rbac а не самой организации ролей :) В любом случае ответ на него нетривиальный и заморачиваться вникать в задачу врядли кто будет.

Google

Grigoriy
06.07.2019
08:22:01
справедливо, я считаю
кто-то будет работать, а на ком-то поедем

Pavel
06.07.2019
08:23:39
Просто ты себя так ведешь как будто тут все должны стараться вникнуть в задачу разложить все по полочкам и написать тебе код, а ты соблаговолишь принять помощь. Не надо так. Сам раскручивай цепочку объяснений чтобы те кто может помочь поняли все в лучшем виде.

Grigoriy
06.07.2019
08:24:24
потому что я сам бы так сделал.
и потом я задал вопрос. полный и исчерпывающий на три абзаца. получил 10 обвинений в тупости и научение жизни. но не ответ
сейчас тебе хочется обьяснить что я не хороший и поэтому ты мне не помогаешь. но у меня нет хороших и плохих. есть другие. и есть проблема. хороший и плохой это про деньги

Terminator
06.07.2019
08:27:34
@serhii_cho будет жить. Поприветствуем!

Pavel
06.07.2019
08:27:48
Исчерпывающий он будет если будет полная UML диаграмма, описание предметной области, стек технологий и доступ к исходникам с проектной документацией. А так это просто поток сознания.

Grigoriy
06.07.2019
08:28:32
опять учите. ну что за...

Pavel
06.07.2019
08:28:51
Поэтому я и резюмировал что реально никто не будет вникать )

Gena
06.07.2019
08:29:21
Смотри, я тебе посоветовал вникнуть глубже в рбак. Почему? - да потому что если ты вникнешь, то у тебя и вопросы сразу отбросятся.
Привожу пример с твоими ордерами и апдейтом.
Пользователь может апдейтить только СВОИ ордера, а админ может править все.
Та же история и с апдейтом юзера. Юзер может править только свой профиль, а админ - все

Grigoriy
06.07.2019
08:37:57
в моем случае он в контроллер войти должен, ведь это его заказ. но мне нужно проверять чуть ли не в каждом плевке можно или нельзя. и полотно ифов которое получится мне не нравится
не просто тем что это ифы. а тем что когда я буду писать админку и её контроллеры, то мне придется повторить это полотно ифов
а если просто выкинуть ифы в сервис который создает заказы, то получается что для таблицы заказов у меня будет куча частных случаев в виде ифов, вместо заранее заготовленных кусков запросов которые можно собрать. или это так и делают. а если нет то как


Pavel
06.07.2019
08:44:23
Куда положить код - зависит от структуры проекта, используется ли эта логика только в апи или есть еще web морда, используются ли сервисы, менеджеры, rich domain model и так далее
Все сущности делятся на логические группы по доступу, для каждой группы можно сделать одну роль, к роли привязать логику проверки

Grigoriy
06.07.2019
08:47:04
отлично. мне это понятно. не понятно КАК зависит
сайт, админка, апишка, консоль - и все умеют обновлять-сохранять-добавлять-читать заказы. везде есть авторизация сделанная через один сервис

Google

Grigoriy
06.07.2019
08:47:34

Gena
06.07.2019
08:50:33


Grigoriy
06.07.2019
08:51:23
если мы говорим о том можно ли юзеру заходить на endpoint (URL-адрес) - то да можно. но юзер с разным доступом может устанавливать разные поля - здесь просто одним ифом можно, а вот то что в разных полномочиях ему доступны разное количество записей из таблицы на считывание и разные на запись - вот это меня и печалит
если я напишу в модели "бизнес-логику" - глобальный критерий который применяется всегда, который будет фильтровать записи по users_id если нет нужного доступа, то человек считать не сможет. ведь критерий то глобальный
читать он должен. создавать должен. а вот при обновлении при попытке присвоить по связи - нужна ошибка. причем во всех веб- и апи-мордах плюс минус одна и та же, переведенная на разные языки. с переводами я справлюсь, мне бы хоть кодом ошибки стрельнуло или просто куда-нибудь его сохранило


Gena
06.07.2019
08:58:18

Grigoriy
06.07.2019
08:59:13
т.к. у него должно быть представление какие записи есть в базе

Gena
06.07.2019
09:02:21
Смотри, делай по принципу " вначале всё запрещаегь, а потом посиепенно разрешаешь". То есть, в модулях админки просто запрешаешь заходить всем, кто не админ.

Grigoriy
06.07.2019
09:03:09
о, интересно так. а потом мы начинаем разрешать. я нахожусь в моменте "где это сделать так чтобы это было не в контроллере"
потому что в пяти экшенах вошью проверки - придется в шить еще в 20

Gena
06.07.2019
09:04:10
Ты не должен пускать в админку простых пользователей . Для просмотра и правки заказов - создай модуль кабинета и выбирай уже заказы только этого пользователя.

Grigoriy
06.07.2019
09:05:46
да. в админку и не пускаю.
интересует следующий этап. где пускать можно, но делать можно не всё.
в ордерах у меня есть фильтр wherePermissionOrOwnedBy() который чекает пермишен, если не прошел - добавляет фильтр where('users_id'). Но дальше вопрос - куда его всандалить
т.к. он получается иногда нужен а иногда нет

Gena
06.07.2019
09:07:23
Как я понял, ты пытаешься влепить всю логику в один модуль. Поэтому и получается куча ифов. Не делай так, раздели части на админ-панель и личный кабинет
В админ-панели свои поисковые модели, в личном кабинете - свои.