Пример #1
0
 /**
  * @param $name
  * @param \Closure $closure Do whatever the theme needs to run
  */
 public static function registerTheme($name, \Closure $closure)
 {
     if (AdminOption::get('theme') == $name) {
         $closure();
     }
     self::$themes[] = $name;
 }
 /**
  * Get the first available model.
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 public function home()
 {
     $model = collect($this->modelManager->all())->first(function ($model) {
         return !in_array($model->name, AdminOption::get('model.hidden'));
     });
     return Redirect::route('admin.model.all', ['slug' => $model->route]);
 }
 public static function routeAction($route)
 {
     $route_permission = AdminOption::get('model.route_permission');
     if (in_array($route, array_keys($route_permission))) {
         if (!self::to($route_permission[$route])) {
             App::abort('403', 'Insufficient privileges');
         }
     }
 }
 private function getFakeModels()
 {
     $fakeModels = AdminOption::get('model.fake');
     $models = [];
     if (empty($fakeModels)) {
         return $models;
     }
     foreach ($fakeModels as $modelName => $modelData) {
         $models[$modelName] = ['name' => $modelName, 'route' => $this->makeModelRoute($modelName), 'fake' => array_merge($modelData, ['model' => $modelName])];
     }
     return $models;
 }
 /**
  * @return array
  */
 private function getMenu()
 {
     return AdminOption::get('menu');
 }
Пример #6
0
<?php

use Mascame\Artificer\Controllers\ModelController;
use Mascame\Artificer\Controllers\HomeController;
use Mascame\Artificer\Controllers\InstallController;
use Mascame\Artificer\Controllers\ExtensionController;
Route::pattern('new_id', '\\d+');
Route::pattern('old_id', '\\d+');
Route::pattern('id', '\\d+');
Route::pattern('integer', '\\d+');
Route::pattern('slug', '[a-z0-9_-]+');
Route::pattern('username', '[a-z0-9_-]{3,16}');
Route::group(['middleware' => ['web', 'artificer'], 'prefix' => \Mascame\Artificer\Options\AdminOption::get('route_prefix')], function () {
    Route::group(['middleware' => 'artificer-installed', 'prefix' => 'install'], function () {
        Route::get('/', ['as' => 'admin.install', 'uses' => InstallController::class . '@home']);
        Route::post('/', InstallController::class . '@install');
    });
    \Mascame\Artificer\Artificer::pluginManager()->outputCoreRoutes();
    Route::group(['middleware' => ['artificer-auth']], function () {
        Route::get('/', ['as' => 'admin.home', 'uses' => HomeController::class . '@home']);
        Route::get('extensions', ExtensionController::class . '@extensions')->name('admin.extensions');
        foreach (['plugins', 'widgets'] as $extensionType) {
            Route::group(['prefix' => $extensionType], function () use($extensionType) {
                Route::get('{slug}/install', ExtensionController::class . '@install')->name('admin.' . $extensionType . '.install');
                Route::get('{slug}/uninstall', ExtensionController::class . '@uninstall')->name('admin.' . $extensionType . '.uninstall');
            });
        }
        Route::group(['prefix' => 'model'], function () {
            Route::get('{slug}', ModelController::class . '@all')->name('admin.model.all');
            Route::get('{slug}/filter', ModelController::class . '@filter')->name('admin.model.filter');
            Route::get('{slug}/create', ModelController::class . '@create')->name('admin.model.create');
 public function field($modelName, $id, $field)
 {
     $this->handleData($this->currentModel->with($this->modelSettings->getRelations())->findOrFail($id));
     $this->fields[$field]->showFullField = true;
     return \HTML::field($this->fields[$field], AdminOption::get('icons'));
 }
 public static function access($menu)
 {
     $menu_permissions = AdminOption::get('menu.' . $menu . '.permissions');
     return self::hasPermission($menu_permissions);
 }