1. 程式人生 > >php後臺管理,結合許可權,動態生成欄目列表

php後臺管理,結合許可權,動態生成欄目列表

思路:獲取許可權,生成父類欄目,在判斷子欄目是不是在許可權中,在的話,就拼接成html,返回,最後拼接父類欄目 返回
/**
 * 返回org html
 * @return string
 */
public static  function getOrgMenu(){
    $is_org_user=Yii::$app->session->get('org')->is_org_user;
    $org_access='';
    if (!$is_org_user){
    $org_access=explode(',',OrgRelation::findOne(['user_name'
=>Yii::$app->user->identity->username])->value); } $html=''; $action = LuLu::getApp()->requestedAction->uniqueId; $org_menu=self::find()->select('id,name')->where(['parent_id'=>'0','category_id'=>'org'])->orderBy('sort_num asc')->asArray()->all(); foreach
($org_menu as $v){ $child=self::createOrghtml($v,$org_access,$is_org_user); if ($child!=''){ $html .="<li class='resource-manager'>$v[name]</li>".$child; } } return $html; } /** * 根據父類的id 生成子欄目 * @param $parent * @param $org_access * @param
bool $org_user * @return string */
private static function createOrghtml($parent, $org_access, $org_user=true){ $child=self::find()->select('id,url,name')->where("parent_id=$parent[id]")->asArray()->all(); $html=''; // var_dump($child,$org_access); foreach ($child as $menu){ if ($org_user){ $html .= '<li id="menu-item-'.$menu['id'].'" class=" menu-item-'.$menu['id'].'"><a href="/admin.php?r='.ltrim($menu['url'],'/').'" target="mainFrame">'.$menu['name'].'</a>'; $html.='</li>'; }else { $action=explode('_',ltrim(strrchr($menu['url'],'/'),'/'))[0]; if(in_array($action,$org_access)){ $html .= '<li id="menu-item-'.$menu['id'].'" class=" menu-item-'.$menu['id'].'"><a href="/admin.php?r='.ltrim($menu['url'],'/').'" target="mainFrame">&nbsp;&nbsp;'.$menu['name'].'</a>'; $html.='</li>'; }elseif ($action=='cache'){ $html .= '<li id="menu-item-'.$menu['id'].'" class=" menu-item-'.$menu['id'].'"><a href="/admin.php?r='.ltrim($menu['url'],'/').'" target="mainFrame">&nbsp;&nbsp;'.$menu['name'].'</a>'; $html.='</li>'; } } } return $html; }

相關推薦

php後臺管理,結合許可權,動態生成欄目列表

思路:獲取許可權,生成父類欄目,在判斷子欄目是不是在許可權中,在的話,就拼接成html,返回,最後拼接父類欄目 返回 /** * 返回org html * @return string */ public static function getOrgMe

Django 許可權管理-後臺根據使用者許可權動態生成選單

Django許可權管理 實現目標: 1、管理使用者,新增角色,使用者關聯角色 2、新增許可權、角色關聯許可權 3、新增動作、許可權關聯動作 4、新增選單、許可權關聯選單 實現動態生成使用者許可權選單(可設定多級選單巢狀)、根據前臺URL自動選中選單並摺疊其餘選單 最終實現類似這樣的效果: 選單一   選

el-table多表頭-動態列-在後臺管理系統許可權分配中的實現

原介面bootstrap+jQuery實現 新介面vue+element 利用element的表格實現,目前程式碼展示沒有原來的PHP直接呈現的時候快,原因應該是頁面一次性展示元素太多造成的 待優化 程式碼 <!--有部門許可權--------------

後臺管理系統 – 許可權管理

最近在重新整理搜書吧(一個做圖書比價的平臺)的系統架構,目前圖書產品數量超過了200萬條。各種資料加起來超過40G了,使用Mysql資料庫儲存伺服器吃不消,於是考慮使用HBase儲存大部分資料。   一、摘要 以前搜書吧的資料量比較小,使用資料庫+靜態檔案儲存的方式就可以搞

vue後臺管理系統許可權控制思考與實踐

前言 最近在開發管理系統時遇到了任何管理系統都會有的需求---許可權控制,之前也遇到過這種需求,但是架構不完善導致的各種問題使得後期維護非常麻煩,這一次的方案解決了之前的種種問題,現做一次記錄,當然這個架構後期可能會有坑,不過得一步一步的嘗試才能發現並解決問題。 許可權控制需求 因為是單頁面應用,路由交

PHP對接新浪API動態生成短連結

新浪提供了長連結轉為短連結的API,可以把長連結轉為 t.cn/xxx 這種格式的短連結。  新浪開放平臺對應API文件:https://open.weibo.com/wiki/Short_url/shorten#short_url.2Fshorten API:  ht

Java泛型,結合JSONObject動態生成指定的物件

private <T> T getTargetClass(String resultString, T t) { System.out.println(resultString); JSONObject result = JSONObject.from

DEDECMS後臺頻道管理員許可權三級子欄目許可權新增分配問題解決

昨天在增加了一個“頻道管理員”,並賦予許可權欄目之後,登陸後臺卻只能看到一級和二級目錄,無法看到三級目錄。查詢原因後發現確實是dede的一個小缺陷。導致產生這個缺陷的原因是dede的後臺設定賦予“頻道管理員”欄目時,dede並沒有將子欄目的管理許可權順延給父欄目。就像是你找了一個帶孩子的老婆, 而新老婆的孩子

vue後臺管理系統許可權管理解決方案

1,後臺返回許可權路由表。2,前端渲染側邊欄時候根據後臺返回的路由表進行邏輯判斷渲染3,在router的生命週期中判斷token的過期時間4,  在router的生命週期中判斷to.path 是否存在於許可權路由表。有則next 沒有的話跳到無許可權頁面

vue-element-admin實戰 | 第二篇: 最小改動接入後臺實現根據許可權動態載入選單

# **一. 前言** 本篇基於 [有來商城 youlai-mall ](https://github.com/hxrui/youlai-mall)微服務專案,通過對vue-element-admin的許可權選單模組理解個性定製其後臺介面,實現對vue-element-admin工程幾乎不做改動的情況下,無

jquery 動態生成html5列表項以及header,footer的固定,居中排列

在開發跨平臺移動應用中,由於資料動態更新,所以列表項需要動態生成,查了很多資料,以下方法親測可用 html5程式碼 <div data-role="page" id="index" >

tp3.2.3許可權控制二之後臺管理部分,及選單欄目顯示問題

      上篇記錄了一下許可權控制部分的實現過程,以及實現的程式碼。但那些只是實現了簡單的許可權控制,具體的後臺當然要有使用者的管理,使用者組的管理,規則管理等。這篇主要是寫後臺部分,和上篇湊成一個完整的環。 一、使用者管理,以及許可權管理部分 1、管

drf結合sql server搭建後臺管理系統

-i editor forms 後臺管理系統 虛擬 span export xadmin 配置 1. 安裝Python3.6 添加到WORKON_HOME系統變量 2.pip install virtualenvwrapper 3.mkvirtualenv project1

Swagger結合mustache模板生成後臺接口代碼、以及前後臺建模代碼

erl null enum div tco enc property 取模 javax 之前項目中使用的的thrift來建模,維護前後臺模型以及rest接口,前臺使用的是angular2; 但是使用thrift只能生成建模,後臺的rest接口的Controller文件還是

換個思維,boot結合vue做後臺管理

可以新增,可以刪除。動態的新增資料。 不用操作dom,只要操作json資料即可。 <form class="form-horizontal addForm" id="edit_form" @submit="checkForm" method="post

C# winform 後臺控制刪除動態生成的控制元件

RadioButton是由資料庫列表資料讀出來,放到panelEx2上的,現在區域性重新整理,需要刪除這些RadioButton,重新新增。   List<Control> removeList = new List<Control>(); for (int i = 0;

liquibase管理資料庫與tk.mybatis、mybatis-generator結合使用快速生成程式碼

專案架構介紹 專案使用的是springboot框架,MySql資料庫,liquibase資料庫版本管理工具,tk.mybatis統一管理增刪改查,mybatis-generator生成dao層/po層/mapper.xml檔案,jhipster生成controller及service

C#——後臺管理端多級選單的生成方式

現在大多的應用程式(後端)都有選單,不管是在左側還是上面,介面基本都是基於現有的UI框架或者網上找的單獨的選單的外掛。而實現的方式,大部分都是使用的AJAX形式來完成。前段時間,在總結一些過往的專案時,發現了一些不同的實現的方式,這裡想總結一下。所以也就有了這篇文章~~ 我建立的測試Demo

Query和PHP結合實現動態進度條上傳顯示

第一步:修改在php5下POST檔案大小的限制 1.編修php.ini 找到:max_execution_time = 30 ,這個是每個指令碼執行的最長時間,單位秒,改為:max_execution_time = 150 找到:max_input_time = 60,這是每個指令碼可以消耗的時間,單位

Csrf利用管理員許可權建立後臺管理賬戶

[實驗原理] 通過普通使用者的儲存型XSS實現建立管理員賬戶的CSRF利用 一、測試漏洞 開啟網站:http://192.168.1.3:8007(安徽二手網) 註冊一個使用者並登入 新增二手資訊 在物品簡介處填寫:<script>alert(123)</s