瀏覽代碼

1、添加用户角色权限功能

liyuezong 2 年之前
父節點
當前提交
7f12afa5ab
共有 5 個文件被更改,包括 258 次插入 和 50 次删除
  1. 1 1
      pro/src/app.c
  2. 20 1
      pro/src/appweb_handle.c
  3. 151 0
      pro/src/common.c
  4. 50 1
      pro/src/common.h
  5. 36 47
      pro/src/json_handle.c

+ 1 - 1
pro/src/app.c

@@ -1621,7 +1621,7 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
                                     _globalTACManager->product_ph_id = nTac_chn;
                                     _globalTACManager->product_ph_type = indexT;
                                     _globalTACManager->product_ph_outputType = 2; // 1三相2单相
-                                    if (nTac_chn == 0)
+                                    if (indexT == 0)
                                     {
                                         _globalTACManager->product_ph_outputStatus = 1; // 1输出2不输出
                                     }

+ 20 - 1
pro/src/appweb_handle.c

@@ -411,8 +411,27 @@ static void getUserRouters(void* conn)
     rx_Head_buf = (char*)msg->head.buf;
 #endif
 
+    // 查询用户信息
+    UserInfo User_list;
+    INIT_LIST_HEAD(&User_list.list);
+    // 查询角色信息
+    RoleInfo Role_list;
+    INIT_LIST_HEAD(&Role_list.list);
+
     g_token = json_to_Token_info(rx_Head_buf);
     // 根据token获取用户及用户权限
+    int nRoleID=3;
+    if (0 == dev_get_user_info(__globalDeviceManage.db, &User_list) )
+    {
+        char *nName = getUserNamebyToken(g_token);
+        if (nName != NULL)
+        {
+               nRoleID = GetRoleIDByUserName(nName,&User_list);
+        }
+    }
+    SetMenuAuthority(nRoleID);
+
+
     ack_str = user_routers_info_to_json();
     http_reply(conn, 200, ack_str);
 
@@ -2437,7 +2456,7 @@ static void communicationManagement(void *conn)
             dev_update_device_modus_info(__globalDeviceManage.db,devInfo);
         }
         char buff[256];
-        if (info->product_modbus_type)
+        if (!info->product_modbus_type)
         {
             sprintf(buff, "$%s$|$%s$|BD:%d", language_RS485_install[0],language_alarm_RS485_master[0],info->product_modbus_baud);
         }

+ 151 - 0
pro/src/common.c

@@ -476,3 +476,154 @@ void add_day_to_date(char *date_str, int *year, int *month, int *day) {
     }  
     sprintf(date_str, "%04d-%02d-%02d", *year, *month, *day);  
 }  
