За последние 24 часа нас посетили 21729 программистов и 1012 роботов. Сейчас ищут 687 программистов ...

пользователь + доступ к модулям

Тема в разделе "Прочие вопросы по PHP", создана пользователем Johnson, 22 мар 2010.

  1. Johnson

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

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Есть некий сайт на котором есть несколько подключаемых модулей: новости, статьи, информация о компании, доска объявлений и т.д.
    Назовем их условно М1, М2, М3, М4, М5. Каждый модуль - это отдельный класс.
    Есть на сайте кабинет, в котором пользователю доступны для администрирования определенные модули.

    Например: (пользователь + доступ к модулям)
    пользователь1: М1, М2.
    пользователь2: М2, М4, М5
    Пользователь3: М1, М3, М5

    Нужно прописать доступ к модулю для группы пользователей, и иметь возможность закрыть(временно) доступ для всех.
    Но как это сделать не могу сообразить.
    Или в базе как-то прописать, либо в классах индикатор какой-нибудь ставить.

    Подскажите знающие люди!!!
     
  2. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    Определенно такой информации место в базе.
    Наверняка у тебя в базе есть такая сущность как пользователь.
    Если нет сущности Модуль, создай.
    Потом нужно повязать модуль на ползователя. связь - многие к одному.
     
  3. Johnson

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

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    да есть конечно и пользователь, и группы, и связи, и даже свойства модуля для группы. но суть не в пользователях.
    Смысл вот в чем - нужно сообщить модулю, что он (не)должен отображаться в кабинете (или на сайте в целом).
    Каким образом это сделать? Может какую-то схему подгрузки модулей организовать?
     
  4. Петр

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

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
  5. Johnson

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

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Спасибо! Я почитал, но, честно говоря ещё не всё понял.
    насколько понял, у каждого модуля должен быть индикотор, прописанный в базе для каждого модуля.
    А именно: (не) доступен всем, доступен для администрирования.
    Дальше читать при авторизации группу и сравнивать со свойствами классов.

    Если можно расскажите на пальцах схему работы. Совсем запутался!
     
  6. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    Чтобы рассказать схему, нужно иметь представление о конфигурации твоего приложения. Те сведения, которые ты выдал, не дают такого представления, понимаешь? Имеет ли приложение ООП-структуру и выполнены ли сами модули в виде классов? От чего они наследуются? Как выглядит процедура инициализации приложения? Именно в этот момент нужно вычитывать некий ACL (Access Control List) и выдавать информацию из него всем нуждающимся, в твоем случае модулям.
    В идеале ACL нужно выполнить в виде класса, экземпляр которого будет доступен в любой точке приложения (можно в виде синглтона), чтоб можно было спросить нечто
    PHP:
    1. $acl->isAllowed('guest', 'film', 'post') ? 'Гость может публиковать фильмы' : 'Гость не может публиковать фильмы';
     
  7. Johnson

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

    С нами с:
    14 мар 2009
    Сообщения:
    36
    Симпатии:
    0