Skip to content

Commit

Permalink
Merge pull request #18 from larapack/enhancement/seed-menu-item-and-p…
Browse files Browse the repository at this point in the history
…ermission

Seed menu item and permission
  • Loading branch information
marktopper authored Jan 16, 2018
2 parents 7843095 + 5c4ac5c commit db2f5db
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 1 deletion.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
}
],
"require": {
"larapack/hooks": "~1.0.0"
"larapack/hooks": "~1.0.2"
},
"require-dev": {
"orchestra/testbench": "~3.0"
Expand Down
56 changes: 56 additions & 0 deletions src/VoyagerHooksServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@

use Illuminate\Events\Dispatcher;
use Illuminate\Support\ServiceProvider;
use Larapack\Hooks\Events\Setup;
use Larapack\Hooks\HooksServiceProvider;
use TCG\Voyager\Models\Menu;
use TCG\Voyager\Models\MenuItem;
use TCG\Voyager\Models\Permission;

class VoyagerHooksServiceProvider extends ServiceProvider
{
Expand All @@ -30,6 +34,14 @@ public function boot(Dispatcher $events)
if (config('voyager-hooks.add-route', true)) {
$events->listen('voyager.admin.routing', [$this, 'addHookRoute']);
}

if (config('voyager-hooks.add-hook-menu-item', true)) {
$events->listen(Setup::class, [$this, 'addHookMenuItem']);
}

if (config('voyager-hooks.add-hook-permissions', true)) {
$events->listen(Setup::class, [$this, 'addHookPermissions']);
}
}

public function addHookRoute($router)
Expand All @@ -43,4 +55,48 @@ public function addHookRoute($router)
$router->post('hooks', ['uses' => $namespacePrefix.'HooksController@install', 'as' => 'hooks.install']);
$router->delete('hooks/{name}', ['uses' => $namespacePrefix.'HooksController@uninstall', 'as' => 'hooks.uninstall']);
}

public function addHookMenuItem()
{
$menu = Menu::where('name', 'admin')->first();

if (is_null($menu)) {
return;
}

$parentId = null;

$toolsMenuItem = MenuItem::where('menu_id', $menu->id)
->where('title', 'Tools')
->first();

if ($toolsMenuItem) {
$parentId = $toolsMenuItem->id;
}

$menuItem = MenuItem::firstOrNew([
'menu_id' => $menu->id,
'title' => 'Hooks',
'url' => '',
'route' => 'voyager.hooks',
]);

if (!$menuItem->exists) {
$menuItem->fill([
'target' => '_self',
'icon_class' => 'voyager-hook',
'color' => null,
'parent_id' => $parentId,
'order' => 13,
])->save();
}
}

public function addHookPermissions()
{
Permission::firstOrCreate([
'key' => 'browse_hooks',
'table_name' => null,
]);
}
}

0 comments on commit db2f5db

Please sign in to comment.