Passed
Push — master ( 616529...83faa8 )
by Peter
02:39
created

admin-routes.php (2 issues)

Labels
Severity
1
<?php
2
3
declare(strict_types=1);
4
5
use AbterPhp\Admin\Config\Routes as RoutesConfig;
6
use AbterPhp\Admin\Constant\Routes;
7
use AbterPhp\Admin\Http\Middleware\Authentication;
8
use AbterPhp\Admin\Http\Middleware\Authorization;
9
use AbterPhp\Admin\Http\Middleware\LastGridPage;
10
use AbterPhp\Framework\Authorization\Constant\Role;
11
use Opulence\Routing\Router;
12
13
/**
14
 * ----------------------------------------------------------
15
 * Create all of the routes for the HTTP kernel
16
 * ----------------------------------------------------------
17
 *
18
 * @var Router $router
19
 */
20
$router->group(
21
    ['controllerNamespace' => 'AbterPhp\Admin\\Http\\Controllers'],
22
    function (Router $router) {
23
        $router->group(
24
            [
25
                'path'       => RoutesConfig::getAdminBasePath(),
26
                'middleware' => [
27
                    Authentication::class,
28
                ],
29
            ],
30
            function (Router $router) {
31
                $entities = [
32
                    'usergroups' => 'UserGroup',
33
                    'users'      => 'User',
34
                    'apiclients' => 'ApiClient',
35
                ];
36
37
                foreach ($entities as $route => $controllerName) {
38
                    $path = strtolower($controllerName);
39
40
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Grid\User::show() */
41
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Grid\UserGroup::show() */
42
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Grid\ApiClient::show() */
43
                    $router->get(
44
                        "/${path}",
45
                        "Admin\Grid\\${controllerName}@show",
46
                        [
47
                            RoutesConfig::OPTION_NAME       => "${route}",
0 ignored issues
show
The constant AbterPhp\Admin\Config\Routes::OPTION_NAME was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
48
                            RoutesConfig::OPTION_MIDDLEWARE => [
0 ignored issues
show
The constant AbterPhp\Admin\Config\Routes::OPTION_MIDDLEWARE was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
49
                                Authorization::withParameters(
50
                                    [
51
                                        Authorization::RESOURCE => $route,
52
                                        Authorization::ROLE     => Role::READ,
53
                                    ]
54
                                ),
55
                                LastGridPage::class,
56
                            ],
57
                        ]
58
                    );
59
60
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Form\User::new() */
61
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Form\UserGroup::new() */
62
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Form\ApiClient::new() */
63
                    $router->get(
64
                        "/${path}/new",
65
                        "Admin\Form\\${controllerName}@new",
66
                        [
67
                            RoutesConfig::OPTION_NAME       => "${route}-new",
68
                            RoutesConfig::OPTION_MIDDLEWARE => [
69
                                Authorization::withParameters(
70
                                    [
71
                                        Authorization::RESOURCE => $route,
72
                                        Authorization::ROLE     => Role::WRITE,
73
                                    ]
74
                                ),
75
                            ],
76
                        ]
77
                    );
78
79
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\User::create() */
80
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\UserGroup::create() */
81
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\ApiClient::create() */
82
                    $router->post(
83
                        "/${path}/new",
84
                        "Admin\Execute\\${controllerName}@create",
85
                        [
86
                            RoutesConfig::OPTION_NAME       => "${route}-create",
87
                            RoutesConfig::OPTION_MIDDLEWARE => [
88
                                Authorization::withParameters(
89
                                    [
90
                                        Authorization::RESOURCE => $route,
91
                                        Authorization::ROLE     => Role::WRITE,
92
                                    ]
93
                                ),
94
                            ],
95
                        ]
96
                    );
97
98
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Form\User::edit() */
99
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Form\UserGroup::edit() */
100
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Form\ApiClient::edit() */
101
                    $router->get(
102
                        "/${path}/:entityId/edit",
103
                        "Admin\Form\\${controllerName}@edit",
104
                        [
105
                            RoutesConfig::OPTION_NAME       => "${route}-edit",
106
                            RoutesConfig::OPTION_MIDDLEWARE => [
107
                                Authorization::withParameters(
108
                                    [
109
                                        Authorization::RESOURCE => $route,
110
                                        Authorization::ROLE     => Role::WRITE,
111
                                    ]
112
                                ),
113
                            ],
114
                        ]
115
                    );
116
117
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\User::update() */
118
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\UserGroup::update() */
119
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\ApiClient::update() */
120
                    $router->put(
121
                        "/${path}/:entityId/edit",
122
                        "Admin\Execute\\${controllerName}@update",
123
                        [
124
                            RoutesConfig::OPTION_NAME       => "${route}-update",
125
                            RoutesConfig::OPTION_MIDDLEWARE => [
126
                                Authorization::withParameters(
127
                                    [
128
                                        Authorization::RESOURCE => $route,
129
                                        Authorization::ROLE     => Role::WRITE,
130
                                    ]
131
                                ),
132
                            ],
133
                        ]
134
                    );
135
136
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\User::delete() */
137
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\UserGroup::delete() */
138
                    /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\ApiClient::delete() */
139
                    $router->get(
140
                        "/${path}/:entityId/delete",
141
                        "Admin\Execute\\${controllerName}@delete",
142
                        [
143
                            RoutesConfig::OPTION_NAME       => "${route}-delete",
144
                            RoutesConfig::OPTION_MIDDLEWARE => [
145
                                Authorization::withParameters(
146
                                    [
147
                                        Authorization::RESOURCE => $route,
148
                                        Authorization::ROLE     => Role::WRITE,
149
                                    ]
150
                                ),
151
                            ],
152
                        ]
153
                    );
154
                }
155
156
                /** @see \AbterPhp\Admin\Http\Controllers\Admin\Form\Profile::profile() */
157
                $router->get(
158
                    Routes::PATH_PROFILE,
159
                    'Admin\Form\Profile@profile',
160
                    [
161
                        RoutesConfig::OPTION_NAME => Routes::ROUTE_PROFILE,
162
                    ]
163
                );
164
165
                /** @see \AbterPhp\Admin\Http\Controllers\Admin\Execute\Profile::execute() */
166
                $router->put(
167
                    Routes::PATH_PROFILE,
168
                    'Admin\Execute\Profile@profile',
169
                    [
170
                        RoutesConfig::OPTION_NAME => Routes::ROUTE_PROFILE,
171
                    ]
172
                );
173
174
                /** @see \AbterPhp\Admin\Http\Controllers\Admin\Dashboard::showDashboard() */
175
                $router->get(
176
                    Routes::PATH_DASHBOARD,
177
                    'Admin\Dashboard@showDashboard',
178
                    [
179
                        RoutesConfig::OPTION_NAME => Routes::ROUTE_DASHBOARD,
180
                    ]
181
                );
182
            }
183
        );
184
    }
185
);
186