+void SetMenuAuthority(int RoleID)
+{
+    //超级管理员
+    if (RoleID == 1)
+    {
+        _GlobalMenuAuthority.PowerEnabled = true;
+        _GlobalMenuAuthority.SensorEnabled = true;
+        _GlobalMenuAuthority.AlarmEnabled = true;
+        _GlobalMenuAuthority.LogEnabled = true;
+        _GlobalMenuAuthority.UserInfoEnabled = true;
+        _GlobalMenuAuthority.CommEnabled = true;
+        _GlobalMenuAuthority.ServiceEnabled = true;
+        _GlobalMenuAuthority.MaintenanceEnabled = true;
+
+        // 1、电源监控菜单
+        _GlobalMenuAuthority.MonitorallEnabled = true;
+        _GlobalMenuAuthority.ChannelstatusEnabled = true;
+        _GlobalMenuAuthority.SwitchtatusEnabled = false;
+        _GlobalMenuAuthority.MonitorhistoryEnabled = true;
+        // 2、传感器管理菜单
+        _GlobalMenuAuthority.SensorStatusEnabled = true;
+        _GlobalMenuAuthority.SensorHistorylEnabled = true;
+        // 3、告警管理菜单
+        _GlobalMenuAuthority.XtjgEnabled = true;
+        _GlobalMenuAuthority.YzszEnabled = true;
+        // 4、日志信息菜单
+        _GlobalMenuAuthority.CzrzEnabled = true;
+        _GlobalMenuAuthority.YxrzEnabled = true;
+        // 5、用户管理菜单
+        _GlobalMenuAuthority.UserEnabled = true;
+        _GlobalMenuAuthority.RoleEnabled = false;
+        _GlobalMenuAuthority.MenuEnabled = false;
+        // 6、通信管理菜单
+        _GlobalMenuAuthority.WkszEnabled = true;
+        _GlobalMenuAuthority.RsszEnabled = true;
+        // 7、服务管理菜单
+        _GlobalMenuAuthority.SmtpszEnabled = true;
+        _GlobalMenuAuthority.SnmpszEnabled = true;
+        _GlobalMenuAuthority.MqszEnabled = true;
+        _GlobalMenuAuthority.NtpszEnabled = true;
+        _GlobalMenuAuthority.DsszEnabled = true;
+        _GlobalMenuAuthority.SxszEnabled = true;
+        _GlobalMenuAuthority.FzszEnabled = true;
+        // 8、设备维护菜单
+        _GlobalMenuAuthority.SbcqEnabled = true;
+        _GlobalMenuAuthority.GjsjEnabled = true;
+        _GlobalMenuAuthority.HhccszEnabled = true;
+        _GlobalMenuAuthority.PzdrdcEnabled = true;
+        _GlobalMenuAuthority.ShfwEnabled = true;
+        _GlobalMenuAuthority.GysbEnabled = true;
+    }
+    // 管理员
+    else if (RoleID == 2)
+    {
+        _GlobalMenuAuthority.PowerEnabled = true;
+        _GlobalMenuAuthority.SensorEnabled = true;
+        _GlobalMenuAuthority.AlarmEnabled = true;
+        _GlobalMenuAuthority.LogEnabled = true;
+        _GlobalMenuAuthority.UserInfoEnabled = true;
+        _GlobalMenuAuthority.CommEnabled = true;
+        _GlobalMenuAuthority.ServiceEnabled = true;
+        _GlobalMenuAuthority.MaintenanceEnabled = true;
+
+        // 1、电源监控菜单
+        _GlobalMenuAuthority.MonitorallEnabled = true;
+        _GlobalMenuAuthority.ChannelstatusEnabled = true;
+        _GlobalMenuAuthority.SwitchtatusEnabled = false;
+        _GlobalMenuAuthority.MonitorhistoryEnabled = true;
+        // 2、传感器管理菜单
+        _GlobalMenuAuthority.SensorStatusEnabled = true;
+        _GlobalMenuAuthority.SensorHistorylEnabled = true;
+        // 3、告警管理菜单
+        _GlobalMenuAuthority.XtjgEnabled = true;
+        _GlobalMenuAuthority.YzszEnabled = true;
+        // 4、日志信息菜单
+        _GlobalMenuAuthority.CzrzEnabled = false;
+        _GlobalMenuAuthority.YxrzEnabled = true;
+        // 5、用户管理菜单
+        _GlobalMenuAuthority.UserEnabled = true;
+        _GlobalMenuAuthority.RoleEnabled = false;
+        _GlobalMenuAuthority.MenuEnabled = false;
+        // 6、通信管理菜单
+        _GlobalMenuAuthority.WkszEnabled = false;
+        _GlobalMenuAuthority.RsszEnabled = true;
+        // 7、服务管理菜单
+        _GlobalMenuAuthority.SmtpszEnabled = false;
+        _GlobalMenuAuthority.SnmpszEnabled = false;
+        _GlobalMenuAuthority.MqszEnabled = false;
+        _GlobalMenuAuthority.NtpszEnabled = true;
+        _GlobalMenuAuthority.DsszEnabled = true;
+        _GlobalMenuAuthority.SxszEnabled = true;
+        _GlobalMenuAuthority.FzszEnabled = true;
+        // 8、设备维护菜单
+        _GlobalMenuAuthority.SbcqEnabled = true;
+        _GlobalMenuAuthority.GjsjEnabled = true;
+        _GlobalMenuAuthority.HhccszEnabled = false;
+        _GlobalMenuAuthority.PzdrdcEnabled = true;
+        _GlobalMenuAuthority.ShfwEnabled = false;
+        _GlobalMenuAuthority.GysbEnabled = true;
+    }
+    //普通用户
+    else
+    {
+        _GlobalMenuAuthority.PowerEnabled = true;
+        _GlobalMenuAuthority.SensorEnabled = true;
+        _GlobalMenuAuthority.AlarmEnabled = false;
+        _GlobalMenuAuthority.LogEnabled = false;
+        _GlobalMenuAuthority.UserInfoEnabled = false;
+        _GlobalMenuAuthority.CommEnabled = false;
+        _GlobalMenuAuthority.ServiceEnabled = false;
+        _GlobalMenuAuthority.MaintenanceEnabled = false;
+
+        // 1、电源监控菜单
+        _GlobalMenuAuthority.MonitorallEnabled = true;
+        _GlobalMenuAuthority.ChannelstatusEnabled = true;
+        _GlobalMenuAuthority.SwitchtatusEnabled = false;
+        _GlobalMenuAuthority.MonitorhistoryEnabled = false;
+        // 2、传感器管理菜单
+        _GlobalMenuAuthority.SensorStatusEnabled = true;
+        _GlobalMenuAuthority.SensorHistorylEnabled = false;
+        // 3、告警管理菜单
+        _GlobalMenuAuthority.XtjgEnabled = false;
+        _GlobalMenuAuthority.YzszEnabled = false;
+        // 4、日志信息菜单
+        _GlobalMenuAuthority.CzrzEnabled = false;
+        _GlobalMenuAuthority.YxrzEnabled = false;
+        // 5、用户管理菜单
+        _GlobalMenuAuthority.UserEnabled = false;
+        _GlobalMenuAuthority.RoleEnabled = false;
+        _GlobalMenuAuthority.MenuEnabled = false;
+        // 6、通信管理菜单
+        _GlobalMenuAuthority.WkszEnabled = false;
+        _GlobalMenuAuthority.RsszEnabled = false;
+        // 7、服务管理菜单
+        _GlobalMenuAuthority.SmtpszEnabled = false;
+        _GlobalMenuAuthority.SnmpszEnabled = false;
+        _GlobalMenuAuthority.MqszEnabled = false;
+        _GlobalMenuAuthority.NtpszEnabled = false;
+        _GlobalMenuAuthority.DsszEnabled = false;
+        _GlobalMenuAuthority.SxszEnabled = false;
+        _GlobalMenuAuthority.FzszEnabled = false;
+        // 8、设备维护菜单
+        _GlobalMenuAuthority.SbcqEnabled = false;
+        _GlobalMenuAuthority.GjsjEnabled = false;
+        _GlobalMenuAuthority.HhccszEnabled = false;
+        _GlobalMenuAuthority.PzdrdcEnabled = false;
+        _GlobalMenuAuthority.ShfwEnabled = false;
+        _GlobalMenuAuthority.GysbEnabled = false;
+    }
+    
+}

+ 50 - 1
pro/src/common.h

@@ -605,6 +605,53 @@ typedef struct
 
 }RoleInfo;
 
+typedef struct MenuAuthority{
+    bool PowerEnabled;
+    bool SensorEnabled;
+    bool AlarmEnabled;
+    bool LogEnabled;
+    bool UserInfoEnabled;
+    bool CommEnabled;
+    bool ServiceEnabled;
+    bool MaintenanceEnabled;
+
+    //1、电源监控菜单
+    bool MonitorallEnabled;
+    bool ChannelstatusEnabled;
+    bool SwitchtatusEnabled;
+    bool MonitorhistoryEnabled;
+    //2、传感器管理菜单
+    bool SensorStatusEnabled;
+    bool SensorHistorylEnabled;
+    //3、告警管理菜单
+    bool XtjgEnabled;
+    bool YzszEnabled;
+    //4、日志信息菜单
+    bool CzrzEnabled;
+    bool YxrzEnabled;
+    //5、用户管理菜单
+    bool UserEnabled;
+    bool RoleEnabled;
+    bool MenuEnabled;
+    //6、通信管理菜单
+    bool WkszEnabled;
+    bool RsszEnabled;
+    //7、服务管理菜单
+    bool SmtpszEnabled;
+    bool SnmpszEnabled;
+    bool MqszEnabled;
+    bool NtpszEnabled;
+    bool DsszEnabled;
+    bool SxszEnabled;
+    bool FzszEnabled;
+     //8、设备维护菜单
+    bool SbcqEnabled;
+    bool GjsjEnabled;
+    bool HhccszEnabled;
+    bool PzdrdcEnabled;
+    bool ShfwEnabled;
+    bool GysbEnabled;
+}MenuAuthority;
 
 
 typedef struct CascadeDevices{
@@ -801,7 +848,7 @@ unsigned long __globalSxIdx;
 _User_Log _GlobalUserLoginInfo;//全局用户登录信息
 UserInfo _GlobalUserInfoNew;////最近登录的信息
 char _GlobalUserToken[64];////最近登录的信息
-
+MenuAuthority _GlobalMenuAuthority;////角色菜单权限
 
 void initLogger(void);
 
@@ -833,4 +880,6 @@ void add_day_to_date(char *date_str, int *year, int *month, int *day);
 
 pthread_mutex_t Httplock; 
 
+void SetMenuAuthority(int RoleID);
+
 #endif

+ 36 - 47
pro/src/json_handle.c

@@ -187,17 +187,6 @@ char* user_routers_info_to_json(void)
     //data区
     cJSON* data_array = cJSON_CreateArray();
 
-    bool MenuCut = false;
-
-    if (__globalDeviceManage._global_device_info!=NULL)
-    {
-        //暂定是IP表头裁剪web端
-        if (2 == __globalDeviceManage._global_device_info->product_type)
-        {
-           MenuCut = true;
-        }
-    }
-
      //第一块 电源监控
     cJSON* data1_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(data1_filed,"name","Power");
@@ -226,7 +215,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children1_meta1_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children1_meta1_data1_filed,"link","");    
     cJSON_AddItemToObject(children1_data1_filed, "meta", children1_meta1_data1_filed);
-    cJSON_AddItemToObject(children1_data_array, "children", children1_data1_filed);
+    if( _GlobalMenuAuthority.MonitorallEnabled)cJSON_AddItemToObject(children1_data_array, "children", children1_data1_filed);
     cJSON* children1_data2_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children1_data2_filed,"name","Channelstatus");    
     cJSON_AddStringToObject(children1_data2_filed,"path","channelstatus");  
@@ -238,7 +227,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children1_meta1_data2_filed,"noCache",false); 
     cJSON_AddStringToObject(children1_meta1_data2_filed,"link","");    
     cJSON_AddItemToObject(children1_data2_filed, "meta", children1_meta1_data2_filed);
-    cJSON_AddItemToObject(children1_data_array, "children", children1_data2_filed);
+   if(_GlobalMenuAuthority.ChannelstatusEnabled ) cJSON_AddItemToObject(children1_data_array, "children", children1_data2_filed);
 
     cJSON* children1_data2_1_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children1_data2_1_filed,"name","Switchtatus");    
@@ -251,7 +240,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children1_meta1_data2_1_filed,"noCache",false); 
     cJSON_AddStringToObject(children1_meta1_data2_1_filed,"link","");    
     cJSON_AddItemToObject(children1_data2_1_filed, "meta", children1_meta1_data2_1_filed);
-   // if(!MenuCut)cJSON_AddItemToObject(children1_data_array, "children", children1_data2_1_filed);
+   if( _GlobalMenuAuthority.SwitchtatusEnabled)cJSON_AddItemToObject(children1_data_array, "children", children1_data2_1_filed);
 
     cJSON* children1_data3_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children1_data3_filed,"name","Monitorhistory");    
@@ -264,9 +253,9 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children1_meta1_data3_filed,"noCache",false); 
     cJSON_AddStringToObject(children1_meta1_data3_filed,"link","");    
     cJSON_AddItemToObject(children1_data3_filed, "meta", children1_meta1_data3_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children1_data_array, "children", children1_data3_filed);
+    if(_GlobalMenuAuthority.MonitorhistoryEnabled)cJSON_AddItemToObject(children1_data_array, "children", children1_data3_filed);
     cJSON_AddItemToObject(data1_filed, "children", children1_data_array);
