За последние 24 часа нас посетили 17467 программистов и 1612 роботов. Сейчас ищут 944 программиста ...

Сложные права доступа

Тема в разделе "Решения, алгоритмы", создана пользователем armadillo, 17 июн 2009.

  1. SeregA

    SeregA Активный пользователь

    С нами с:
    2 фев 2006
    Сообщения:
    269
    Симпатии:
    0
    Адрес:
    Saint Petersburg, Russia
    Mr.M.I.T.
    а зачем тебя банить?
     
  2. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    такой вопрос назрел:
    одминов и пользователей храним в одной таблице?

    стоит ли делать возможность динамических полей для пользователей?
     
  3. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Админ — это такой же пользователь, только с соответствующими привилегиями.
    Вообще, если существует таблица привилегий (privileges) и пользователей (users), то каждый пользователь может состоять в какой-то группе (groups), которая связана с таблицей привилегий.
    При таком раскладе мы можем хранить всех в одной таблице.

    Если же идет четкое разделение пользователей, их групп, настраиваемости, а администрация является исключительно изолированной от всех настроек и никак не связана с настройками соответствующих привилегий, то создается отдельная таблица без внешних ключей.
     
  4. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    я сейчас объясню свою ситуацию.
    Сейчас работаю над примитивной CMS'кой
    С октября 2008 - над движком тырнет-магазина
    В январе делал один сайт связанный с деньгами пользователей
    С августа попробую начать проект, о котором уже год думаю.

    Что общего у всего вышеперечисленного? Ядро. Это не только адаптеры доступа к БД, валидаторы форм, общие принципы построения. Это еще и одинаковой представление пользователей в базе. Ваще так сложилось, что CMS'ка - это элемент тырнет магазина). Но это неважно, вопрос не в том.

    Так вот,
    1) тырнет-магазин: вроде пользователи и администраторы - разные люди. У нас есть всемогущий root-admin, но в то же время он не может покупать товары. Какая-то фигня получается, нужно наверно 2 таблицы: админы и пользователи.
    2) CMS'ка: по большому счету авторизация, регистрация, ... взята из тырнет-магазина.
    3) сайт, который связан с деньгами пользователей: как бы тоже нужно 2 таблицы. + именно в этом, конкретном случае нам понадобилось добавить каждому пользователю новое поле: "деньги на счету".
    4) новый проект: тут ситуация другая. Большая часть всего-всего будет добавляться пользователями. Будут всякие модераторы и тд. Админки может не будет совсем (управление прям из фронтенда в зависимости от твоих прав), или она будет с минимальным функционалом. + тут нужно будет добавить какие-то поля для групп пользователей.

    Дык как же все-таки хранить пользователей с админами, и что б еще можно было дополнительные поля добавлять?

    Напрашивается какой-то модуль forms, который будет генерировать формы.
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    итак, пользователи будут с админами в одной группе. Просто у админов еще будет флаг выставлен is_admin (у модераторов наверно не будет).

    Нужно ли делать возможность помещать пользователя в несколько групп одновременно? (по идее да)
    Все что не разрешено явно - запрещено?
    нужно ли допускать навешивание отдельных прав на юзера кроме группы (у ГО так сделано)?

    Что считать группой? вот давайте на примере группы в фейсбуке посмотрим: писать в группу могут только те, кто в группе. То есть для каждого сообщества нужно делать свою группу правил?
     
  6. kostyl

    kostyl Guest

    Не, для каждого юзера делать права что он может делать в группе.
     
  7. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    1) создать правило "писать сообщения в сообществе я и мой сраный кот"
    2) создать группу, в нее вложить это правило
    3) добавить пользователя Вася Пупкин в эту группу

    так?
     
  8. kostyl

    kostyl Guest

    Koc
    не, ну я не знаю точно как тебе надо. Ты туту уже кучу спросил. "Писать в группе" не определяется правами пользователя вообще. "Писать в группе" определяется нахождение пользователя в этой группе. А вот нахождение пользователя вообще в какой либо группе и вообще где либо писать - вот это права пользователя. Я так понимаю... Чи шо?
     
  9. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    ну будут разные сообщества. В каких-то можно будет писать комменты, в каких-то еще и файло заливать.
     
  10. kostyl

    kostyl Guest

    Тогда так. Вроде выглядит привлекательно.
     
  11. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    меня стремает:
    а) кол-во правил, которые будут
    б) кол-во групп, которые понадобятся
    в) то что правила по сути динамические*
    г) то, что я где-то просчитался

    * - динамические потому, что сообщества будут создаваться и создаваться. Одно дело если это просто доступ в админке к какому-то модулю, и совсем другое, если это тыща сообществ. Я ваще хотел при загрузке страницы проверять: залогинен юзер или нет, и если да, то доставать все его права из базы. А с таким кол-вом прав боюсь, что это будет накладно.
     
  12. kostyl

    kostyl Guest

    Koc
    По идее твои сообщества и админки это две разные вещи. Я думаю должны быть права по типу "админ" "модер" "юзер" и может быть "незарегиный посетитель". А уж группы то отдельная история. Наверно группа должна давать права пользователю, которые в ней есть. Тоесть все элементарно. Если пользователь есть в группе то он может делать то что там дозволено. Блин я сам путаюсь.
     
  13. Одно правило - Юзер может писать в группах, которым он принадлежит, все.
     
  14. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    блин, вроде бы все взрослые люди...
    Топикстартер, если надо будет удалить топик — пиши в ЛС.
    Тема закрыта.
     
  15. SeregA

    SeregA Активный пользователь

    С нами с:
    2 фев 2006
    Сообщения:
    269
    Симпатии:
    0
    Адрес:
    Saint Petersburg, Russia
    А тема то не закрыта, бе-бе-бе :)