get_session(); $registry = $appbox->get_registry(); require($registry->get('GV_RootPath') . 'lib/classes/deprecated/countries.php'); require_once($registry->get('GV_RootPath') . 'lib/classes/deprecated/inscript.api.php'); $register_enabled = login::register_enabled(); if (!$register_enabled) { return phrasea::redirect('/login/index.php?no-register-available'); } $request = http_request::getInstance(); $lng = Session_Handler::get_locale(); $needed = array(); /** * @todo ameliorer this shit */ $arrayVerif = array("form_login" => true, "form_password" => true, "form_password_confirm" => true, "form_gender" => true, "form_lastname" => true, "form_firstname" => true, "form_email" => true, "form_job" => true, "form_company" => true, "form_activity" => true, "form_phone" => true, "form_fax" => true, "form_address" => true, "form_zip" => true, "form_geonameid" => true, "demand" => true); if (is_file($registry->get('GV_RootPath') . 'config/register-fields.php')) include($registry->get('GV_RootPath') . 'config/register-fields.php'); $arrayVerif['form_login'] = true; $arrayVerif['form_password'] = true; $arrayVerif['form_password_confirm'] = true; $arrayVerif['demand'] = true; $arrayVerif['form_email'] = true; $lstreceiver = array(); $parm = $request->get_parms("form_login", "form_password", "form_city", "form_password_confirm", "form_gender", "form_lastname", "form_firstname", "form_email", "form_job", "form_company", 'demand', "form_activity", "form_phone", "form_fax", "form_address", "form_zip", "form_geonameid", "demand"); /** * @todo transactionner cette page */ if ($request->has_post_datas()) { $needed = array_diff_key($arrayVerif, $request->get_post_datas()); if (sizeof($needed) === 0 || (sizeof($needed) === 1 && isset($needed['form_login']) && $needed['form_login'] === true)) { foreach ($parm as $field => $value) { if (is_string($value) && isset($arrayVerif[$field]) && $arrayVerif[$field] === true) { if (trim($value) == '') $needed[$field] = _('forms::ce champ est requis'); } } // 1 - on verifie les password if ($parm['form_password'] !== $parm['form_password_confirm']) $needed['form_password'] = $needed['form_password_confirm'] = _('forms::les mots de passe ne correspondent pas'); elseif (strlen(trim($parm['form_password'])) < 8) $needed['form_password'] = _('forms::la valeur donnee est trop courte'); elseif (trim($parm['form_password']) != str_replace(array("\r\n", "\n", "\r", "\t", " "), "_", $parm['form_password'])) $needed['form_password'] = _('forms::la valeur donnee contient des caracteres invalides'); //2 - on verifie que lemail a lair correcte si elle est requise require_once(__DIR__ . '/../../lib/vendor/PHPMailer_v5.1/class.phpmailer.php'); if (trim($parm['form_email']) != '' && !PHPMailer::ValidateAddress($parm['form_email'])) $needed['form_email'] = _('forms::l\'email semble invalide'); //on verifie le login if(strlen($parm['form_login'])<8) $needed['form_login'] = _('forms::la valeur donnee est trop courte'); if (sizeof($needed) === 1 && isset($needed['form_login']) && $needed['form_login'] === true) { unset($needed['form_login']); $parm['form_login'] = $parm['form_email']; } $usr_mail = mb_strtolower(trim($parm['form_email'])); $usr_id = User_Adapter::get_usr_id_from_email($usr_mail); if ($usr_id && $usr_mail !== '') $needed['form_email'] = _('forms::un utilisateur utilisant cette adresse email existe deja'); $usr_id = User_Adapter::get_usr_id_from_login($parm['form_login']); if ($usr_id) $needed['form_login'] = _('forms::un utilisateur utilisant ce login existe deja'); if (!isset($parm['demand']) || sizeof($parm['demand']) === 0) $needed['demandes'] = true; //4 on verifieles demandes //5 on insere l'utilisateur $inscriptions = giveMeBases(); $inscOK = array(); if (sizeof($needed) === 0) { $newUsrEmail = (trim($parm['form_email']) != '') ? $parm['form_email'] : false; foreach ($appbox->get_databoxes() as $databox) { $mailsBas = array(); $mailColl = array(); $parm['demand'] = array_unique($parm['demand']); foreach ($databox->get_collections() as $collection) { if (!in_array($collection->get_base_id(), $parm['demand'])) continue; $sbas_id = $databox->get_sbas_id(); if (isset($inscriptions[$sbas_id]) && $inscriptions[$sbas_id]['inscript'] === true && (isset($inscriptions[$sbas_id]['Colls'][$collection->get_coll_id()]) || isset($inscriptions[$sbas_id]['CollsCGU'][$collection->get_coll_id()]))) $inscOK[$collection->get_base_id()] = true; } } try { $user = User_Adapter::create($appbox, $parm['form_login'], $parm["form_password"], $parm["form_email"], false); $user->set_gender($parm['form_gender']) ->set_firstname($parm['form_firstname']) ->set_lastname($parm['form_lastname']) ->set_address($parm['form_address']) ->set_zip($parm['form_zip']) ->set_tel($parm['form_phone']) ->set_fax($parm['form_fax']) ->set_job($parm['form_job']) ->set_company($parm['form_company']) ->set_position($parm['form_activity']) ->set_geonameid($parm['form_geonameid']); $newid = $user->get_id(); $demandOK = array(); if ($registry->get('GV_autoregister')) { $template_user_id = User_Adapter::get_usr_id_from_login('autoregister'); $template_user = User_Adapter::getInstance($template_user_id, appbox::get_instance()); $user->ACL()->apply_model($template_user, array_keys($inscOK[$base_id])); } $autoReg = $user->ACL()->get_granted_base(); $appbox_register = new appbox_register($appbox); foreach ($parm['demand'] as $base_id) { if (!$inscOK[$base_id] || $user->ACL()->has_access_to_base($base_id)) { continue; } $collection = collection::get_from_base_id($base_id); $appbox_register->add_request($user, $collection); unset($collection); $demandOK[$base_id] = true; } $event_mngr = eventsmanager_broker::getInstance($appbox, $Core); $params = array( 'demand' => $demandOK , 'autoregister' => $autoReg , 'usr_id' => $newid ); $event_mngr->trigger('__REGISTER_AUTOREGISTER__', $params); $event_mngr->trigger('__REGISTER_APPROVAL__', $params); if ($newUsrEmail) { $user->set_mail_locked(true); return phrasea::redirect('/login/sendmail-confirm.php?usr_id=' . $newid); } if (count($autoReg) > 0 || count($demandOK) > 0) { if (count($autoReg) > 0) { return phrasea::redirect('/login/index.php?confirm=register-ok'); } else { return phrasea::redirect('/login/index.php?confirm=register-ok-wait'); } } } catch (Exception $e) { } } } } phrasea::headers(); ?> <?php echo $registry->get('GV_homeTitle') ?> - <?php echo _('login:: register') ?>
get('GV_homeTitle') ?> -
" class="input_element" name="form_login">
" class="input_element password" name="form_password" id="form_password" />
 
" class="input_element" name="form_password_confirm">

" class="input_element" name="form_email">
 
" value="name_from_id($parm["form_geonameid"]) ?>" class="input_element geoname_field" name="form_geonameid">
: value="0"> value="1"> value="2">
" class="input_element" name="form_lastname">
" class="input_element" name="form_firstname">
" class="input_element" name="form_job">
" class="input_element" name="form_activity">
" class="input_element" name="form_phone">
" class="input_element" name="form_fax">
" class="input_element" name="form_company">
" class="input_element" name="form_address">
" class="input_element" name="form_zip">

get('GV_autoselectDB')) { ?>
get('GV_autoselectDB')) { ?>
© Copyright Alchemy 2005-