/** * @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'); }
<?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); }