Как отменить дальнейшее выполнение через auto.p ?
JustDoit 16.06.2010 23:47
/ 16.06.2010 23:52
Так сложилось что хотелось по-быстрому (без классов авторизаций и прочего) разрулить парсером доступ на различные части веб-интерфейса. Хотелось использовать встроенный механизм собирать иерархию auto.p и по аналогии с .htaccess хотел заюзать это. Такая примерно структура файлов:
/auto.p
/index.html
/web_admin/auto.p
/web_admin/index.html
/web_user/auto.p
/web_user/index.html
Есть и БД, и форма логина в морде сайта и прочее, при авторизации
устанавливаются свои глобальные переменные
$GL_login, $GL_group, $GL_name ...
При успешном входе, пользователя редиректит в его кабинет в зависимости от его $GL_group, то есть если это admin, то в /web_admin/ как бы все ок,
при выходе редиректит на главную. Если принудительно зайти в папку
то исполнения кода все равно будет в контексте пользователя и ничего не исполнит, но чтобы не было никаких некрасивых сообщений
я хотел, чтобы пользователь который зашел не в свой кабинет "беззвучно" редиректился на главную по инструкции в auto.p, но понял, что код все равно исполняется... дальше доконца.
не вдаваясь в динамические подробности по сути код таков:
# /web_admin/auto.p
#
^if($GL_group ne 'admin'){
$response:location[/]
}
#
то есть если зашедший в раздел /web_admin/ не имеет $GL_group='admin' то его тело ответа должно было бы переопределиться на редирект 304 или какой то там...
однако код дальше исполняется в index.html этой же папки
цепляя весь фарш кода для кабинета админа, но находясь
в контексте другого GL_group конечно имеет 0 записей
из БД и ругается уже другими модулями. А мне хотелось бы
как то заюзать auto.p чтобы завернуть код накорню в другую степь
и средиректить его.
P.S.: Я понимаю что могу это разруливать в index.html, но проблема в том, что *.html не одна а десяток, и дописывать какую-то обертку к каждому *.html внутри как то не кошерно.
- Как отменить дальнейшее выполнение через auto.p ?, JustDoit 16.06.2010 23:47 / 16.06.2010 23:52
- Ответ, Vint 17.06.2010 00:10