-    cJSON_AddItemToObject(data_array, "data", data1_filed);
+    if ( _GlobalMenuAuthority.PowerEnabled) cJSON_AddItemToObject(data_array, "data", data1_filed);
 
     //第二块 传感器监控
     cJSON* data2_filed = cJSON_CreateObject(); 
@@ -295,7 +284,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children2_meta1_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children2_meta1_data1_filed,"link","");    
     cJSON_AddItemToObject(children2_data1_filed, "meta", children2_meta1_data1_filed);
-    cJSON_AddItemToObject(children2_data_array, "children", children2_data1_filed);
+    if(_GlobalMenuAuthority.SensorStatusEnabled)cJSON_AddItemToObject(children2_data_array, "children", children2_data1_filed);
     cJSON* children2_data2_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children2_data2_filed,"name","SensorHistory");    
     cJSON_AddStringToObject(children2_data2_filed,"path","sensorHistory");  
@@ -307,9 +296,9 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children2_meta2_data2_filed,"noCache",false); 
     cJSON_AddStringToObject(children2_meta2_data2_filed,"link","");    
     cJSON_AddItemToObject(children2_data2_filed, "meta", children2_meta2_data2_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children2_data_array, "children", children2_data2_filed);
+    if(_GlobalMenuAuthority.SensorHistorylEnabled)cJSON_AddItemToObject(children2_data_array, "children", children2_data2_filed);
     cJSON_AddItemToObject(data2_filed, "children", children2_data_array);
-    cJSON_AddItemToObject(data_array, "data", data2_filed);
+    if(_GlobalMenuAuthority.SensorEnabled)cJSON_AddItemToObject(data_array, "data", data2_filed);
 
     //第三块 告警保护
     cJSON* data3_filed = cJSON_CreateObject(); 
@@ -338,7 +327,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children3_meta1_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children3_meta1_data1_filed,"link","");    
     cJSON_AddItemToObject(children3_data1_filed, "meta", children3_meta1_data1_filed);
-    cJSON_AddItemToObject(children3_data_array, "children", children3_data1_filed);
+    if(_GlobalMenuAuthority.XtjgEnabled)cJSON_AddItemToObject(children3_data_array, "children", children3_data1_filed);
     cJSON* children3_data2_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children3_data2_filed,"name","Fzsz");    
     cJSON_AddStringToObject(children3_data2_filed,"path","fzsz");  
@@ -350,9 +339,9 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children3_meta2_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children3_meta2_data1_filed,"link","");    
     cJSON_AddItemToObject(children3_data2_filed, "meta", children3_meta2_data1_filed);
-    cJSON_AddItemToObject(children3_data_array, "children", children3_data2_filed); 
+    if(_GlobalMenuAuthority.YzszEnabled)cJSON_AddItemToObject(children3_data_array, "children", children3_data2_filed); 
     cJSON_AddItemToObject(data3_filed, "children", children3_data_array);
-    cJSON_AddItemToObject(data_array, "data", data3_filed);
+    if(_GlobalMenuAuthority.AlarmEnabled)cJSON_AddItemToObject(data_array, "data", data3_filed);
 
 
     //第四块 日志信息
@@ -394,7 +383,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children4_meta2_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children4_meta2_data1_filed,"link","");    
     cJSON_AddItemToObject(children4_data2_filed, "meta", children4_meta2_data1_filed);
-    cJSON_AddItemToObject(children4_data_array, "children", children4_data2_filed);
+   if( _GlobalMenuAuthority.CzrzEnabled) cJSON_AddItemToObject(children4_data_array, "children", children4_data2_filed);
     cJSON* children4_data3_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children4_data3_filed,"name","Yxrz");    
     cJSON_AddStringToObject(children4_data3_filed,"path","yxrz");  
@@ -406,9 +395,9 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children4_meta3_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children4_meta3_data1_filed,"link","");    
     cJSON_AddItemToObject(children4_data3_filed, "meta", children4_meta3_data1_filed);
