Доброго дня, пишу базу данных для завода. Там есть разделение прав, то есть, в зависимости кто заходит, директор или менеджер, бухгалтер, программа отображает те или иные модули, некоторые отображаются, некоторые нет, так же и с формами, некоторые отображаются некоторые нет или не активны. Есть пользователи, когда они заходят отображается весь интерфейс программы, у некоторых только часть. Вот вопрос как мне это реализовать, думаю сделать через Smarty, может есть еще какие-то способы.
Smarty тут совершенно не причем. Если Smarty тебе не покажет форму, то данные все равно можно будет злоумышленно отправить, тоесть тебе нужно разграничить права на уровне логики приложения, а не представления. Есть масса способов. Я бы рекомендовал именно вам для каждого пользователя разграничить права доступа по полю данных пользователя, тоесть описать каким то образом набор прав для каждого. Для начала тупо программно, не думаю что такие данные на заводе будут часто меняться (зато кроме вас права никто не поменяет ). Тут гдето еще были решения, поищите.
Нет в этом ничего сложного, делайте таблицу groups, в ней поля, id; name; first; second и т.д. Вместо first пишите название того к чему нужно проверять доступ, например shop_access. Потом просто создаете несколько таких групп с разными правами для менеджеров, бухгалтеров и т.д. Так, потом в таблице пользователей делайте поле group_id, для каждого пользователя сайта добавляете значение id из таблицы групп в это поле. С базой все. Теперь в php, выбираете данные из таблицы групп, где ихний group_id равен ид из таблицы group, и теперь там где надо проверяете, если значение в базе равно yes, выводите модуль, если no, то нет
Проблема не в логике, логику мне легко организовать. Проблема в выводе данных модулей на фронтэнд. Базу и проверку на принадлежность пользователя к какой-то группе я сделаю. Думал насчет вывода, есть несколько вариантов, просто хотелось услышать мнение тех, кто с этим сталкивался.
Весь интерфейс - в шаблоны, подгружать соответствующие правам шаблоны вот и все. При чем можно обойтись без шаблонизаторов.