<?php
//идея в том, что бы если авторизован - было доступно все приложение
//а если не авторизован - то только страницы регистрации/авторизаци а с других страниц бросало
//на страницу регистрации с сообщением "зарегистрируйтесь"
// мидлвэйры
//мидлвэйр для проверки для группы регистрации
$middleware_access = function ( $request , $response , $next ) {
$authorized = false ;
//пусть страницы авторизации всегда доступны
if ( true ) {
//по идее тут должны только роуты из группы регистрации обрабатываться
$next ( $request , $response ) ;
return $response ;
}
} ;
//мидлвэйр для проверки для группы всех остальных
$middleware_access_all = function ( $request , $response , $next ) {
$authorized = true ;
//если авторизация есть то идем по роутам
if ( $authorized ) {
$next ( $request , $response ) ;
return $response ;
} else {
//а если авторизации нет то тут как то сделать редирект на страницу
//авторизацию, но у меня получается какая то жопа
//такое не работает
$response -> withRedirect ( '/registration' , 301 ) ;
return $response ;
}
} ;
//роуты
//группа для регистрации
$app -> group ( '' , function ( ) {
$this -> get ( '/registration' , function ( $request , $response ) {
//..
} ) ;
$this -> post ( '/registration' , function ( $request , $response ) {
//..
} ) ;
} ) -> add ( $middleware_access ) ;
//группа всех остальных роутов
$app -> group ( '' , function ( ) {
$this -> get ( '/' , function ( $request , $response ) {
//..
} ) ;
$this -> post ( '/' , function ( $request , $response ) {
//..
} ) ;
$this -> get ( '/test' , function ( $request , $response ) {
//..
} ) ;
} ) -> add ( $middleware_access_all ) ;
//группы роутов у меня начинаются с одинаковых шаблонов $app->group('', ...)
//незнаю можно ли так делать
PD9waHAKLy/QuNC00LXRjyDQsiDRgtC+0LwsINGH0YLQviDQsdGLINC10YHQu9C4INCw0LLRgtC+0YDQuNC30L7QstCw0L0gLSDQsdGL0LvQviDQtNC+0YHRgtGD0L/QvdC+INCy0YHQtSDQv9GA0LjQu9C+0LbQtdC90LjQtQovL9CwINC10YHQu9C4INC90LUg0LDQstGC0L7RgNC40LfQvtCy0LDQvSAtINGC0L4g0YLQvtC70YzQutC+INGB0YLRgNCw0L3QuNGG0Ysg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuC/QsNCy0YLQvtGA0LjQt9Cw0YbQuCDQsCDRgSDQtNGA0YPQs9C40YUg0YHRgtGA0LDQvdC40YYg0LHRgNC+0YHQsNC70L4gCi8v0L3QsCDRgdGC0YDQsNC90LjRhtGDINGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0YEg0YHQvtC+0LHRidC10L3QuNC10LwgItC30LDRgNC10LPQuNGB0YLRgNC40YDRg9C50YLQtdGB0YwiCgovLyDQvNC40LTQu9Cy0Y3QudGA0YsKLy/QvNC40LTQu9Cy0Y3QudGAINC00LvRjyDQv9GA0L7QstC10YDQutC4INC00LvRjyDQs9GA0YPQv9C/0Ysg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuAokbWlkZGxld2FyZV9hY2Nlc3MgPSBmdW5jdGlvbiAoJHJlcXVlc3QsICRyZXNwb25zZSwgJG5leHQpewogICAgJGF1dGhvcml6ZWQgPSBmYWxzZTsKICAgIC8v0L/Rg9GB0YLRjCDRgdGC0YDQsNC90LjRhtGLINCw0LLRgtC+0YDQuNC30LDRhtC40Lgg0LLRgdC10LPQtNCwINC00L7RgdGC0YPQv9C90YsKICBpZiAodHJ1ZSkgewogICAgLy/Qv9C+INC40LTQtdC1INGC0YPRgiDQtNC+0LvQttC90Ysg0YLQvtC70YzQutC+INGA0L7Rg9GC0Ysg0LjQtyDQs9GA0YPQv9C/0Ysg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDQvtCx0YDQsNCx0LDRgtGL0LLQsNGC0YzRgdGPCiAgICAkbmV4dCgkcmVxdWVzdCwkcmVzcG9uc2UpOwogICAgcmV0dXJuICRyZXNwb25zZTsKICAgIH0KICAgIAoKfTsKCi8v0LzQuNC00LvQstGN0LnRgCDQtNC70Y8g0L/RgNC+0LLQtdGA0LrQuCDQtNC70Y8g0LPRgNGD0L/Qv9GLINCy0YHQtdGFINC+0YHRgtCw0LvRjNC90YvRhQokbWlkZGxld2FyZV9hY2Nlc3NfYWxsID0gZnVuY3Rpb24gKCRyZXF1ZXN0LCAkcmVzcG9uc2UsICRuZXh0KXsKICAkYXV0aG9yaXplZCA9IHRydWU7CiAgLy/QtdGB0LvQuCDQsNCy0YLQvtGA0LjQt9Cw0YbQuNGPINC10YHRgtGMINGC0L4g0LjQtNC10Lwg0L/QviDRgNC+0YPRgtCw0LwKICBpZiAoJGF1dGhvcml6ZWQpIHsKICAgICRuZXh0KCRyZXF1ZXN0LCRyZXNwb25zZSk7CiAgICByZXR1cm4gJHJlc3BvbnNlOwogIH1lbHNlewogIC8v0LAg0LXRgdC70Lgg0LDQstGC0L7RgNC40LfQsNGG0LjQuCDQvdC10YIg0YLQviDRgtGD0YIg0LrQsNC6INGC0L4g0YHQtNC10LvQsNGC0Ywg0YDQtdC00LjRgNC10LrRgiDQvdCwINGB0YLRgNCw0L3QuNGG0YMKICAvL9Cw0LLRgtC+0YDQuNC30LDRhtC40Y4sINC90L4g0YMg0LzQtdC90Y8g0L/QvtC70YPRh9Cw0LXRgtGB0Y8g0LrQsNC60LDRjyDRgtC+INC20L7Qv9CwIAogIC8v0YLQsNC60L7QtSDQvdC1INGA0LDQsdC+0YLQsNC10YIKICAkcmVzcG9uc2UtPndpdGhSZWRpcmVjdCgnL3JlZ2lzdHJhdGlvbicsIDMwMSk7CiAgcmV0dXJuICRyZXNwb25zZTsKICAJCiAgfQkKfTsKCgoKLy/RgNC+0YPRgtGLCi8v0LPRgNGD0L/Qv9CwINC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4CiRhcHAtPmdyb3VwKCcnLCBmdW5jdGlvbigpewoKICAkdGhpcy0+Z2V0KCcvcmVnaXN0cmF0aW9uJywgZnVuY3Rpb24oJHJlcXVlc3QsICRyZXNwb25zZSl7CgogICAgLy8uLgoKICB9KTsKCiAgJHRoaXMtPnBvc3QoJy9yZWdpc3RyYXRpb24nLCBmdW5jdGlvbigkcmVxdWVzdCwgJHJlc3BvbnNlKXsKCiAgICAvLy4uCiAgfSk7Cgp9KS0+YWRkKCRtaWRkbGV3YXJlX2FjY2Vzcyk7CgovL9Cz0YDRg9C/0L/QsCDQstGB0LXRhSDQvtGB0YLQsNC70YzQvdGL0YUg0YDQvtGD0YLQvtCyCiRhcHAtPmdyb3VwKCcnLGZ1bmN0aW9uKCl7CgogICR0aGlzLT5nZXQoJy8nLCBmdW5jdGlvbiAoJHJlcXVlc3QsICRyZXNwb25zZSl7CgogICAgLy8uLgogIH0pOwoKICAkdGhpcy0+cG9zdCgnLycsIGZ1bmN0aW9uKCRyZXF1ZXN0LCAkcmVzcG9uc2UpewoJLy8uLgkKICB9KTsKCiAgJHRoaXMtPmdldCgnL3Rlc3QnLCBmdW5jdGlvbigkcmVxdWVzdCwgJHJlc3BvbnNlKXsKICAgIC8vLi4KICB9KTsKCn0pLT5hZGQoJG1pZGRsZXdhcmVfYWNjZXNzX2FsbCk7CgoKLy/Qs9GA0YPQv9C/0Ysg0YDQvtGD0YLQvtCyINGDINC80LXQvdGPINC90LDRh9C40L3QsNGO0YLRgdGPINGBINC+0LTQuNC90LDQutC+0LLRi9GFINGI0LDQsdC70L7QvdC+0LIgJGFwcC0+Z3JvdXAoJycsIC4uLikKLy/QvdC10LfQvdCw0Y4g0LzQvtC20L3QviDQu9C4INGC0LDQuiDQtNC10LvQsNGC0Yw=