public function run() { $view = $this->getView(); JsoneditorAsset::register($view); $editorName = BaseInflector::camelize($this->id) . 'Editor'; $view->registerJs("var container = document.getElementById('" . $this->options['id'] . "');\n var options = " . Json::encode($this->editorOptions) . ";\n var json = " . $this->value . ";\n " . $editorName . " = new JSONEditor(container, options, json);\n jQuery('#" . $this->id . "').parents('form').eq(0).submit(function() {\n jQuery('#" . $this->id . "').val(" . $editorName . ".getText());\n return true;\n });"); echo Html::hiddenInput($this->name, $this->value, ['id' => $this->id]); echo Html::tag('div', '', $this->options); }
/** * On event callback */ public function beforeAction($actionEvent) { $actionId = BaseInflector::camelize($actionEvent->action->id); $controllerId = BaseInflector::camelize($actionEvent->action->controller->id); $permissionName = "{$controllerId}.{$actionId}"; $allowedActions = $actionEvent->action->controller->allowed(); if (\Yii::$app->getUser()->isGuest && !in_array(strtolower($permissionName), array_map('strtolower', $allowedActions)) && \Yii::$app->getRequest()->url !== Url::to(\Yii::$app->getUser()->loginUrl)) { \Yii::$app->getResponse()->redirect(\Yii::$app->getUser()->loginUrl); } if (!Yii::$app->getUser()->isGuest && !in_array(strtolower($permissionName), array_map('strtolower', $allowedActions))) { if (!Yii::$app->user->can($permissionName)) { Yii::$app->getResponse()->redirect(Yii::$app->params['accessDeniedUrl']); } } }