Cakephp 3.7 UserController с логином и админом - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь использовать usercontroller с логином и админом. У меня есть следующие настройки:

Dashboard  -> Admin
  Users -> Overview of users section on admin
login -> Login before admin area
signup -> Signup before admin area

Контроллер пользователей находится в папке Dashboard для администратора. Этот контроллер содержит все, что угодно: просматривать / добавлять / редактировать / удалять пользователей.

Но я не могу использовать там логин и sigup, так как путь другой.

Вот как выглядит мой rout.php:

Router::prefix('dashboard', function ($routes) {

    $routes->connect('/', ['controller' => 'Dashboard', 'action' => 'index']);


    $routes->prefix('users', function ($routes) {
        $routes->connect('/users', ['controller' => 'Users', 'action' => 'index']);
        $routes->connect('/users', ['controller' => 'Users', 'action' => 'profile']);
        $routes->connect('/users', ['controller' => 'Users', 'action' => 'groups']);
        $routes->connect('/groups', ['controller' => 'Groups', 'action' => 'index']);
        $routes->connect('/groups/:action/*', ['controller' => 'Groups']);
    });

    $routes->prefix('sc', function ($routes) {
        $routes->connect('/announcements', ['controller' => 'Announcements', 'action' => 'index']);
        $routes->connect('/announcements/:action/*', ['controller' => 'Announcements']);
        $routes->connect('/push-notifications', ['controller' => 'Push', 'action' => 'index']);
        $routes->connect('/settings', ['controller' => 'appsettings', 'action' => 'index']);
    });

    $routes->prefix('web', function ($routes) {
        $routes->connect('/pages', ['controller' => 'web', 'action' => 'pages']);
        $routes->connect('/websettings', ['controller' => 'websettings', 'action' => 'index']);
    });

    $routes->fallbacks(DashedRoute::class);
});

Router::scope('/', function (RouteBuilder $routes) {
    $routes->registerMiddleware('csrf', new CsrfProtectionMiddleware([
        'httpOnly' => true
    ]));

    $routes->applyMiddleware('csrf');

    $routes->connect('/', ['controller' => 'Users', 'action' => 'login', 'home']);
    $routes->connect('/signup', ['controller' => 'Users', 'action' => 'signup']);

    $routes->fallbacks(DashedRoute::class);
});

Итак, пути выглядят так:

http://localhost:8765/dashboard/users
http://localhost:8765/users/login
http://localhost:8765/users/signup

То, что я хотел бы, чтобы было 2 последних пункта:

http://localhost:8765/login
http://localhost:8765/signup

Насколько я знаю, я не могу использовать 2 пользовательских контроллера. Так как я могу иметь логин / подписку вместе со всем потоком пользователей в одном контроллере, но не в пути.

Приветствия

...