Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Доступ к разделам.

6.0K
16 октября 2006 года
merlex
78 / / 25.02.2006
Незнаю как подойти к решению задачи. Есть ресурс, на нем регистрируются пользователи, есть группы пользователей, есть разделы. Доступ некоторых груп, и пользователей к определенным разделам хотелось бы ограничить.
Я стою перебд выбором.
Сделать отдеьную таблицу с "разрешениями".

Либо сделать в таблице столбец с указанием имен юзеров и названий групп.
8
16 октября 2006 года
mfender
3.5K / / 15.06.2005
Конечно же нужно делать отдельную таблицу, в которой каждая запись будет иметь UNIQUE-ключ по полям OID-ресурса и OID-группы_пользователей. А делать в таблице с ресурсами поле со списком разрешений - порочная практика, абсолютно противоречащая самой идее релятивности БД.
6.0K
16 октября 2006 года
merlex
78 / / 25.02.2006
[QUOTE=mfender]Конечно же нужно делать отдельную таблицу, в которой каждая запись будет иметь UNIQUE-ключ по полям OID-ресурса и OID-группы_пользователей.[/QUOTE]

Трудности:

Тогда придется усложнять весь алгоритм работы скрипта. Так при создании раздела или страницы надо делать дополнительную запись в таблицу разрешений, если пользователь создает свою страничку (типа сообщение или статья, она же запись в бд в таблице контента) то в таблице разрешений создается как минимум одна запись. А если допустим, админ хочет закрыть страничку для одних, и открыть для других, по каждой группе и пользователю придется делать отдельную запись в таблице, что приведет к увеличению БД.

Можно сделать в записи БД, поле кторое говорит, "доступно для всех" или "закрыто для всех", а в таблицу "доступа" писать исключения.
6.0K
16 октября 2006 года
merlex
78 / / 25.02.2006
А если добавить в таблицу контента поля скажем rd_access и wr_access а вних прописать имена и названия груп которые имеют соответствующий доступ разделенные запятой или пробелом. Такой способ упрощает скрипт и облегчает БД, ондак выборка из бд основанная на уровне доступа пользователя к конкрентной страничке затруднена, однако решается, например посредствам регэкспов.
337
16 октября 2006 года
shine
719 / / 09.06.2006
А посему нельзя просто для каждого юзера или группы при создании задавать уровень доступа. Допустим от 1 до 10.
Для каждого раздела тоже задавать уровень доступа необходимый для просмотра.
Тогда при выводе списка разделов тебе останется только следить за тем чтобы уровень доступа юзера был выше чем заданый для раздела.
6.0K
16 октября 2006 года
merlex
78 / / 25.02.2006
Ну а если необходимо запретить просмотр одного раздела какойто определенной группе, и елс при этом надо сделать это в конкрентный промежуток времени, и ли наоборот, разрешить только одной.

Сейчас у меня реализоват алгоритм описанный в посте #4, В полях указываются имена пользователей и груп соответственно которые имеют доступ на чтение и запись.

Конечно вариант от 1 до 10 тоже по своему хорош. Но с конкрентными менами более гибкий.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог