protected function setMenu() { Menu::modify('adminlte-sidebar', function ($menu) { $menu->dropdown('Configurações', function ($sub) { $sub->route('admin.mmails.index', 'Formulários', [], 200, ['icon' => 'fa fa-minus', 'active' => function () { return checkActive(route('admin.mmails.index')); }])->hideWhen(function () { return checkRule('admin.mmails.index'); }); $sub->route('admin.maudit.index', 'Logs', [], 210, ['icon' => 'fa fa-minus', 'active' => function () { return checkActive(route('admin.maudit.index')); }])->hideWhen(function () { return checkRule('admin.maudit.index'); }); $sub->route('admin.mcache.index', 'Cache', [], 220, ['icon' => 'fa fa-minus', 'active' => function () { return checkActive(route('admin.mcache.index')); }])->hideWhen(function () { return checkRule('admin.mcache.index'); }); }, 2, ['icon' => 'fa fa-cogs'])->hideWhen(function () { return checkRule(['admin.maudit.index', 'admin.mcache.index', 'admin.mmails.index']); }); }); Menu::modify('adminlte-permissions', function ($menu) { $menu->url('admin.mmails.index', 'Formulários', 200); $menu->url('admin.maudit.index', 'Logs', 210, ['except' => ['create', 'edit', 'destroy', 'trash']]); $menu->url('admin.mcache.index', 'Cache', 220, ['except' => ['create', 'edit', 'destroy', 'trash']]); }); }
protected function setMenu() { Menu::create('adminlte-sidebar', function ($menu) { $menu->setView('vendor.pingpong.menus.adminlte.default'); $menu->dropdown('Usuários', function ($sub) { $sub->route('admin.users.index', 'Usuários', [], 1, ['icon' => 'fa fa-minus', 'active' => function () { return checkActive(route('admin.users.index')); }])->hideWhen(function () { return checkRule('admin.users.index'); }); $sub->route('admin.roles.index', 'Grupos', [], 1, ['icon' => 'fa fa-minus', 'active' => function () { return checkActive(route('admin.roles.index')); }])->hideWhen(function () { return checkRule('admin.roles.index'); }); }, 1, ['icon' => 'fa fa-users'])->hideWhen(function () { return checkRule(['admin.users.index', 'admin.roles.index']); }); }); Menu::create('adminlte-permissions', function ($menu) { $menu->setView('vendor.pingpong.menus.adminlte.permissions'); $menu->url('admin.users', 'Usuários', ['']); $menu->url('admin.roles', 'Grupos', ['']); }); }
public function handle($request, Closure $next) { $actions = $request->route()->getAction(); if (!isset($actions['as'])) { return redirect()->route('admin.notFound'); } $rule = str_replace(['.store', '.update', '.restore'], ['.create', '.edit', '.trash'], $actions['as']); if (checkRule($rule)) { return redirect()->route('admin.notFound'); } return $next($request); }
protected function setMenu() { Menu::modify('adminlte-sidebar', function ($menu) { $menu->route('admin.banners.index', config('mbanners.name', 'Banners'), [], config('mbanners.order', 30), ['icon' => config('mbanners.icon', 'fa fa-image'), 'active' => function () { return checkActive(route('admin.banners.index')); }])->hideWhen(function () { return checkRule('admin.banners.index'); }); }); Menu::modify('adminlte-permissions', function ($menu) { $menu->url('admin.banners', config('mbanners.name', 'Banners'), config('mbanners.order', 30)); }); }
protected function setMenu() { Menu::modify('adminlte-sidebar', function ($menu) { $menu->route('admin.maudit.index', 'Logs', [], 210, ['icon' => 'fa fa-tasks', 'active' => function () { return checkActive(route('admin.maudit.index')); }])->hideWhen(function () { return checkRule('admin.maudit.index'); }); }); Menu::modify('adminlte-permissions', function ($menu) { $menu->url('admin.maudit.index', 'Logs', 210, ['except' => ['create', 'edit', 'destroy', 'trash']]); }); }
protected function setMenu() { Menu::modify('adminlte-sidebar', function ($menu) { $menu->route('admin.mmails.index', 'Envios', [], 210, ['icon' => 'fa fa-paper-plane', 'active' => function () { return checkActive(route('admin.mmails.index')); }])->hideWhen(function () { return checkRule('admin.mmails.index'); }); }); Menu::modify('adminlte-permissions', function ($menu) { $menu->url('admin.mmails.index', 'Envios', 210); }); }
protected function setMenu() { Menu::modify('adminlte-sidebar', function ($menu) { $menu->route('admin.articles.index', config('marticles.name', 'Artigos'), [], config('marticles.order', 20), ['icon' => config('marticles.icon', 'fa fa-file-text'), 'active' => function () { return checkActive(route('admin.articles.index')); }])->hideWhen(function () { return checkRule('admin.articles.index'); }); }); Menu::modify('adminlte-permissions', function ($menu) { $menu->url('admin.articles', config('marticles.name', 'Artigos'), config('marticles.order', 20)); }); }
/** * 系统管理员信息初始化 * * @access private * @return void */ private function initWeb($info) { if (!IS_GET) { return false; } // 通用表单的控制开关 $this->assign('add_button', checkRule('__MODULE__/__CONTROLLER__/add', $this->mid)); $this->assign('del_button', checkRule('__MODULE__/__CONTROLLER__/del', $this->mid)); $this->assign('search_button', checkRule('__MODULE__/__CONTROLLER__/search', $this->mid)); $this->assign('check_all', checkRule('__MODULE__/__CONTROLLER__/del', $this->mid)); $this->assign('top_more_button', $this->top_more_button); $index_1 = strtolower(MODULE_NAME . '/*/*'); $index_2 = strtolower(MODULE_NAME . '/' . CONTROLLER_NAME . '/*'); $index_3 = strtolower(MODULE_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME); // 当前用户信息 $access = array_map('trim', explode("\n", C('access'))); $access = array_map('strtolower', $access); $access = array_flip($access); $guest_login = isset($access[$index_1]) || isset($access[$index_2]) || isset($access[$index_3]) || $index_1 == 'admin/*/*' || $index_3 == 'home/addons/execute' || $index_2 == 'home/user/*'; if (IS_GET && !is_login() && !$guest_login) { Cookie('__forward__', $_SERVER['REQUEST_URI']); redirect(U('home/user/login', array('from' => 6))); } // 判断公众号是否初始化、审核,跳转到对应的页面 if (IS_GET && !$guest_login && $index_2 != 'home/public/*') { if ($GLOBALS['myinfo']['is_init'] == 0) { redirect(U('home/Public/add', array('from' => 1))); } else { if ($GLOBALS['myinfo']['is_audit'] == 0 && !C('REG_AUDIT')) { redirect(U('home/Public/waitAudit')); } } } // 在开启泛域名下必须先配置自定义域名才能用 if (C('DIV_DOMAIN') && is_login() && $index_2 != 'home/public/*' && (empty($info['domain']) || $GLOBALS['mid'] != 1 && $info['domain'] == 'demo')) { redirect(U('home/Public/step_0', array('from' => 1))); } /* 管理中心的导航 */ $menus = D('Common/ManagerMenu')->get($this->mid); $this->assign($menus); $this->assign('reg_audit_switch', C('REG_AUDIT')); }
/** * 获取控制器菜单数组,二级菜单元素位于一级菜单的'_child'元素中 * @author 朱亚杰 <*****@*****.**> */ public final function getMenus($controller = CONTROLLER_NAME) { $menus = session('ADMIN_MENU_LIST.' . $controller); if (empty($menus)) { // 获取主菜单 $where['pid'] = 0; $where['hide'] = 0; if (!C('DEVELOP_MODE')) { // 是否开发者模式 $where['is_dev'] = 0; } $menus['main'] = M('menu')->where($where)->order('sort asc')->field('id,title,url')->select(); $menus['child'] = array(); //设置子节点 foreach ($menus['main'] as $key => $item) { // 判断主菜单权限 if (!IS_ROOT && !checkRule(strtolower(MODULE_NAME . '/' . $item['url']), null)) { unset($menus['main'][$key]); continue; //继续循环 } if (strtolower(CONTROLLER_NAME . '/' . ACTION_NAME) == strtolower($item['url'])) { $menus['main'][$key]['class'] = 'current'; } } // 查找当前子菜单 $pid = M('menu')->where("pid !=0 AND url like '%{$controller}/" . ACTION_NAME . "%'")->getField('pid'); if (!$pid) { $pid = session('admin_menu_pid'); } if ($pid) { session('admin_menu_pid', $pid); // 查找当前主菜单 $nav = M('menu')->find($pid); if ($nav['pid']) { $nav = M('menu')->find($nav['pid']); } foreach ($menus['main'] as $key => $item) { // 获取当前主菜单的子菜单项 if ($item['id'] == $nav['id']) { $menus['main'][$key]['class'] = 'current'; //生成child树 $groups = M('menu')->where(array('group' => array('neq', ''), 'pid' => $item['id']))->distinct(true)->getField("group", true); //获取二级分类的合法url $where = array(); $where['pid'] = $item['id']; $where['hide'] = 0; if (!C('DEVELOP_MODE')) { // 是否开发者模式 $where['is_dev'] = 0; } $second_urls = M('menu')->where($where)->getField('id,url'); if (!IS_ROOT) { // 检测菜单权限 $to_check_urls = array(); foreach ($second_urls as $key => $to_check_url) { if (stripos($to_check_url, MODULE_NAME) !== 0) { $rule = MODULE_NAME . '/' . $to_check_url; } else { $rule = $to_check_url; } if (checkRule($rule, null)) { $to_check_urls[] = $to_check_url; } } } // 按照分组生成子菜单树 foreach ($groups as $g) { $map = array('group' => $g); if (isset($to_check_urls)) { if (empty($to_check_urls)) { // 没有任何权限 continue; } else { $map['url'] = array('in', $to_check_urls); } } $map['pid'] = $item['id']; $map['hide'] = 0; if (!C('DEVELOP_MODE')) { // 是否开发者模式 $map['is_dev'] = 0; } $menuList = M('menu')->where($map)->field('id,pid,title,url,tip')->order('sort asc')->select(); $menus['child'][$g] = list_to_tree($menuList, 'id', 'pid', 'operater', $item['id']); } } } } session('ADMIN_MENU_LIST.' . $controller, $menus); } return $menus; }