Ejemplo n.º 1
0
 private function changeLogin(PlPage $page, PlUser $user, $login, $req_broken = false, $req_marketing = false, $marketing_from = 'user')
 {
     // Search the user's uid.
     $xuser = User::getSilent($login);
     if (!$xuser) {
         $accounts = User::getPendingAccounts($login);
         if (!$accounts) {
             $page->trigError("L'identifiant {$login} ne correspond à aucun X.");
             return false;
         } else {
             if (count($accounts) > 1) {
                 $page->trigError("L'identifiant {$login} correspond à plusieurs camarades.");
                 return false;
             }
         }
         $xuser = User::getSilent($accounts[0]['uid']);
     }
     if (!$xuser) {
         return false;
     }
     // Market or suggest new redirection if required.
     $email = $user->bestEmail();
     if ($req_broken) {
         $valid = new BrokenReq(S::user(), $xuser, $email, 'Groupe : ' . Platal::globals()->asso('nom'));
         $valid->submit();
     } elseif ($req_marketing) {
         $market = Marketing::get($xuser->uid, $email);
         if (!$market) {
             $market = new Marketing($xuser->uid, $email, 'group', Platal::globals()->asso('nom'), $marketing_from, S::i('uid'));
             $market->add();
         }
     }
     if ($user->mergeIn($xuser)) {
         return $xuser->login();
     }
     return $user->login();
 }