Права пользователя на сайте

  • Автор темы Автор темы voland
  • Дата начала Дата начала
Что в твоем понятие " бешеные выборки"? :-) Можно это выразить в цифрах?
 
Если только количеством вложенных подзапросов :). В моем понятии бешеные - это когда по часу пишешь один оператор SELECT :)

-~{}~ 09.07.04 18:43:

Вобщем то я про сложности с реализацией такой схемы (с переменным количеством прав).
 
>то когда по часу пишешь один оператор SELECT

На самом деле для таких случаев существуют функции. Написать ее если и займет час времени, то только один раз. :-)
 
http://phpclub.ru/talk/showthread.php?s=&threadid=51554&rand=29

может куда-то подталкнет + там нное кол-во сцылок.

а идея хранения прав не на каждый объект, а на родитель объекта (группу объектов) + введения владелеца. сводит все "выборки" к минимум. максимум - придется выбирать права доступа для объекта, к которомы пременены спецефические атрибуты, но такое явно не будет правилом, а скорей всего - исключением. все остальное ускоряется кешированием.
 
Автор оригинала: Кром
>то когда по часу пишешь один оператор SELECT

На самом деле для таких случаев существуют функции. Написать ее если и займет час времени, то только один раз. :-)
Об этом и речь. А представь сколько функций необходимо реализовывать с таким сложным механизмом доступа?
Вот представление я все же в данном случае предоставил xml. Правда пока сам в нем пока не рублю, но интуитивно чувствую, что он поможет. Да и лишнее это - отображать содержимое в зависимости от настроек доступа/безопасности в БД.
 
То что делать это надо функциями, это понятно, не выписывать же на кажое действие тучу ифов и запросов! Вот только что передавать в функцию? Я собственно и хотел пообсуждать и может в результате выписать уник. функцию для определения прав! Сделать так сказать шаблон подходящий, как и для маленького сайта, так и для больших проектов!
Мне, кстати, тоже кажеться, что права надо хранить в БД, а если поля называть ещё так же, как параметр запроса, то и кол-во селектов сократиться... Как мне кажеться!
auth($user, 'add');
-----
auth($u, $a){
---
select $a FROM access WHERE user = $u
---
};
Что-то типа этого...
 
Вобщем то, функциями это здорово. Но возникает идея написания/использования класса security (если подобного еще не написано см. www.phpclasses.org), а далее:
security->addUser($user);
security->grant($user,'add');
$permit = security->auth($user,'add');
итд.
 
Хм... но, что даст использование класса в этой ситуации?
 
по поводу класса:

http://phpgacl.sourceforge.net/ (есть еще в pear-е, но его я не смотрел)

мне он довольно сильно помог в реализации своего класса.

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

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

phpgacl, довольно гибок, но написать что-то обсалютно унифицированное - не возможно.
 
для маленького сайта это все нафиг не надо
Да не маленький сайт, иначе и не гемороился бы!
Посмотрел ссылку, если его использовать, как базу, то наверное неплохо должно получиться! Написать унифицированное наверное можно, вот только это будет такой неповоротливый слон, что он будет нафиг никому не нужен...
 
Сверху