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

Кром

Новичок
Что в твоем понятие " бешеные выборки"? :) Можно это выразить в цифрах?
 

saa

Guest
Если только количеством вложенных подзапросов :). В моем понятии бешеные - это когда по часу пишешь один оператор SELECT :)

-~{}~ 09.07.04 18:43:

Вобщем то я про сложности с реализацией такой схемы (с переменным количеством прав).
 

Кром

Новичок
>то когда по часу пишешь один оператор SELECT

На самом деле для таких случаев существуют функции. Написать ее если и займет час времени, то только один раз. :)
 

desperado

Новичок
http://phpclub.ru/talk/showthread.php?s=&threadid=51554&rand=29

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

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

saa

Guest
Автор оригинала: Кром
>то когда по часу пишешь один оператор SELECT

На самом деле для таких случаев существуют функции. Написать ее если и займет час времени, то только один раз. :)
Об этом и речь. А представь сколько функций необходимо реализовывать с таким сложным механизмом доступа?
Вот представление я все же в данном случае предоставил xml. Правда пока сам в нем пока не рублю, но интуитивно чувствую, что он поможет. Да и лишнее это - отображать содержимое в зависимости от настроек доступа/безопасности в БД.
 

voland

Guest
То что делать это надо функциями, это понятно, не выписывать же на кажое действие тучу ифов и запросов! Вот только что передавать в функцию? Я собственно и хотел пообсуждать и может в результате выписать уник. функцию для определения прав! Сделать так сказать шаблон подходящий, как и для маленького сайта, так и для больших проектов!
Мне, кстати, тоже кажеться, что права надо хранить в БД, а если поля называть ещё так же, как параметр запроса, то и кол-во селектов сократиться... Как мне кажеться!
auth($user, 'add');
-----
auth($u, $a){
---
select $a FROM access WHERE user = $u
---
};
Что-то типа этого...
 

saa

Guest
Вобщем то, функциями это здорово. Но возникает идея написания/использования класса security (если подобного еще не написано см. www.phpclasses.org), а далее:
security->addUser($user);
security->grant($user,'add');
$permit = security->auth($user,'add');
итд.
 

voland

Guest
Хм... но, что даст использование класса в этой ситуации?
 

desperado

Новичок
по поводу класса:

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

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

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

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

phpgacl, довольно гибок, но написать что-то обсалютно унифицированное - не возможно.
 

voland

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