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"> '.$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"> '.$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