Jump to content
  • 0

Оцените систему разграничения доступа в пхп-скриптах


stalker_2000
 Share

Question

Собственно, система - это громко сказано. Всё состоит из таблицы привилегий в следующем виде:

// работа с данными
define('DATA_VIEW',1);
define('DATA_ADD',2);
define('DATA_MANAGMENT,5);

// управление пользователями
define('USERS_VIEW_PAGE',9);
define('USERS_MANAGMENT',10);

// ещё что-то
....

и функции проверки привелегий:

function check_privileges($action_name) // если не хватает прав - возвращает 0, иначе 1
{
if ($_SESSION['priveleges_level']<$action_name) return 0;
else return 1;
}

При авторизации юзера устанавливаем переменную $_SESSION['priveleges_level'] из БД, где записано некое число (например от 1 до 10), характеризующее уровень доступа юзера - чем больше, тем круче. :)

Далее, в нужном месте скрипта (например перед работой с БД) мы делаем так:

if (!check_privileges(USERS_VIEW_PAGE)) { echo 'Доступ запрещен'; exit; }

Эту систему я изобрёл сам :) в предверии ожидания ТЗ по написанию бухгалтерской системы для предприятия.

Хочу услышать ваши мнения по этому поводу. Есть ли какие-то другие системы? Было бы интересно взглянуть.

Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 0
Собственно, система - это громко сказано.

О да! Код состоящий из пары строчек... :)

Есть ли какие-то другие системы? Было бы интересно взглянуть.

Да любая cms система коих полно сейчас в инете как собак нерезанных. :)

Link to comment
Share on other sites

  • 0

Обычно берется класс со статическими методами, и делается примерно следующее:

if(Logged::access('admin')){ // Или, к примеру, Logged::access_level(5)
// yes
}else{
// no access
}

В той системе, что приведена, я не увидел чего то революционного.

Link to comment
Share on other sites

  • 0
2Bertrans, просто молодой ещё.

знаешь, не возраст играет роль. в свои почти 22 года я все-таки достаточно хороший программист, а не хочу давать потому как на этом принципе устроена корпоративная CMS, это единственная причина.

Link to comment
Share on other sites

  • 0

Блин, парень ничего не хотел обидного сказать. Э! Воспитанные Дядьки! Наехали тут-же и давай упражняться в степени своего-же ханжества. )))

К тому-же Иван сразу извинился. Хотя на мой взгляд и не за что было.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy