-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathUtils.php
More file actions
79 lines (68 loc) · 2.02 KB
/
Copy pathUtils.php
File metadata and controls
79 lines (68 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
use Core\Route\Route;
use Models\PermissionModel;
use Middlewares\Middlewares;
/**
* Get parameter from $request
* Shorthand for $request['data']->get(...)
*
* @param array $request
* @param string $name
* @param array $filters
*
* @return mixed
*/
function getParam(array $request, string $name, array $filters = []) {
return $request['data']->get($name, $filters);
}
/**
* Get several parameters from $request
*
* @param array $request
* @param array $params
*
* @return array
*/
function getParams(array $request, array $params) {
$return_params = [];
foreach ($params as $param_name => $param_filters) {
$return_params[$param_name] = getParam($request, $param_name, $param_filters);
}
return $return_params;
}
/**
* @param array $request
*
* @return mixed|null
*/
function getUser(array $request) {
return isset($request['user']) ? $request['user'] : null;
}
/**
* Shorthand for creating CRUD routes with access permissions
*
* @param string $model
* @param string $path
* @param string $controller
*
* @return Route[]
* @throws Exception
*/
function CRUDRoutes(string $model, string $path, string $controller): array {
/**
* @var $routes Route[]
*/
$routes = Route::crud($path, $controller);
return [
$routes['create']->middleware(Middlewares::Permission,
PermissionModel::permissionName($model, 'create')),
$routes['read']->middleware(Middlewares::Permission,
PermissionModel::permissionName($model, 'read')),
$routes['list']->middleware(Middlewares::Permission,
PermissionModel::permissionName($model, 'list')),
$routes['update']->middleware(Middlewares::Permission,
PermissionModel::permissionName($model, 'update')),
$routes['delete']->middleware(Middlewares::Permission,
PermissionModel::permissionName($model, 'delete')),
];
}