Toxic_Cat
Новичок
Вариант предоставления прав модулям
На сайте существут модули:
новости, статьи, файлы и т.д.
В MySQL есть такая таблица:
И таблица пользователей:
Будет функция типа:
Поясню:
Запрос вида
расшифорвывается как определение возможно ли для пользователя с идентефикатором 3 получить доступ 1(просмотр) в админпанель
Т.е. возможно ли юзверю id которого 3 войти в админпанель.
Если да, то функция вернет число права доступа, если нет то вернет нуль.
В самой админпанели каждый модуль проверит свои парва доступа для пользователя этой функцией, если они есть то покажет себя, если нет то не покажет.
На сайте будет такая-же ситуация, при каждом заходе пользователя модули будут проверять права доступа пользователя. В зависимости от них они будут видоизменять себя, например для Админа будут появляться новые панельки управления.
Хочу спросить Вашего мнения, стоит ли так делать или нет? В правильном ли направлении я мыслю?
Я хочу создать гибкую систему управления модулями на сайте. Чтобы в будущем при подключении нового модуля нужно было лишь задать для него права доступа и все.
На сайте существут модули:
новости, статьи, файлы и т.д.
В 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')
Т.е. возможно ли юзверю id которого 3 войти в админпанель.
Если да, то функция вернет число права доступа, если нет то вернет нуль.
В самой админпанели каждый модуль проверит свои парва доступа для пользователя этой функцией, если они есть то покажет себя, если нет то не покажет.
На сайте будет такая-же ситуация, при каждом заходе пользователя модули будут проверять права доступа пользователя. В зависимости от них они будут видоизменять себя, например для Админа будут появляться новые панельки управления.
Хочу спросить Вашего мнения, стоит ли так делать или нет? В правильном ли направлении я мыслю?
Я хочу создать гибкую систему управления модулями на сайте. Чтобы в будущем при подключении нового модуля нужно было лишь задать для него права доступа и все.