瀏覽代碼

固定会议、访问限制

q 1 年之前
父節點
當前提交
c508761fba

+ 34 - 0
include/rockFun.php

@@ -292,4 +292,38 @@ function lang($str,$lx='')
 	$nstr 	= arrvalue($data[$str], $xuhao);
 	if(!$nstr)$nstr = $str;
 	return $nstr;
+}
+
+
+/**
+ *	判断内网,检查 IP 是否是内网地址
+ */
+function isPrivateIP($ip) {
+    $private_ranges = [
+        ['10.0.0.0', '10.255.255.255'],
+        ['172.16.0.0', '172.31.255.255'],
+        ['192.168.0.0', '192.168.255.255']
+    ];
+
+    // 检查 127.0.0.1 和 ::1
+    if ($ip === '127.0.0.1' || $ip === '::1') {
+        return true;
+    }
+
+    // 检查是否在私有 IP 范围内
+    $ipLong = ip2long($ip);
+    if ($ipLong === false) {
+        return false;
+    }
+
+    foreach ($private_ranges as $range) {
+        $min = ip2long($range[0]);
+        $max = ip2long($range[1]);
+
+        if ($ipLong >= $min && $ipLong <= $max) {
+            return true;
+        }
+    }
+
+    return false;
 }

+ 9 - 3
index.php

@@ -29,9 +29,15 @@ if($_uurl != ''){
 	$a			= $rock->jm->gettoken('a', 'default');
 }
 
-// 只允许内网登录后台、APP登录使用
-$domain = $_SERVER['HTTP_HOST'];
-if (!$rock->ismobile() && $domain != 'n.zq.oa.nxjiewei.com:8011' && $domain != 'oa.test') return;
+// 禁止外网访问
+$ip = $rock->ip;
+if (!($rock->ismobile() || isPrivateIP($ip))) {
+    http_response_code(404);
+    exit();
+} else if (($rock->ismobile() && !isset($_GET['d']) && $_GET['d'] !== 'we') && (!isPrivateIP($ip) && basename($_SERVER['SCRIPT_NAME']) != 'api.php')) {
+    http_response_code(404);
+    exit();
+}
 
 $ajaxbool	= $rock->jm->gettoken('ajaxbool', 'false');
 $mode		= $rock->get('m', $m);

+ 3 - 1
webmain/flow/page/input_meeting.html

@@ -28,7 +28,9 @@
     </tr>
     <tr>
         <td height="34" align="right" class="ys1">*^meet_dev^</td>
-        <td colspan="5" class="ys2">{meet_dev}</td>
+        <td colspan="3" class="ys2">{meet_dev}</td>
+        <td height="34" width="10%" align="right" class="ys1">^fixed^</td>
+        <td width="20%" class="ys2">{fixed}</td>
     </tr>
     <tr>
         <td height="34" align="right" class="ys1">^remark^</td>

+ 19 - 0
webmain/model/flow/meetingModel.php

@@ -399,4 +399,23 @@ class flow_meetingClassModel extends flowModel
         }
     }
 
+
+    // 固定会议,每日改变会议日期
+    public function fixedMeetings($mid='') {
+        $meets = $this->getall('fixed=1');
+        for ($i = 0; $i < count($meets); $i++) {
+            $meet = $meets[$i];
+            $id = $meet['id'];
+            $st = $meet['start_time'];
+            $et = $meet['end_time'];
+            $st = date("Y-m-d").' '.substr($st, 11);
+            $et = date("Y-m-d").' '.substr($et, 11);
+            m('meeting')->update([
+                'start_time'=>$st,
+                'end_time'=>$et,
+                'meet_state' => 0
+            ], "id={$id}");
+        }
+    }
+
 }

+ 0 - 13
webmain/model/flow/meeting_keyModel.php

@@ -299,18 +299,5 @@ class flow_meeting_keyClassModel extends flowModel
         }
     }
 
-    // 固定会议
-    public function fixedMeetings($mid='') {
-        $meets = $this->getall('sort = 5');
-        for ($i = 0; $i < count($meets); $i++) {
-            $meet = $meets[$i];
-            $id = $meet['id'];
-            $st = $meet['start_time'];
-            m('meeting_key')->update([
-                'start_time'=>date("Y-m-d"),
-                'meet_state'=>0
-            ], "id={$id}");
-        }
-    }
 
 }

+ 2 - 1
webmain/task/runt/dayAction.php

@@ -39,7 +39,8 @@ class dayClassAction extends runtAction
 		if($this->moderock('carms'))m('flow')->initflow('carms')->todocarms('');
 
         //固定会议
-        if($this->moderock('meeting_key'))m('flow')->initflow('meeting_key')->fixedMeetings('');
+//        if($this->moderock('meeting_key'))m('flow')->initflow('meeting_key')->fixedMeetings('');
+        if($this->moderock('meeting'))m('flow')->initflow('meeting')->fixedMeetings('');
 	}