ramzes, добавляем строки в секцию и ставим 1
из ини можно даже массивы получать, просто не с компа, так бы для наглядности нарисовал бы файл и функцию
L!MP (16.07.2012/10:56)
ramzes, вся проблема в том, что ты соотносишь правила к каждому конкретному юзеру. В резльтате получаем: кол.во юзеров * кол.во правил.
В варианте ролями, мы обьединяем множества юзеров в нескольк
смотри,
***/books/add/ - один обьект
***/books/edit/486/ -второй обьект
***/wallpapers-add-cat/ - третий обьект
_________
как привязать правила к обьектам не влезая в код (на уровне ядра)?
урлам как то не хочется доверять, они и динамическими могут быть
создать еще один роутер, для обьектов прав доступа?
_________
интерфейс, он у меня получается очень плохо контролируемым (список очень велик может быть) но это в принципе ждет, главное придумать привязку прав к обьектам, и как на зло идей нет
Koenig, но этот файл будет огромен
юзеры*обьекты
до 500000 элементов же
потребление памяти и скорость не оправданы
или я не улавливаю чего то?
можешь привести пример пары строк из такого файла хранения прав?
ramzes, не залазя в код, думаю никак. Нужно ручкаме проверки прописывать в экшионах.
Хотя х.з какой там у тебя принцип инициальзации контроллеров.
Тебе нужно знать идентификатор текущего действия, кпримеру photo/edit.
Если нет возможности определять его автоматически, то прийдётся писать проверки руками, в самих экшинах.
L!MP, гм.. хорошо поговорили, я придумал))) в роутере уже все есть же
/template/books/add.php
вот тормоз то
пошел строчить гг, спасибо
В основном, если это МVC система, то фронт-контроллер должен содержать инфу о текущем экшине.
http://mysite.ru/photo/32/edit
Внутри системы выглядит как:
controller = photo
action = edit
arguments = [id => 32]
Вот пологаясь на эти данные, проверку доступа можно поднять на уровень ядра, или базового контроллера.
ramzes, парсим ини файл, переменная access = user
___
[admin]
modyfy = 1
delete = 1
copy = 1
[user]
modyfy = 0
copy = 0
delete = 0
___
так как у тебя роутер, то в файле edit
добавляем строку проверки,
if ($access['modyfy'] === false)
die('access forbiden');
где access массив после парсинга ини , $access можно в сессии носить или из базы тянуть, имхо в сессии по удобнее
ramzes (16.07.2012/11:17)
пошел строчить гг, спасибо
Только не забудь о том что я о ролях говорил.
Лучше ассоциировать правила не с конкретным юзером, а с ролью, которая может обьединять множества юзеров.
Так ты избежишь тех проблем, с большим кол.вом записей, и вцелом это удобней для дальнейшего представления в интерфейсе.
L!MP, Вот про роли не очень понял, опять же уровни доступа? Просто немного расширенные?