#1 2010.11.17 16:40

НЕЗНАЙКА
Участник
Откуда: Россия
Зарегистрирован: 2008.11.24
Сообщений: 313
Карма: 11
Профиль Веб-сайт

(PHP) Разграничение прав по ролям

Это вообще больная темаsmile Необходима небольшая система прав. Немного подумав накатал эдакое:

Код:

1
span style="color: #0000BB"><?php# Roles$_roles = array('banned' => false,'guest' => false,'member' => false,'author' => false,'moderator' => false,'admin' => false);# Определяем доступ по level из БД$user_data['level'] = 1;if ($user_data['level'] == 1){$_roles['member'] = true;}elseif ($user_data['level'] == 3){$_roles['moderator'] = $_roles['member'] = true;}elseif ($user_data['level'] == 4){$_roles['admin'] = $_roles['moderator'] = $_roles['member'] = true;}else{$_roles['guest'] = true;}?>

ДАУН-Данная Аватара Унаследована Незнайкой

Неактивен

#2 2010.11.17 16:45

НЕЗНАЙКА
Участник
Откуда: Россия
Зарегистрирован: 2008.11.24
Сообщений: 313
Карма: 11
Профиль Веб-сайт

Re: (PHP) Разграничение прав по ролям

Далее проверяем:

Код:

1
span style="color: #0000BB"><?php# определение ролей# проверка доступаif ($_roles['moderator']){# Вы модератор}?>

Если нужны действия типа редактировать анкету то:

Код:

1
span style="color: #0000BB"><?php# определение ролей# определяем автора# сравниваем ID пользователя, создавшего запись с текущимif ($user_data['id'] == $text['user_id']){$_roles['author'] = $_roles['member'] = true;}# проверка доступаif ($_roles['author']){# Вы автор сего текста}?>

Вопрос, можно как-то улучшить такой метод? Ну и ваше мнение...
П.С. Писал быстро, могут быть ошибки


ДАУН-Данная Аватара Унаследована Незнайкой

Неактивен

#3 2010.11.17 17:00

НЕЗНАЙКА
Участник
Откуда: Россия
Зарегистрирован: 2008.11.24
Сообщений: 313
Карма: 11
Профиль Веб-сайт

Re: (PHP) Разграничение прав по ролям

Nu3oN, убирать за собой хорошоsmile


ДАУН-Данная Аватара Унаследована Незнайкой

Неактивен

#4 2010.11.17 17:01

Nu3oN
Moderator
Откуда: БелгородЭ
Зарегистрирован: 2010.04.28
Сообщений: 805
Карма: 11
Профиль Веб-сайт

Re: (PHP) Разграничение прав по ролям

НЕЗНАЙКА написал:

В твоем варианте массив ид юзеровsmile Прикинь сколько нужно вписать? К тому же для гостей не нужно

Да я просто вначале не понял суть... Когда я это начал писать, у тебя был только первый пост smile
Я думал это доступ к определенным модулям сайта hmm
Добавлено спустя   2 минуты  21 секунду:

НЕЗНАЙКА написал:

Nu3oN, убирать за собой хорошоsmile

Ага)))
Добавлено спустя   3 минуты  36 секунд:
з.ы думаю твой вариант наилучшее решение...


Я буду лучше голоден, но между креслом и рулем и на дороге.

Неактивен

#5 2010.11.17 17:09

НЕЗНАЙКА
Участник
Откуда: Россия
Зарегистрирован: 2008.11.24
Сообщений: 313
Карма: 11
Профиль Веб-сайт

Re: (PHP) Разграничение прав по ролям

Nu3oN написал:

з.ы думаю твой вариант наилучшее решение...

Не наилучшее, но имеет право жить. Надо бы еще укомплектовать вложенные роли (админ - модератор - юзер), а то если еще супер-админа сделать, то большие строки будут.


ДАУН-Данная Аватара Унаследована Незнайкой

Неактивен

#6 2010.11.17 17:25

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: (PHP) Разграничение прав по ролям

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

Неактивен

#7 2010.11.17 17:32

НЕЗНАЙКА
Участник
Откуда: Россия
Зарегистрирован: 2008.11.24
Сообщений: 313
Карма: 11
Профиль Веб-сайт

Re: (PHP) Разграничение прав по ролям

Проблема возможно с баном будет. Смотря как дать доступ забаненым - редактировать ли, писать...
реальный проект... Если начну  писать, то посмотрим "вживую"
Прост мне не нужны все эти навороты аля zend_acl. Хотя тут тоже можно написать класс и расширять проще


ДАУН-Данная Аватара Унаследована Незнайкой

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.013 s