Вариант предоставления прав модулям

Toxic_Cat

Новичок
Вариант предоставления прав модулям

На сайте существут модули:
новости, статьи, файлы и т.д.

В MySQL есть такая таблица:
PHP:
CREATE TABLE `u_perm`
 (
  `up_id` int(11) not null default '',
  `up_name` varchar(32) not null,
  `up_access` smallint not null default '0'
 );
INSERT INTO `u_perm` VALUES
('2', 'admin', '10'),
('3', 'news', '3');
И таблица пользователей:
PHP:
CREATE TABLE `users`
(
  `u_id` int(11) not null primary key auto_increment,
  `u_login` varchar(32) not null,
  `u_pass` varchar(32) not null,
  `u_name` varchar(32) not null,
  `u_counter` varchar(32) not null
);
INSERT INTO `users` VALUES 
('', 'Gamer', '', 'Игрок', ''),
('', 'Admin', '098f6bcd4621d373cade4e832627b4f6', 'Админ Админович Админов', ''),
('', 'Ньюз Райтер', '098f6bcd4621d373cade4e832627b4f6', 'Писака', '');
Будет функция типа:
PHP:
function get_rigts($pravo, $uzver_id, $need)
 {
  $result=sql_query("SELECT up_access FROM `u_perm` WHERE up_id='.$uzver_id.' and up_name='.$pravo.' and up_access>='.$need.' LIMIT 1");
  if(sql_num_rows($result)!=1)
   {
    return 0;
   }
   else
   {
    $row=sql_fetch_assoc($result);
	
	return $row['up_access'];
   }
   
  return 0;
 }
Поясню:
Запрос вида
PHP:
get_rigts('admin', '3', '1')
расшифорвывается как определение возможно ли для пользователя с идентефикатором 3 получить доступ 1(просмотр) в админпанель
Т.е. возможно ли юзверю id которого 3 войти в админпанель.

Если да, то функция вернет число права доступа, если нет то вернет нуль.

В самой админпанели каждый модуль проверит свои парва доступа для пользователя этой функцией, если они есть то покажет себя, если нет то не покажет.

На сайте будет такая-же ситуация, при каждом заходе пользователя модули будут проверять права доступа пользователя. В зависимости от них они будут видоизменять себя, например для Админа будут появляться новые панельки управления.

Хочу спросить Вашего мнения, стоит ли так делать или нет? В правильном ли направлении я мыслю? :)

Я хочу создать гибкую систему управления модулями на сайте. Чтобы в будущем при подключении нового модуля нужно было лишь задать для него права доступа и все.
 

Popoff

popoff.donetsk.ua
Все начинали cо способа, подобного тому, о котором говоришь ты. Некоторые приходят к чему-то вроде этого:
http://popoff.donetsk.ua/text/work/libs/passport/privilege/admin.html

Есть и другие системы. Если поишешь по этому форуму, то найдешь описание похожих систем и сам поймешь, в чем состоят недостатки твоего подхода.
 

Toxic_Cat

Новичок
Хорошо, значит не буду наступать на чужие грабли и буду искать другой метод подхода к вопросу.
 
Сверху