
Max
03.03.2017
15:25:51
из народа, имею в виду

Andrey
03.03.2017
15:26:18
ну если ты бедный и безинициативный — то как раз права голоса и не будет

Rumata
03.03.2017
15:35:05
А как сделать так чтобы общество не растило бедных и не безинициаьивных ?

Dmitry
03.03.2017
15:35:22

Google

Rumata
03.03.2017
15:35:22
Ведь он таким может стать не по своей воле разве нет ?
Это очень удобно прикрываться безинициативностью дабы не решать проблемы общества и строя
Типо ты бедный ? Пф тв просто плохо работаешь
Все находят способы а ты нет
ОМС блядь отменить
Как так можно вообще.

Max
03.03.2017
15:38:40
всегда большинство будет индиффирентное
это свойство социума, не надо на него псить

Andrey
03.03.2017
15:39:33
ну можно в принципе убить всех людей и заменить роботами
но тогда не будет тех самых «проблем общества и строя», которые выше предлагают решать

Rumata
03.03.2017
15:52:19

Andrey
03.03.2017
15:53:06
не, буду и дальше наслаждаться своим несовершенством

Google

abc
03.03.2017
16:09:57

Dmitry
03.03.2017
16:10:25
Ребят, посмотрите на опыт Беларуси и прочувствуйте пиздец

abc
03.03.2017
16:10:33
а вот тех кто сидит дома и просиживает штаны у родителей пенсионеров на шее действительно надо бы как то наказывать / мотивировать

Dmitry
03.03.2017
16:11:07
Тунеядцы это:
-Мертвые
-Зеки
-Солдаты
-Эмигранты

Andrey
03.03.2017
16:11:38
так прикол видимо в том, что «тунеядец» будет платить ровно те же взносы, что ИП с нулевым доходом ))

Dmitry
03.03.2017
16:11:41
Например я живу в Израиле и поэтому я тунеядец в Беларуси

Andrey
03.03.2017
16:12:09
а ты налоговый резидент беларуси?

Dmitry
03.03.2017
16:12:13
Настоящие тунеядцы отвертятся без проблем

Andrey
03.03.2017
16:12:14
по идее с этим тоже должно быть связано

Dmitry
03.03.2017
16:13:17
Я да, я кстати и не сильно против, я пока не гражданин Израиля.
Но есть товарищи которые в 90 уехали а сейчас их родителям приходят письма из налоговой
Лучший способ - это не ИП а ремесленничество
Заказываешь набор детского творчества на али экспе, делаешь гравюру или хрен из глины отливаешь - относишь в налоговую и все

abc
03.03.2017
16:14:31
в чем разница ?

Dmitry
03.03.2017
16:15:06
У нас вроде ремесленники без прибыли не вызывают вопросов в отличие от ИП
Как в России - не знаю

abc
03.03.2017
16:15:59
в России нет ремесленников. есть раб, ИП или далее ОАО, ЗАО и т.д.

Taras ?
03.03.2017
16:19:11

abc
03.03.2017
16:21:51
недавно же навальный выкатил на ютуб про димона видео, как у него состояние в 40 млрд рублей

Taras ?
03.03.2017
16:23:31
прошу прощения, уже ухожу — чтот без позитива сегодня...
давайте о программировании хоть чуток?
я молчать буду, учиться))

Google

abc
03.03.2017
16:23:57
хорошая идея )
кстати парни я могу тут закинуть одну тему на обсуждение. она не по эликсиру а по базам данных.
если не против
с богатым вступлением и предисторией)

Alexey
03.03.2017
16:40:54
По бд - давай


