automatically assign default (HIS) fakehost when user gets registered with umode...
authorpk910 <philipp@zoelle1.de>
Mon, 26 Dec 2011 14:13:07 +0000 (15:13 +0100)
committerpk910 <philipp@zoelle1.de>
Mon, 26 Dec 2011 14:16:16 +0000 (15:16 +0100)
Uplink/Uplink.class.php

index 67ea3b1cef2f4d08bd78e8fc18492d6bb200f942..6d73c62afd31105fe9b4a384d06b8402d5c5dd0a 100644 (file)
@@ -722,8 +722,17 @@ class Uplink {
                                return;
                        }
                        $targetUser->getModes()->setModes($modes);
-                       if($this->eventHandler)
+            $fakemodes = NULL;
+            if($targetUser->getModes()->hasMode("x") && $targetUser->getModes()->hasMode("r") && !$targetUser->getModes()->hasMode("f")) {
+                //user is registered and has umode +x set (automatically assign default fakehost)
+                $fakemodes = "+f ".$targetUser->getModes()->hasMode("r").".".$this->getSetting("his_usermask");
+                $targetUser->getModes()->setModes($fakemodes);
+            }
+                       if($this->eventHandler) {
                                $this->eventHandler->event_usermode($targetUser, $modes);
+                if($fakemodes)
+                    $this->eventHandler->event_usermode($targetUser, $fakemodes);
+            }
                }
        }
     
@@ -735,8 +744,17 @@ class Uplink {
                }
                $auth = $args[1];
                $user->getModes()->setModes("+r ".$auth);
-        if($this->eventHandler)
+        $fakemodes = NULL;
+        if($user->getModes()->hasMode("x") && !$user->getModes()->hasMode("f")) {
+            //user is registered and has umode +x set (automatically assign default fakehost)
+            $fakemodes = "+f ".$auth.".".$this->getSetting("his_usermask");
+            $user->getModes()->setModes($fakemodes);
+        }
+        if($this->eventHandler) {
             $this->eventHandler->event_usermode($user, "+r ".$auth);
+            if($fakemodes)
+                $this->eventHandler->event_usermode($user, $fakemodes);
+        }
        }
     
     private function recv_fakehost($from, $args) {