-    cJSON_AddItemToObject(children4_data_array, "children", children4_data3_filed);   
+    if(_GlobalMenuAuthority.YxrzEnabled)cJSON_AddItemToObject(children4_data_array, "children", children4_data3_filed);   
     cJSON_AddItemToObject(data4_filed, "children", children4_data_array);
-    cJSON_AddItemToObject(data_array, "data", data4_filed);
+    if(_GlobalMenuAuthority.LogEnabled)cJSON_AddItemToObject(data_array, "data", data4_filed);
 
  //第五块 用户管理
     cJSON* data_filed = cJSON_CreateObject(); 
@@ -438,7 +427,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children_meta_data_filed,"noCache",false); 
     cJSON_AddStringToObject(children_meta_data_filed,"link","");    
     cJSON_AddItemToObject(children_data_filed, "meta", children_meta_data_filed);
-    cJSON_AddItemToObject(children_data_array, "meta", children_data_filed);
+    if(_GlobalMenuAuthority.UserEnabled)cJSON_AddItemToObject(children_data_array, "meta", children_data_filed);
     cJSON* children1_data_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children1_data_filed,"name","Role");    
     cJSON_AddStringToObject(children1_data_filed,"path","role");  
@@ -450,7 +439,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children_meta1_data_filed,"noCache",false); 
     cJSON_AddStringToObject(children_meta1_data_filed,"link","");    
     cJSON_AddItemToObject(children1_data_filed, "meta", children_meta1_data_filed);
-    //if(!MenuCut)cJSON_AddItemToObject(children_data_array, "meta", children1_data_filed);
+    if(_GlobalMenuAuthority.RoleEnabled)cJSON_AddItemToObject(children_data_array, "meta", children1_data_filed);
     cJSON* children2_data_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children2_data_filed,"name","Menu");    
     cJSON_AddStringToObject(children2_data_filed,"path","menu");  
@@ -462,9 +451,9 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children_meta2_data_filed,"noCache",false); 
     cJSON_AddStringToObject(children_meta2_data_filed,"link","");    
     cJSON_AddItemToObject(children2_data_filed, "meta", children_meta2_data_filed);
-    //if(!MenuCut)cJSON_AddItemToObject(children_data_array, "meta", children2_data_filed);
+    if(_GlobalMenuAuthority.MenuEnabled)cJSON_AddItemToObject(children_data_array, "meta", children2_data_filed);
     cJSON_AddItemToObject(data_filed, "children", children_data_array);  
-    cJSON_AddItemToObject(data_array, "data", data_filed);
+    if(_GlobalMenuAuthority.UserInfoEnabled)cJSON_AddItemToObject(data_array, "data", data_filed);
 
     //第六块 通信管理
     cJSON* data5_filed = cJSON_CreateObject(); 
@@ -493,7 +482,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children5_meta1_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children5_meta1_data1_filed,"link","");    
     cJSON_AddItemToObject(children5_data1_filed, "meta", children5_meta1_data1_filed);
-    cJSON_AddItemToObject(children5_data_array, "children", children5_data1_filed);
+   if( _GlobalMenuAuthority.WkszEnabled) cJSON_AddItemToObject(children5_data_array, "children", children5_data1_filed);
     cJSON* children5_data2_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children5_data2_filed,"name","Rssz");    
     cJSON_AddStringToObject(children5_data2_filed,"path","rssz");  
@@ -505,9 +494,9 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children5_meta2_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children5_meta2_data1_filed,"link","");    
     cJSON_AddItemToObject(children5_data2_filed, "meta", children5_meta2_data1_filed);
-    cJSON_AddItemToObject(children5_data_array, "children", children5_data2_filed);
+    if(_GlobalMenuAuthority.RsszEnabled)cJSON_AddItemToObject(children5_data_array, "children", children5_data2_filed);
     cJSON_AddItemToObject(data5_filed, "children", children5_data_array);
-    cJSON_AddItemToObject(data_array, "data", data5_filed);
+    if(_GlobalMenuAuthority.CommEnabled)cJSON_AddItemToObject(data_array, "data", data5_filed);
 
     //第七块 服务管理
     cJSON* data6_filed = cJSON_CreateObject(); 