abc
03.03.2017
16:50:14
В общем. Есть большая контора федерального масштаба и ее филиал в мухосранске. Есть ИТ отдел, в котором .NET разработчик с 10 годами опыта и PHP разработчик. Начальство решило сдалать перестановки. .NET разработчика посадили за Oracle (хотя он в нем не очень то и разбирается). PHP разработчика посадили за разработку веб-морды, но не на .NET а на PHP. Далее сама суть проблемы. PHP разработчик не очень то грамотный. Он не знает и не хочет понимать такие вещи как : ООП, unit-тестирование, IoC / DI. Пишет он код на PHP как писали 10 лет назад наши деды, каждой страничке по файлику без фреймворков.
Но делает он это быстро и начальство устраивает. Конечно пока они не столкнуться с тем что код не тестируется, и время внесения изменений в него растет как снежный ком.
Теперь сама проблема. Нужно реализовать RBAC на основе СУБД. Но реализовать его как бы на прикладном уровне. Т.е. не затрагивая пользователей самой СУБД.
Мы имеем табличку users и табличку groups куда они входят. Далее есть таблицы, над которыми нужно организовать секретность. Для примера возьму 3 таблицы: clients, accounts, clients_history.
Задача стоит разграничить доступ на уровне объектов (список объектов, объект, свойства объекта). В идеале если пользователь не имеет доступа например к редактированию поля "дата рождения" в объекте клиент (табличка clients), то мы это поле не должны и показывать (это должен реализовать PHP интерфейс). Я в принципе вижу схему таблиц для такого решения. По сути PHP приложение должно иметь доступ к одной или нескольких хранимым процедурам, через которые выполнять запросы и другое взаимодействие с БД. Получается что мы будем формировать некое API только на основе хранимой процедуры. Запросы на внесение изменений в БД лучше наверно принимать в виде JSON документа в процедуре. Есть большой минус, такое решение трудно поддерживать. Есть ли более лучшие варианты по реализации ?


Sergey
03.03.2017
17:01:11
Так а может запилить какой-нибудь http-сервис перед базой, который будет уже уходить в неё, собирать и агрегировать данные в зависимости от ограничений и отдавать в интерфейс?
просто api на хранимых процедурах звучит не оч

abc
03.03.2017
17:02:09
нет там есть запреты на это. по безопасности. если бы такое было возможно то RBAC было бы проще написать на том же PHP

Sergey
03.03.2017
17:14:01
а из инструментов есть только php и субд?

abc
03.03.2017
17:14:15
ага
я тоже сказал товарищу что это фигня какая-то а не решение будет. но что сделать

Andrey
03.03.2017
17:36:28
выглядит так, что нужно писать хранимые процедуры в самой бд, а у пхп-кода права на доступ к таблицам забрать
вряд ли без промежуточного сервиса можно сделать что-то лучше

abc
03.03.2017
17:42:50
да все так

Alexey
03.03.2017
18:06:54
на уровле бд можно ограничивать доступ к столбцам
опыт работы с нормальными продуктами, показал, что не смотря на то, что есть некий фронт, который как бы ограничивает действия и сам, при этом даже на уровне команд SQL триггеры и права не должны позволять делать то, что нельзя
ну. это я к тому, что php или там какой-нибудь апи не должен решать о правах. и бд не должна позволять делать с собой все, что хочешь

Google

Alexey
03.03.2017
18:08:51
если будет ошибка в логике фронта, которая сформирует к БД то, что нельзя - это все равно не проудет уже на уровне sql
если будет какой-нибудь взлом, инджект или что-то еще на уровне веб, похапе - это все равно не пройдет на уровне sql. имхо так.

Sergey
03.03.2017
18:12:18
звучит неплохо, но как нормально отлаживать и тестировать все эти тригеры и хранимки?

abc
03.03.2017
18:12:39
Это понятно. По условиям права со стороны БД можно использовать только для процедуры
т.е. мы не можем заводить всех этих юзеров на стороне юзеров БД. нужно реализовать свою табличку users

Alexey
03.03.2017
18:13:33
для какой процедуры?

abc
03.03.2017
18:13:52
процедура которая будет единой точкой входа

