такой вопрос назрел: одминов и пользователей храним в одной таблице? стоит ли делать возможность динамических полей для пользователей?
Админ — это такой же пользователь, только с соответствующими привилегиями. Вообще, если существует таблица привилегий (privileges) и пользователей (users), то каждый пользователь может состоять в какой-то группе (groups), которая связана с таблицей привилегий. При таком раскладе мы можем хранить всех в одной таблице. Если же идет четкое разделение пользователей, их групп, настраиваемости, а администрация является исключительно изолированной от всех настроек и никак не связана с настройками соответствующих привилегий, то создается отдельная таблица без внешних ключей.
я сейчас объясню свою ситуацию. Сейчас работаю над примитивной CMS'кой С октября 2008 - над движком тырнет-магазина В январе делал один сайт связанный с деньгами пользователей С августа попробую начать проект, о котором уже год думаю. Что общего у всего вышеперечисленного? Ядро. Это не только адаптеры доступа к БД, валидаторы форм, общие принципы построения. Это еще и одинаковой представление пользователей в базе. Ваще так сложилось, что CMS'ка - это элемент тырнет магазина). Но это неважно, вопрос не в том. Так вот, 1) тырнет-магазин: вроде пользователи и администраторы - разные люди. У нас есть всемогущий root-admin, но в то же время он не может покупать товары. Какая-то фигня получается, нужно наверно 2 таблицы: админы и пользователи. 2) CMS'ка: по большому счету авторизация, регистрация, ... взята из тырнет-магазина. 3) сайт, который связан с деньгами пользователей: как бы тоже нужно 2 таблицы. + именно в этом, конкретном случае нам понадобилось добавить каждому пользователю новое поле: "деньги на счету". 4) новый проект: тут ситуация другая. Большая часть всего-всего будет добавляться пользователями. Будут всякие модераторы и тд. Админки может не будет совсем (управление прям из фронтенда в зависимости от твоих прав), или она будет с минимальным функционалом. + тут нужно будет добавить какие-то поля для групп пользователей. Дык как же все-таки хранить пользователей с админами, и что б еще можно было дополнительные поля добавлять? Напрашивается какой-то модуль forms, который будет генерировать формы.
итак, пользователи будут с админами в одной группе. Просто у админов еще будет флаг выставлен is_admin (у модераторов наверно не будет). Нужно ли делать возможность помещать пользователя в несколько групп одновременно? (по идее да) Все что не разрешено явно - запрещено? нужно ли допускать навешивание отдельных прав на юзера кроме группы (у ГО так сделано)? Что считать группой? вот давайте на примере группы в фейсбуке посмотрим: писать в группу могут только те, кто в группе. То есть для каждого сообщества нужно делать свою группу правил?
1) создать правило "писать сообщения в сообществе я и мой сраный кот" 2) создать группу, в нее вложить это правило 3) добавить пользователя Вася Пупкин в эту группу так?
Koc не, ну я не знаю точно как тебе надо. Ты туту уже кучу спросил. "Писать в группе" не определяется правами пользователя вообще. "Писать в группе" определяется нахождение пользователя в этой группе. А вот нахождение пользователя вообще в какой либо группе и вообще где либо писать - вот это права пользователя. Я так понимаю... Чи шо?
меня стремает: а) кол-во правил, которые будут б) кол-во групп, которые понадобятся в) то что правила по сути динамические* г) то, что я где-то просчитался * - динамические потому, что сообщества будут создаваться и создаваться. Одно дело если это просто доступ в админке к какому-то модулю, и совсем другое, если это тыща сообществ. Я ваще хотел при загрузке страницы проверять: залогинен юзер или нет, и если да, то доставать все его права из базы. А с таким кол-вом прав боюсь, что это будет накладно.
Koc По идее твои сообщества и админки это две разные вещи. Я думаю должны быть права по типу "админ" "модер" "юзер" и может быть "незарегиный посетитель". А уж группы то отдельная история. Наверно группа должна давать права пользователю, которые в ней есть. Тоесть все элементарно. Если пользователь есть в группе то он может делать то что там дозволено. Блин я сам путаюсь.
блин, вроде бы все взрослые люди... Топикстартер, если надо будет удалить топик — пиши в ЛС. Тема закрыта.