Атрибуты для разделов (папок) CMS с целью скрытия для пользователей

ekkl

Новичок
Атрибуты для разделов (папок) CMS с целью скрытия для пользователей

Добре время суток. Возник такой вопрос, как лучше сделать. Кажеться, что я сильно все усложняю.
В общем ситуация. Есть разделы в CMS. В каждом разделе данные посортированы по папкам.
Нужно:
1) Скрыть некоторые данные от пользовалей (доступны только для привелийованых)
2) Запретить добавление некотрых данных в некоторые папки.
----------
Сделал вот что: для каждого пользователя выставляютсся парва (от 0 до 10) 10 это обычнй пользователь 0 админ.
Дальше возникает куча идей но все они мне не нравяться либо слишком сложно либо нелогично и можно запутаться.
--
1. Решил для каждой папки выставлять два атрибута
Права для просмотра и права для записи (добавления)
Скажем, если выставить 10/5 Пользователи могут только видеть содержимое папки, добавлять только модераторы (припустим у модераторов права 5)
Если выставить 5/10 то пользователи видеть содержимое не смогут, зато смогут добавлять новые элементы. Нужно для того, чтобы иметь возможность просмотреть модераторам что добавили, и только потом (если нужно) перенести в общедоступную папку.
Все-равно как-то заумно выглядит.
Дальше (к примеру галерея). Существуют такие категории

Код:
Города/Мосва/2008
Города/Москва/2009
Города/Полтава/Лето
Города/Полтава/Зима
Папка "Москва" общедоступна, а "полтава" хочу сделать доступной только для моих знакомым. Ставлю права для чтения 8. Тоже есть варианты: либо скрыть пообще это папку, либо скрыть ее только содержимое.
Код:
SELECT * from folders where parent='города' and permission=>$user['permission']
Если скажем выполнить выборку всех фоток, которые сделал Вася
PHP:
Select * from fotos left join folders on (folders.permission=>$user['permission']) where folos.autor='Вася'
Выборка всех фоток по автору "Вася" если они лежат в "доступной" папке.
А если скажем эта фотка не в папке Полтава а в Полтава/лето
Так нужно "отслеживать" атрибуты для всех дочерних папок, чтоб они были не выше, чем в родительской...
В общем запутался, не знаю в какую сторону идти, подтолкните в нужном направлении, если это не тяжело.
 

dimagolov

Новичок
вопрос (ACL) столь серьезен и масштабен, а твои знания в веб технологиях столь ограничены, что думать о нем тебе еще рано, тебе надо выучить многое другое, более важное, для начала.
 

ekkl

Новичок
тебе надо выучить многое другое, более важное, для начала
Например?
 

dimagolov

Новичок
ekkl, для начала добейся того, чтобы твоя цмс работала без прав вообще (админка отдельная тема), а потом...
 

pilot911

Новичок
сказать по опыту - подобное решение не лучшее, когда данные привязаны к каким-то папкам

говорю на основе многолетнего использования Typo3

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

ekkl

Новичок
одна таблица - один модуль в админке
Так и делаю. У меня вообще для каждого раздела своя БД (а для пользователей отдельно) Так как юзаю SQLite ограничений на количество БД нет :)
Но так как папки будет скажем во многих разделах (фотоголерея, фильмотека, музыкалыный раздел) то все эти классы есть настледниками одного, который как раз и являет собой менеджер папок.
PHP:
class folder {

public function createfolder(){.....}

public function loadfolder(){....}
}
PHP:
class films extends folder {

public function loadnode(){....}
public function addnode(){...}

}
подключаю нужныый класс (films и т.д.) и он уже умеет рабоать с папками. Смысл пысать одно и то же в каждом классе. На то он м классы, чтобы наследовать нужные функции.
 
Сверху