Forum Webscript.Ru
Программирование => PHP => Тема начата: Foshvad от 02 Сентября 2002, 16:20:13
-
Может ли кто подсказать принципы построения subj’а ?
Есть админка сайта, с надцатью разделами и подразделами и набор пользователей. Надобно определенным пользователям дать/не дать доступ в определенные разделы.
Единственное, что приходит в голову – это давать идентификаторы каждому из разделов и хранить список разрешенных для каждого пользователя.
-
Создаешь группы, наделяешь эти группы правами, а уже в полученные группы заносишь пользователей.
-
Ну с группами все понятно. Не понятно, как определенные разделы сайта закрепить за определенными пользователями. Разделы ведь вещь не постоянная, их может больше/меньше.
Запрашивает url http://myhost.com/one/two/
Как определить имеет ли пользователь доступ к данному ресурсу? И как быть с http://myhost.com/one/two/page1 ?
-
во-первых к php это никакого отношения не имеет.
во-вторых задача описано очень абстрактно. Могу предложить сделать таблицу с полями
раздел | группа пользовтелей
и в скриптах
select count(*) from access_tab where group=\'$thisGroup\' and section=\'$thisSection\';
Ну с группами все понятно. Не понятно, как определенные разделы сайта закрепить за определенными пользователями. Разделы ведь вещь не постоянная, их может больше/меньше.
Запрашивает url http://myhost.com/one/two/
Как определить имеет ли пользователь доступ к данному ресурсу? И как быть с http://myhost.com/one/two/page1 ?
А ты вообще можешь сам описать (хотя бы просто для себя на бумаге) по какому принципу строятся разделы и как в них распределяются права доступа для юзеров
-
Как определить имеет ли пользователь доступ к данному ресурсу? И как быть с http://myhost.com/one/two/page1 ?
Если сайт полностью на хэтэмээле то по моему разумнее использовать принципы защиты самой файловой системы (или даже саму файловую систему - правда смутно представляю себе то как можно динамически менять владельца процесса веб сервера).
Если контент сайта хранится в базе данных в виде таблиц каждая таблица (или колонка) представляет из себя некоторый определенный раздел, то опять же не ходя вокруг да около используй подсистему безопасности СУБД. Т.е. заводишь новых пользователей базы и настраиваешь доступ к тем или иным разделам средствами СУБД.
Если же дело обстоит чуть сложнее то наверное придется "придумывать тебе велосипед" (или поразмышлять над переделкой структуры самого сайта)
-
А ты вообще можешь сам описать (хотя бы просто для себя на бумаге) по какому принципу строятся разделы
да
и как в них распределяются права доступа для юзеров
увы, заранее этого не известно
Если сайт полностью на хэтэмээле то по моему разумнее использовать принципы защиты самой файловой системы
полностью согласен, только сайт собирается на php+MySQL, ведь HTML в шаблонах
-
Цитата:
и как в них распределяются права доступа для юзеров
увы, заранее этого не известно
Что за бред?
Это уже как в сказке:
пойди туда не знаю куда,
принеси то не знаю что
ЗЫ
Ты сам как программист должен решить как эти права доступа будут распределяться. Сядь и на бумаге напиши или нарисуй схемку как будет работать твоя система
-
Foshvad
увы, заранее этого не известно
Это бред какой-то. Макс прав. Как ты можешь раздать права, если не знаешь по какой схеме их раздавать?
-
Это бред какой-то. Макс прав. Как ты можешь раздать права, если не знаешь по какой схеме их раздавать?
Да нет, схема известна. Не известны разделы. То есть в админке есть определенное количество разделов и (что особенно напрягает) подразделов. Определять каким юзерам дать доступ к каким разделам и подразделам хочет будущий админ сайта, знакомый лишь с основами программирования.
Для себя я бы оч. хотел уяснить, как осуществить связь разделов и подразделов с конкретными группами пользователей (особенно есть учестить, что подгруппы могутиметь одинаковые nick\'и)
-
Foshvad
Слушай, ну чего ты паришься? Изобретаешь колесо и двухмоторный велосипед.
Если тебе так надо разделять пользователей - сделай это по юниксовской технологии. Каждому разделу (или, кстати, статье), сопоставь значения владельца, группы и прав. Напиши простенький скрипт, который, перед тем, как отдать что-то, проверяет права и ругается, если что не так, а затем проинклюдь его в скриптах работы с разделами.
Как это делать физически - сам думай (зависит от способа хранения твоих статей). Если БД - тобавь три поля. Если файловая система - составляй списки
-
Если тебе так надо разделять пользователей - сделай это по юниксовской технологии. Каждому разделу (или, кстати, статье), сопоставь значения владельца, группы и прав. Напиши простенький скрипт, который, перед тем, как отдать что-то, проверяет права и ругается, если что не так, а затем проинклюдь его в скриптах работы с разделами.
А вот это уже идея! :) Спасибо!
Как это делать физически - сам думай (зависит от способа хранения твоих статей). Если БД - тобавь три поля
все гениальное просто! :)