<?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('', ...)
//незнаю можно ли так делать