<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 代碼 >注:需要類庫`Tree`,和模型`AdminMenuModel` ``` <?php namespace app\agent\controller; use think\Controller; use think\Db; use tree\Tree; use app\agent\model\AdminMenuModel; class RbacController extends Controller { /** * 設置角色權限 */ public function authorize() { $AuthAccess = Db::name("AuthAccess"); $adminMenuModel = new AdminMenuModel(); //角色ID $roleId = $this->request->param("id", 0, 'intval'); if (empty($roleId)) { $this->error("參數錯誤!"); } $tree = new Tree(); $tree->icon = ['│ ', '├─ ', '└─ ']; $tree->nbsp = '&nbsp;&nbsp;&nbsp;'; $result = $adminMenuModel->menuCache(); $newMenus = []; $privilegeData = $AuthAccess->where(["role_id" => $roleId])->column("rule_name");//獲取權限表數據 foreach ($result as $m) { $newMenus[$m['id']] = $m; } foreach ($result as $n => $t) { $result[$n]['checked'] = ($this->_isChecked($t, $privilegeData)) ? ' checked' : ''; $result[$n]['level'] = $this->_getLevel($t['id'], $newMenus); $result[$n]['style'] = empty($t['parent_id']) ? '' : 'display:none;'; $result[$n]['parentIdNode'] = ($t['parent_id']) ? ' class="child-of-node-' . $t['parent_id'] . '"' : ''; } $str = "<tr id='node-\$id'\$parentIdNode style='\$style'> <td style='padding-left:30px;'>\$spacer<input type='checkbox' name='menuId[]' value='\$id' level='\$level' \$checked onclick='javascript:checknode(this);'> \$name</td> </tr>"; $tree->init($result); $category = $tree->getTree(0, $str); $this->assign("category", $category); $this->assign("roleId", $roleId); return $this->fetch(); } /** * 檢查指定菜單是否有權限 * @param array $menu menu表中數組 * @param $privData * @return bool */ private function _isChecked($menu, $privData) { $app = $menu['app']; $model = $menu['controller']; $action = $menu['action']; $name = strtolower("$app/$model/$action"); if ($privData) { if (in_array($name, $privData)) { return true; } else { return false; } } else { return false; } } /** * 獲取菜單深度 * @param $id * @param array $array * @param int $i * @return int */ protected function _getLevel($id, $array = [], $i = 0) { if ($array[$id]['parent_id'] == 0 || empty($array[$array[$id]['parent_id']]) || $array[$id]['parent_id'] == $id) { return $i; } else { $i++; return $this->_getLevel($array[$id]['parent_id'], $array, $i); } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看