@@ -536,7 +525,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children6_meta1_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children6_meta1_data1_filed,"link","");    
     cJSON_AddItemToObject(children6_data1_filed, "meta", children6_meta1_data1_filed);
-    cJSON_AddItemToObject(children6_data_array, "children", children6_data1_filed);
+    if(_GlobalMenuAuthority.SmtpszEnabled)cJSON_AddItemToObject(children6_data_array, "children", children6_data1_filed);
     cJSON* children6_data2_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children6_data2_filed,"name","Snmpsz");    
     cJSON_AddStringToObject(children6_data2_filed,"path","snmpsz");  
@@ -548,7 +537,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children6_meta2_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children6_meta2_data1_filed,"link","");    
     cJSON_AddItemToObject(children6_data2_filed, "meta", children6_meta2_data1_filed);
-    cJSON_AddItemToObject(children6_data_array, "children", children6_data2_filed);
+    if( _GlobalMenuAuthority.SnmpszEnabled)cJSON_AddItemToObject(children6_data_array, "children", children6_data2_filed);
     //cJSON* children6_data3_filed = cJSON_CreateObject(); 
    // cJSON_AddStringToObject(children6_data3_filed,"name","Stsz");    
    // cJSON_AddStringToObject(children6_data3_filed,"path","stsz");  
@@ -572,7 +561,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children6_meta4_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children6_meta4_data1_filed,"link","");    
     cJSON_AddItemToObject(children6_data4_filed, "meta", children6_meta4_data1_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children6_data_array, "children", children6_data4_filed);
+    if(_GlobalMenuAuthority.MqszEnabled)cJSON_AddItemToObject(children6_data_array, "children", children6_data4_filed);
     cJSON* children6_data5_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children6_data5_filed,"name","Ntpsz");    
     cJSON_AddStringToObject(children6_data5_filed,"path","ntpsz");  
@@ -584,7 +573,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children6_meta5_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children6_meta5_data1_filed,"link","");    
     cJSON_AddItemToObject(children6_data5_filed, "meta", children6_meta5_data1_filed);
-    cJSON_AddItemToObject(children6_data_array, "children", children6_data5_filed);
+    if(_GlobalMenuAuthority.NtpszEnabled)cJSON_AddItemToObject(children6_data_array, "children", children6_data5_filed);
     cJSON* children6_data6_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children6_data6_filed,"name","Dssz");    
     cJSON_AddStringToObject(children6_data6_filed,"path","dssz");  
@@ -596,7 +585,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children6_meta6_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children6_meta6_data1_filed,"link","");    
     cJSON_AddItemToObject(children6_data6_filed, "meta", children6_meta6_data1_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children6_data_array, "children", children6_data6_filed);
+    if(_GlobalMenuAuthority.DsszEnabled)cJSON_AddItemToObject(children6_data_array, "children", children6_data6_filed);
     cJSON* children6_data7_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children6_data7_filed,"name","Sxsz");    
     cJSON_AddStringToObject(children6_data7_filed,"path","sxsz");  
@@ -608,7 +597,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children6_meta7_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children6_meta7_data1_filed,"link","");    
     cJSON_AddItemToObject(children6_data7_filed, "meta", children6_meta7_data1_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children6_data_array, "children", children6_data7_filed);
+    if(_GlobalMenuAuthority.SxszEnabled)cJSON_AddItemToObject(children6_data_array, "children", children6_data7_filed);
     cJSON* children6_data8_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children6_data8_filed,"name","Fzsz");    
     cJSON_AddStringToObject(children6_data8_filed,"path","fzsz");  
@@ -620,11 +609,11 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children6_meta8_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children6_meta8_data1_filed,"link","");    
     cJSON_AddItemToObject(children6_data8_filed, "meta", children6_meta8_data1_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children6_data_array, "children", children6_data8_filed);
+    if(_GlobalMenuAuthority.FzszEnabled)cJSON_AddItemToObject(children6_data_array, "children", children6_data8_filed);
 
 
     cJSON_AddItemToObject(data6_filed, "children", children6_data_array);