Alexey
03.03.2017
18:14:31
ну тогда хранимую процедуру пиши. на tsql или постгресе.

Admin
ERROR: S client not available

abc
03.03.2017
18:14:37
например getClients('юзер','хэш пароля') в ответ вернет JSON клиентов в соотв с разрешениями пользователя
там Oracle

Alexey
03.03.2017
18:14:55
тот же уровень
только там какой-нибудь PL

abc
03.03.2017
18:15:16
я для примера товарищу написал на postgresql пока ) сам я к счастью не имею отношения к этой поделке
просто код процедуры будет очень большой это уже и так понятно чтобы скалькулировать все разрешения иерархически и применить к бизнес-объекту

Alexey
03.03.2017
18:16:19
да. обычно это боль
главное - пароли в БД не хранить )))
но в целом, можно все красиво сделать
хранимые процедуры могут выдавать и одно значение, и вьювы. так что можно стоить что угодно

Mikhail
03.03.2017
18:18:32
Жена недавно заказывала книжки на Озоне, пароль, конечно же, забыла. Нажала кнопочку типа "Восстановить пароль", а ей на почту прислали тот же самый её действующий пароль в открытом виде.

Google

abc
03.03.2017
18:19:11
sha1 с солью должно хватить. хотя с последними событиями sha256 ?

Alexey
03.03.2017
18:20:07
к примеру, хорошее решение видел по генерации ID в таблице. что к каждой таблице есть хранимая процедура - генератор номеров по порядку. считай, получается сериализация и невозможность выдачи одного номера двоим клиентам. плюс возможность инсертить значения в бд и уже знать ИД какой будет у записи еще до записи. плюс независимость от типа генерации ИД, если пробовать генерить на каком нибудь автоинкремент поле

Mikhail
03.03.2017
18:20:27
А нужны ли пароли? Вроде бы последний тренд - авторизация по токенам... Получил ссылку в почту, жамкнул на неё и ты уже залогинен.

Alexey
03.03.2017
18:21:22

abc
03.03.2017
18:21:48

Alexey
03.03.2017
18:22:46
нужна строка в таблице юзеров, который будет соответствовать человеку. а уж как человек будет доказывать, что это он - это второй вопрос
но уровне этих пользователей (пользователей в табличке) если делать права. ну значит права бд тут не подойдут, да.

abc
03.03.2017
18:28:19
да, в общем спасибо! все в принципе подтвердилось что я и предполагал :)

anton
03.03.2017
21:16:58
Long gone are the mix phoenix.* commands. Say hi to mix phx.*. Less things to type. Love it.
как мало людям надо для счастья.


Alexander
04.03.2017
01:35:13
но это нормальное развитие
конечно интересно что начали делать логику на эсепшенах - коллбэки в контроллеры добавили
но это довольно плохо, вне зависимости от языка - коллбэки приводят в ад. Эликсир же дает просто потрясающие возможности по избавлению от коллбэков, как таковых и получению так любимого слова в nodejs -сайд эффект
главная фишка феникса - бутстрап эликсира в MVC вариант с отличной скоростью отклика. Бенчи и шоукейсы конечно пишут на голом фениксе, мол вот как все быстро. Каждый момент, типа добавить Ecto в проект - это гвоздь в крышку гроба. Хотя в нашем мире веба невозможно без баз и прочего. Коллбэки же, которые по факту в цепочке исполнения и основаны на эксепшене, замедляют приложение. Причем одно лишнее движение и весь апп встанет раком.
с другой стороны, все веб фреймворки строятся примерно по одной модели, так что феникс просто следует этому роадмэпу
просто оооооооооооочень медленно )
чатик, есть где статейки вида: “Емакс для начинающих”?
сегодня день попробовать еще раз
@mtreskin


Alex
04.03.2017
02:08:37
Есть целая книга про это
Но я бы рекомендовал попробовать Spacemacs