|
Страницы: [1] | << Новый | Старый >> | Ответ не возможен |
Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.
Автор | Сообщение | |||||||
Grisha Гриша К. Май, 2006 Сообщений: 10 | Grisha url://forum.message:1555 Нормален ли такой подход при проверке привилегий пользователя, основываясь принципом passport.privilege? Здравствуйте. Делаю систему распределения прав по принципу вашего модуля passport, разобраться в программной части не получается, поэтому придумал некоторую технологию, по которой все это буду делать, и хотел бы узнать ваше мнение, нормален ли такой вариант (уловил ли я суть вашей системы)? В БД делаю три основные таблицы как в вашей системе (http://popoff.donetsk.ua/text/work/libs/passport/db/privilege.html), правда вместо tynublob, использую пока что char(255). Привилегии у меня имеют следующий вид: Для проверки привилегий делаю следующее: Также решил, что при отстутсвии привилегий для пользователя, можно будет делать переменную сессии $_SESSION['privileges'] = 'количество привилегий для пользователя', если их нет то привилегии не проверяем. Скажите пожалуйста, нормален ли такой подход? | |||||||
08.09.06 01:28 | URL сообщения | Приват | Инфо об авторе | |||||||
popoff Yuri ![]() Июл, 2004 Сообщений: 923 | popoff url://forum.message:1556
Вы делаете это из технических или из религиозных соображений?
Я у себя нигде не использовал числовые идентификаторы в качестве слов в имени привилегий - везде есть специальное поле с именем файла, который задаётся администратором.
Либо Ваш каталог не может быть иерархическим, либо Вы не правильно поняли, как организуется управление привилегиями в иерархических объектах.
По поводу кеширования как раз сегодня комментировал: Описанные Вами детали легко увидеть в моём коде. При полном отсутствии привилегий у меня в сессии хранится не количество привилегий (которое в Вашем случае нужно подсчитывать - зачем?), а просто флаг: «никаких привилегий нет». Цикл проверки привилегий у меня реализован рекурсивной функцией _passport_privilege_has().
Если Ваш подход для Вас удобен, он решает все возникающие перед Вами задачи и не может привести к проблемам в будущем, значит он - хороший.
На большинстве страниц проверяется сразу большое количество привилегий. К примеру, на этой странице я вижу ссылки перемещение топика, на удаление топика, на переименование файлов топика и всех сообщений. Каждая из этих возможностей задаётся отдельной привилегией. Естественно, проверяется много разных привилегий.
Под словом «создание привилегии» у меня понимается, что эта привилегия не была выдана ни одному администратору, и не была использована ни в одной роли. Как только привилегия кому-то выдана, то есть внесена хотя бы в один из двух списков, она считается созданной. ________________________________ Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить. | |||||||
08.09.06 02:45 | URL сообщения | Приват | Инфо об авторе | |||||||
Grisha Гриша К. Май, 2006 Сообщений: 10 | Grisha url://forum.message:1557 popoff, спасибо большое за ответ.
Я делаю это из-за плохих знаний в программировании и соответсвенно непонимании того, зачем нужно использовать tynyblob. Если вариант с использованием char приемлем, я буду использовать его.
У меня например категории каталога представлены в виде дерева(список смежностей), т.е. например категория с catid=59 (Головодержатели), может быть дочерней по отношению к категории catid=22 (Ортопедические изделия), а у вас наверное к примеру, есть дополнительное поле, содержащее имя файл, например для catid=59 - это /ortizdeliya/golovoderzhateli/, для catid=22 - /ortizdeliya/, получается видимая в строке url иерархия каталогов.
Ну вот к примеру у меня есть папка /catalog/, затем может быть выбрана категория каталога /catalog/?catid=59, в категории может быть выбран товар, /catalog/products.php?catid=59&productid=1, т.е. получается путь catalog.59.products.1 (products == products.php),
Вот с кэшированием я совсем запутался. | |||||||
08.09.06 05:05 | URL сообщения | Приват | Инфо об авторе | |||||||
popoff Yuri ![]() Июл, 2004 Сообщений: 923 | popoff url://forum.message:1560
Невозможно написать правильно работающую программу, не разобравшись в ней. Если Вы не знаете, как функционируют отдельные части Вашей программы, значит Вы не знаете, как функционирует Ваша программа целиком, а это означает что она не будет функционировать правильно. ________________________________ Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить. | |||||||
08.09.06 18:25 | URL сообщения | Приват | Инфо об авторе | |||||||
Grisha Гриша К. Май, 2006 Сообщений: 10 | Grisha url://forum.message:1561 popoff, спасибо за ответ. Я нашел руководство по mysql, почитал про типы столбцов. Основное отличие столбцов с типом BLOB (TYNYBLOB) от CHAR, при сохранение и извлечение завершающие пробелы не удаляются из столбцов BLOB И это двоичные объекты. Я посмотрел, например в GACL, типы столбцов используются varchar. Я думаю, что этот ваш ответ отвечает на все мои вопросы в предыдущем сообщение. Хотелбы задать вам только один последний вопрос. | |||||||
08.09.06 18:49 | URL сообщения | Приват | Инфо об авторе | |||||||
popoff Yuri ![]() Июл, 2004 Сообщений: 923 | popoff url://forum.message:1563 У меня нет понятия «создание привилегии». ________________________________ Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить. | |||||||
08.09.06 19:40 | URL сообщения | Приват | Инфо об авторе | |||||||
Grisha Гриша К. Май, 2006 Сообщений: 10 | Grisha url://forum.message:1565 У вас например есть таблица passport_role_privilege | |||||||
08.09.06 22:11 | URL сообщения | Приват | Инфо об авторе | |||||||
popoff Yuri ![]() Июл, 2004 Сообщений: 923 | popoff url://forum.message:1566 Список привилегий преобразуется в простой текст, который вводится в textarea. Например: allow admin Это верно как для списка привилегий роли, так и для списка привилегий администраторов. ________________________________ Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить. | |||||||
08.09.06 22:45 | URL сообщения | Приват | Инфо об авторе | |||||||
Grisha Гриша К. Май, 2006 Сообщений: 10 | Grisha url://forum.message:1567 Спасибо большое за разъяснения. Который раз я опять читал описание модуля passpot.privileges, и в итоге я представляю что и как мне надо сделать. Cпасибо за статью. | |||||||
08.09.06 22:50 | URL сообщения | Приват | Инфо об авторе | |||||||
Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.
Страницы: [1] | << Новый | Старый >> | Ответ не возможен |
Вход |
Цитирование материалов моего сайта приветствуется! при условии видимой действующей! гиперссылки на мой сайт. [Ссылки] Если Вы нашли опечатку на этой странице, пожалуйста, выделите ее мышью и нажмите Ctrl+Enter. Сделаем язык чище! (c) Yuri Popoff, 2004 - 2008, popoff.donetsk.ua, style.donetsk.ua |
|