-    cJSON_AddItemToObject(data_array, "data", data6_filed);
+    if(_GlobalMenuAuthority.ServiceEnabled)cJSON_AddItemToObject(data_array, "data", data6_filed);
 
 
     //第八块 设备维护
@@ -654,7 +643,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children7_meta1_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children7_meta1_data1_filed,"link","");    
     cJSON_AddItemToObject(children7_data1_filed, "meta", children7_meta1_data1_filed);
-    cJSON_AddItemToObject(children7_data_array, "children", children7_data1_filed);
+    if(_GlobalMenuAuthority.SbcqEnabled)cJSON_AddItemToObject(children7_data_array, "children", children7_data1_filed);
     cJSON* children7_data2_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children7_data2_filed,"name","Gjsj");    
     cJSON_AddStringToObject(children7_data2_filed,"path","gjsj");  
@@ -666,7 +655,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children7_meta2_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children7_meta2_data1_filed,"link","");    
     cJSON_AddItemToObject(children7_data2_filed, "meta", children7_meta2_data1_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children7_data_array, "children", children7_data2_filed);
+    if(_GlobalMenuAuthority.GjsjEnabled)cJSON_AddItemToObject(children7_data_array, "children", children7_data2_filed);
     cJSON* children7_data3_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children7_data3_filed,"name","Hhccsz");    
     cJSON_AddStringToObject(children7_data3_filed,"path","hhccsz");  
@@ -678,7 +667,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children7_meta3_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children7_meta3_data1_filed,"link","");    
     cJSON_AddItemToObject(children7_data3_filed, "meta", children7_meta3_data1_filed);
-    cJSON_AddItemToObject(children7_data_array, "children", children7_data3_filed);
+    if(_GlobalMenuAuthority.HhccszEnabled)cJSON_AddItemToObject(children7_data_array, "children", children7_data3_filed);
     cJSON* children7_data4_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children7_data4_filed,"name","Pzdrdc");    
     cJSON_AddStringToObject(children7_data4_filed,"path","pzdrdc");  
@@ -690,7 +679,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children7_meta4_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children7_meta4_data1_filed,"link","");    
     cJSON_AddItemToObject(children7_data4_filed, "meta", children7_meta4_data1_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children7_data_array, "children", children7_data4_filed);
+    if(_GlobalMenuAuthority.PzdrdcEnabled)cJSON_AddItemToObject(children7_data_array, "children", children7_data4_filed);
     cJSON* children7_data5_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children7_data5_filed,"name","Shfw");    
     cJSON_AddStringToObject(children7_data5_filed,"path","shfw");  
@@ -702,7 +691,7 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children7_meta5_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children7_meta5_data1_filed,"link","");    
     cJSON_AddItemToObject(children7_data5_filed, "meta", children7_meta5_data1_filed);
-    if(!MenuCut)cJSON_AddItemToObject(children7_data_array, "children", children7_data5_filed);
+    if(_GlobalMenuAuthority.ShfwEnabled)cJSON_AddItemToObject(children7_data_array, "children", children7_data5_filed);
     cJSON* children7_data6_filed = cJSON_CreateObject(); 
     cJSON_AddStringToObject(children7_data6_filed,"name","Gysb");    
     cJSON_AddStringToObject(children7_data6_filed,"path","gysb");  
@@ -714,9 +703,9 @@ char* user_routers_info_to_json(void)
     cJSON_AddBoolToObject(children7_meta6_data1_filed,"noCache",false); 
     cJSON_AddStringToObject(children7_meta6_data1_filed,"link","");    
     cJSON_AddItemToObject(children7_data6_filed, "meta", children7_meta6_data1_filed);
-    cJSON_AddItemToObject(children7_data_array, "children", children7_data6_filed);
+    if(_GlobalMenuAuthority.GysbEnabled)cJSON_AddItemToObject(children7_data_array, "children", children7_data6_filed);
     cJSON_AddItemToObject(data7_filed, "children", children7_data_array);
-    cJSON_AddItemToObject(data_array, "data", data7_filed);
+    if(_GlobalMenuAuthority.MaintenanceEnabled)cJSON_AddItemToObject(data_array, "data", data7_filed);
 
     //主
     cJSON_AddItemToObject(root, "data", data_array);