RouteController.php
2.23 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
namespace mdm\admin\controllers;
use Yii;
use mdm\admin\models\Route;
use yii\web\Controller;
use yii\filters\VerbFilter;
/**
* Description of RuleController
*
* @author Misbahul D Munir <misbahuldmunir@gmail.com>
* @since 1.0
*/
class RouteController extends Controller
{
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'create' => ['post'],
'assign' => ['post'],
'remove' => ['post'],
'refresh' => ['post'],
],
],
];
}
/**
* Lists all Route models.
* @return mixed
*/
public function actionIndex()
{
$model = new Route();
return $this->render('index', ['routes' => $model->getRoutes()]);
}
/**
* Creates a new AuthItem model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
*/
public function actionCreate()
{
Yii::$app->getResponse()->format = 'json';
$routes = Yii::$app->getRequest()->post('route', '');
$routes = preg_split('/\s*,\s*/', trim($routes), -1, PREG_SPLIT_NO_EMPTY);
$model = new Route();
$model->addNew($routes);
return $model->getRoutes();
}
/**
* Assign routes
* @return array
*/
public function actionAssign()
{
$routes = Yii::$app->getRequest()->post('routes', []);
$model = new Route();
$model->addNew($routes);
Yii::$app->getResponse()->format = 'json';
return $model->getRoutes();
}
/**
* Remove routes
* @return array
*/
public function actionRemove()
{
$routes = Yii::$app->getRequest()->post('routes', []);
$model = new Route();
$model->remove($routes);
Yii::$app->getResponse()->format = 'json';
return $model->getRoutes();
}
/**
* Refresh cache
* @return type
*/
public function actionRefresh()
{
$model = new Route();
$model->invalidate();
Yii::$app->getResponse()->format = 'json';
return $model->getRoutes();
}
}