![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
zero50x |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 13.4.2007 Где: Нижний Новгород Репутация: нет Всего: 0 |
Только что закончил регистрацию и авторизацию на сайте для всех желающих.
Таблица пользователей в БД: id, логин, пароль, дата регистрации. Хочу сделать пользователя администратора. Определить что это админ можно по логину, если логин=admin то... Вопрос в другом: как с точки зрения программирования администратор наделяется любыми привилегиями? У меня была мысль что в БД добавляется ещё одно поле, неважно пусть "adm" и пользователь у которого стоит в этом поле "1" считается администратором. Потом происходит проверка, например юзер пытается удалить статью другого юзера, проверка если adm у первого юзера = 1 то статья удаляется, если нет то статья остаётся нет прав. Вообще где и что почитать про права пользователей, владение пользователей теми или иными объектами, какие функции или группы функций за это отвечают? |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Существует много вида извращенств, но наверное самое интересное и мало где применимое это Группы ролей + Бизнес правила (RBAC), можно конечно использовать все по отдельности. Если вам будет достаточно 1-2 ролей на сайте то смело делайте доп поля в таблице. Нормализовать данные потом в что то серьезное не составит труда Это сообщение отредактировал(а) Sanchezzz - 29.4.2014, 00:27 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
zero50x |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 13.4.2007 Где: Нижний Новгород Репутация: нет Всего: 0 |
Это была просто моя нубская догадка.
А вопрос: расскажите или дайте ссылку как это надо делать, как это правильно и логично сделать? Sanchezzz поправьте пожалуйста сообщение вы вместо цитаты тег php использовали и вёрстка поехала от этого. Это сообщение отредактировал(а) zero50x - 28.4.2014, 22:39 |
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
zero50x, Я бы делал полную схему прав, по крайней мере, с точки зрения "программирования сверху".
Так, чтобы это выглядело примерно так
В зависимости от настроения и пожеланий заказчика - метод hasRight рудиментируется в наличной реализации до проверки админ или не админ. Для сравнения - тот же код в Yii
Вообще говоря, в Yii'шной реализации отсутствует потенциальная возможность хозяину поста удалить собственный пост, а в моем случае, с передачей объекта в параметр функции проверки, потенциальная возможность есть. Начать читать можно с документации по Yii. Роли можно называть также и "группами пользователей". Особой разницы нет. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
zero50x |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 13.4.2007 Где: Нижний Новгород Репутация: нет Всего: 0 |
Спасибо, направление дали, я тут почитал, информации мало но обрывки находятся.
Многие предлагают всё же в БД делать поле права и там например 1, 2, 3, 4. Далее в системе при каком-то действии проверяется имеется ли нужная отметка у этого пользователя? Кстати первый код у вас с применением ООП написан, я смысл понял, но пока им не владею. Да я уже натыкался на информацию о том, что на фреймворках это сделать намного проще, но я новичёк и пока ими не владею. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
zero50x, Совсем без ООП делать большую систему довольно грустно. Переделывать ее придется всю сразу и неясно где и как.
Можно, конечно, упростить. Завести 4 группы пользователей - админы, модераторы, юзеры, анонимусы (3,2,1,0). В таблице юзеров завести поле с индексом группы. Для системы комментариев права расставляются естественным образом - право на чтение имеют анонимусы++ право на добавление записи имеют юзеры++ право на изменение всех записей имеют модераторы++ Ну и админ имеет уникальное право изменять юзерам группу. Немножко жестко, но для всего одного поля в таблице - достаточно большие возможности. Это сообщение отредактировал(а) ksnk - 29.4.2014, 11:20 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |