backendMiddleware.php 2.05 KB
<?php

namespace App\Http\Middleware;

use Closure;
use OjiSatriani\Fungsi;
use View;
use Illuminate\Support\Collection;
use App\Models\Menu;
use App\Models\Aksesmenu;

class backendMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */

    protected $fungsi;
    protected $tanggal;

    public function handle($request, Closure $next)
    {
        $user	    = \Auth::user();
        $current    = explode(".", \Route::currentRouteName());
        $child_item = [];
        $menu       = NULL;
        $dataMenus  = Menu::all();
        if ($dataMenus) {
            foreach ($dataMenus as $menus) {
                if ($menus->tampilkan) {
                    if ($menus->parent_id != NULL) {
                        $child_item[$menus->parent_id][]  = $menus;
                    }
                }
                if($menus->kode == $current[0]) {
                    $menu = $menus;
                }
            }
        }
        $aksesmenu_id  = [];
        $dataAksesMenus = Aksesmenu::select('menu_id')->where('aksesgrup_id', $user->aksesgrup_id)->get();
        if ($dataAksesMenus) {
            foreach ($dataAksesMenus as $aksesMenus) {
                $aksesmenu_id[] = $aksesMenus->menu_id;
            }
        }
        $menu_item      = Menu::with('children')->whereNull('parent_id')->get();
        $halaman        = $menu === null ? null:$menu;
        $this->fungsi   = new Fungsi;
        $this->tanggal  = Fungsi::setTanggal();        
        View::share([
            'menu_item'     => $menu_item,
            'child_item'    => $child_item,
            'aksesmenu_id'  => $aksesmenu_id,
            'fungsi'        => $this->fungsi,
            'tanggal'       => $this->tanggal,
            'halaman'       => $halaman,
            'url_admin'     => config('master.url.admin'),
        ]);
        $request->merge([
            'r_menu' => $menu,
            'r_aksesmenu' => $aksesmenu_id,
        ]);
        return $next($request);
    }
}