Browse Source

Address Multi-User issue (#886)

* Allow mu_only node to obtain user info

* Update node.tpl to show mu info across all node group
Regend Soh 5 years ago
parent
commit
d8b4bd9f5f
2 changed files with 27 additions and 22 deletions
  1. 27 14
      app/Controllers/Mod_Mu/UserController.php
  2. 0 8
      resources/views/material/user/node.tpl

+ 27 - 14
app/Controllers/Mod_Mu/UserController.php

@@ -34,20 +34,8 @@ class UserController extends BaseController
         }
         $node->node_heartbeat = time();
         $node->save();
-
-        if ($node->node_group != 0) {
-            $users_raw = User::where(
-                static function ($query) use ($node) {
-                    $query->where(
-                        static function ($query1) use ($node) {
-                            $query1->where('class', '>=', $node->node_class)
-                                ->where('node_group', '=', $node->node_group);
-                        }
-                    )->orwhere('is_admin', 1);
-                }
-            )
-                ->where('enable', 1)->where('expire_in', '>', date('Y-m-d H:i:s'))->get();
-        } else {
+        
+        if ($node->mu_only != 0) {
             $users_raw = User::where(
                 static function ($query) use ($node) {
                     $query->where(
@@ -57,7 +45,32 @@ class UserController extends BaseController
                     )->orwhere('is_admin', 1);
                 }
             )->where('enable', 1)->where('expire_in', '>', date('Y-m-d H:i:s'))->get();
+        } else {
+            if ($node->node_group != 0) {
+                $users_raw = User::where(
+                    static function ($query) use ($node) {
+                        $query->where(
+                            static function ($query1) use ($node) {
+                                $query1->where('class', '>=', $node->node_class)
+                                    ->where('node_group', '=', $node->node_group);
+                            }
+                        )->orwhere('is_admin', 1);
+                    }
+                )
+                    ->where('enable', 1)->where('expire_in', '>', date('Y-m-d H:i:s'))->get();
+            } else {
+                $users_raw = User::where(
+                    static function ($query) use ($node) {
+                        $query->where(
+                            static function ($query1) use ($node) {
+                                $query1->where('class', '>=', $node->node_class);
+                            }
+                        )->orwhere('is_admin', 1);
+                    }
+                )->where('enable', 1)->where('expire_in', '>', date('Y-m-d H:i:s'))->get();
+            }
         }
+        
         if (($node->node_bandwidth_limit != 0) && $node->node_bandwidth_limit < $node->node_bandwidth) {
             $users = null;
 

+ 0 - 8
resources/views/material/user/node.tpl

@@ -155,10 +155,6 @@
                                                 {continue}
                                             {/if}
 
-                                            {if !($single_muport['user']->class >= $node['class'] && ($node['group'] == 0 || $single_muport['user']->node_group == $node['group']))}
-                                                {continue}
-                                            {/if}
-
                                             {$relay_rule = null}
 
                                             {if $node['sort'] == 10 && $single_muport['user']['is_multi_user'] != 2}
@@ -292,10 +288,6 @@
                                                                                 {continue}
                                                                             {/if}
 
-                                                                            {if !($single_muport['user']->class >= $node['class'] && ($node['group'] == 0 || $single_muport['user']->node_group == $node['group']))}
-                                                                                {continue}
-                                                                            {/if}
-
                                                                             {$relay_rule = null}
 
                                                                             {if $node['sort'] == 10 && $single_muport['user']['is_multi_user'] != 2}