За последние 24 часа нас посетили 18065 программистов и 1599 роботов. Сейчас ищут 880 программистов ...

Задача

Тема в разделе "PHP и базы данных", создана пользователем rodion4657, 12 дек 2012.

  1. rodion4657

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

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    Поделитесь соображениями по следующему вопросу...
    Написал web-интерфейс к базе данных, состоящий из нескольких таблиц. Есть три пользователя, у каждого свои права на операции с базой
    user1--------->INSERT
    user2--------->UPDATE
    user3--------->DELETE
    Доступ к базе осуществляется через стандартные процедуры аутентификации...
    Как сделать так, чтобы после процедуры аутентификации соответствующему пользователю присваивались определенные права на операции с таблицами базы данных, определяемые логином и паролем которые вводились для аутентификации.
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    по мне так вариантов как минимум 2: сессии и та же БД
     
  3. rodion4657

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

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    Можно про какой - нибудь рассказать подробней
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    1 после авторизации ты пишешь юзеру какой-то признак в сессию, что он у тебя user1--------->INSERT

    ну и в случае инсерта проверяешь может ли юзер вставлять записи в БД

    2. то же самое только пишешь в БД
     
  5. rodion4657

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

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    а сами права где определять и как?
    примерчик простенький приведите, если можно, а дальше я сам додумаю...
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    1. сделай абстрактную заготовку:
    Код (PHP):
    1. function canDo($thing, $action)
    2. {
    3.   // ... test something ... if CAN - return true...
    4.   // otherwise:
    5.   return FALSE;
    6. }
    7.  
    2. что ты точно можешь добавить в эту функцию — если пользователь не прошел аутентификацию, то вернуть FALSE :) ибо нехрен!

    можешь завести таблицу Права, где каждая запись означает разрешение на действие: {юзер, имя_объекта, действие}
    функция должна искать такую запись для данного авторизованного пользователя.

    можешь завести таблицу Группа, пользователю присваивать id группы из неё, а в таблице Права расписывать не пользователей, а группы.

    а дальше экспериментируй, развивай концепцию. лучше сразу опробовать на реальных задачах, а не на сферическом коне в вакууме.