X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=Uplink%2FUplink.class.php;h=6d73c62afd31105fe9b4a384d06b8402d5c5dd0a;hp=67ea3b1cef2f4d08bd78e8fc18492d6bb200f942;hb=9a22335174615d1aeda038cec4cf56c8952bc338;hpb=2f0f5cc68df94a828efa64b55ba34be1a243c5a0 diff --git a/Uplink/Uplink.class.php b/Uplink/Uplink.class.php index 67ea3b1..6d73c62 100644 --- a/Uplink/Uplink.class.php +++ b/Uplink/Uplink.class.php @@ -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) {