public function testAll() { if ($this->config === null) { $this->sendMessage('Ldap plugin for jauth is not tested because there isn\'t configuration.' . ' To test it, you should create and configure an auth_ldap.coord.ini.php file.'); return; } for ($i = 1; $i <= NB_USERS_LDAP; $i++) { $myUser = jAuth::createUserObject("testldap usr {$i}", "pass{$i}"); $this->assertTrue($myUser instanceof jAuthUserLDAP); jAuth::saveNewUser($myUser); $myUserLDAP = jAuth::getUser("testldap usr {$i}"); $user = "******"jAuthUserLDAP\">\n <string property=\"login\" value=\"testldap usr {$i}\" />\n <string property=\"email\" value=\"\" />\n <array property=\"cn\">array('testldap usr {$i}')</array>\n <array property=\"distinguishedName\">array('CN=testldap usr {$i},{$this->config['ldap']['searchBaseDN']}')</array>\n <array property=\"name\">array('testldap usr {$i}')</array>\n <string property=\"password\" value=\"\" />\n </object>\n "; $this->assertComplexIdenticalStr($myUserLDAP, $user); $myUser->email = "usr{$i}.testldap@domain.com"; jAuth::updateUser($myUser); $myUserLDAP = jAuth::getUser("testldap usr {$i}"); $user = "******"login\" value=\"testldap usr {$i}\" />\n <array property=\"email\">array('usr{$i}.testldap@domain.com')</array>\n <array property=\"cn\">array('testldap usr {$i}')</array>\n <array property=\"distinguishedName\">array('CN=testldap usr {$i},{$this->config['ldap']['searchBaseDN']}')</array>\n <array property=\"name\">array('testldap usr {$i}')</array>\n <string property=\"password\" value=\"\" />\n </object>\n "; $this->assertComplexIdenticalStr($myUserLDAP, $user); $this->assertTrue(jAuth::verifyPassword("testldap usr {$i}", "pass{$i}")); $this->assertTrue(jAuth::changePassword("testldap usr {$i}", "newpass{$i}")); } $myUsersLDAP = jAuth::getUserList('testldap usr*'); $users = "<array>"; for ($i = 1; $i <= NB_USERS_LDAP; $i++) { $users .= "\n <object>\n <array property=\"login\">array('testldap usr {$i}')</array>\n <array property=\"email\">array('usr{$i}.testldap@domain.com')</array>\n <array property=\"cn\">array('testldap usr {$i}')</array>\n <array property=\"distinguishedName\">array('CN=testldap usr {$i},{$this->config['ldap']['searchBaseDN']}')</array>\n <array property=\"name\">array('testldap usr {$i}')</array>\n <string property=\"password\" value=\"\" />\n </object>\n "; } $users .= "</array>"; $this->assertComplexIdenticalStr($myUsersLDAP, $users); for ($i = 1; $i <= NB_USERS_LDAP; $i++) { $this->assertTrue(jAuth::removeUser("testldap usr {$i}")); } $myUsersLDAP = jAuth::getUserList('testldap usr*'); $this->assertFalse(count($myUsersLDAP) > 0); }
function create() { $rep = $this->getResponse('html'); $rep->title = "Bienvenue | " . $rep->appName; // $password = $this->param('password'); $firstname = $this->param('firstname'); $lastname = $this->param('lastname'); $email = $this->param('email'); $professionnel = $this->param('professionnel', 'NO', true); $this->success = false; $this->message = "Erreur: veuillez remplir tous les champs obligatoires."; //si ville et commune existe if (!empty($email) && !empty($password) && !empty($lastname) && !empty($firstname)) { // instanciation $user = jAuth::createUserObject($email, $password); // infos user $user->firstname = $firstname; $user->lastname = $lastname; $user->email = $email; $user->keyactivate = uniqid('', true); // $user->professionnel = $professionnel; //jLog::dump($user); try { $nu = jAuth::saveNewUser($user); //set user as customer // $tbcust = jDao::get('customer~account'); // $custRecord = jDao::createRecord('customer~account'); // $custRecord->user_id = $nu->id; // $tbcust->insert($custRecord); // end $this->success = true; $this->message = "Votre compte a été crée avec succès, un e-mail de " . " confirmation vous " . " a été envoyé à l'adresse : " . $email; /* $mail = new jMailer(); $tpl = $mail->Tpl('user~createmail',true); $tpl->assign('user',$user); $mail->Send(); */ } catch (Exception $exc) { $this->message = "Désole votre inscription a échouée veuillez reesayer ultérieurement."; $rep = $this->getResponse('redirect'); $rep->action = "user~user:inscription"; $rep->params = array('msg' => $this->message); return $rep; } } $rep->bodyTpl = 'create'; $rep->body->assign('message', $this->message); return $rep; }
/** * save new user and send an email for a confirmation, with * a key to activate the account */ function save() { if (jAuth::isConnected()) { return $this->noaccess(); } $rep = $this->getResponse("redirect"); $rep->action = "registration:index"; $form = jForms::get('registration'); if (!$form) { return $rep; } jEvent::notify('jcommunity_registration_init_form', array('form' => $form)); $form->initFromRequest(); if (!$form->check()) { return $rep; } $login = $form->getData('reg_login'); if (jAuth::getUser($login)) { $form->setErrorOn('reg_login', jLocale::get('register.form.login.exists')); return $rep; } $pass = jAuth::getRandomPassword(8); $key = substr(md5($login . '-' . $pass), 1, 10); $user = jAuth::createUserObject($login, $pass); $user->email = $form->getData('reg_email'); $user->nickname = $login; $user->status = JCOMMUNITY_STATUS_NEW; $user->request_date = date('Y-m-d H:i:s'); $user->keyactivate = $key; $ev = jEvent::notify('jcommunity_registration_prepare_save', array('form' => $form, 'user' => $user)); if (count($form->getErrors())) { return $rep; } $responses = $ev->getResponse(); $hasErrors = false; foreach ($responses as $response) { if (isset($response['errorRegistration']) && $response['errorRegistration'] != "") { jMessage::add($response['errorRegistration'], 'error'); $hasErrors = true; } } if ($hasErrors) { return $rep; } jAuth::saveNewUser($user); jEvent::notify('jcommunity_registration_after_save', array('form' => $form, 'user' => $user)); $gJConfig = jApp::config(); $mail = new jMailer(); $mail->From = $gJConfig->mailer['webmasterEmail']; $mail->FromName = $gJConfig->mailer['webmasterName']; $mail->Sender = $gJConfig->mailer['webmasterEmail']; $mail->Subject = jLocale::get('register.mail.new.subject'); $tpl = new jTpl(); $tpl->assign(compact('login', 'pass', 'key')); $tpl->assign('server', $_SERVER['SERVER_NAME']); $mail->Body = $tpl->fetch('mail_registration', 'text'); $mail->AddAddress($user->email); $mail->Send(); jForms::destroy('registration'); $rep->action = "registration:confirmform"; $rep->params = array('login' => $login); return $rep; }
/** * */ function save() { $rep = $this->getResponse('json'); //parametres $id = $this->intParam('id', null, true); $active = $this->param('active', 'NO', true); $login = $this->param('login'); $password = $this->param('password'); $lastname = $this->param('lastname'); $firstname = $this->param('firstname'); $email = $this->param('email'); $phone = $this->param('phone'); //verification if ($id) { //update if (!empty($firstname) && !empty($lastname) && !empty($active) && jFilter::isEmail($email)) { // instanciation de la factory $user = jAuth::getUser($login); // infos user $user->phone = $phone; $user->lastname = $lastname; $user->firstname = $firstname; $user->email = $email; $user->active = $active; // on le sauvegarde dans la base try { jAuth::updateUser($user); if (!empty($password) && $user->password != $password) { jAuth::changePassword($user->login, $password); } $this->success = true; $this->msg = "utilisateur modifié "; } catch (Exception $e) { $this->success = false; $this->msg = "utilisateur non modifié"; } } } else { //insert if (!empty($login) && !empty($password) && !empty($firstname) && !empty($lastname) && !empty($active) && jFilter::isEmail($email)) { // instanciation $user = jAuth::createUserObject($login, $password); // infos user $user->phone = $phone; $user->lastname = $lastname; $user->firstname = $firstname; $user->email = $email; $user->active = $active; // on le sauvegarde dans la base try { $this->success = jAuth::saveNewUser($user); $this->msg = "utilisateur ajouté "; } catch (Exception $e) { $this->success = false; $this->msg = "utilisateur non ajouté"; } } } $rep->data = array('success' => $this->success, 'msg' => $this->msg); return $rep; }
/** * save data of a form in a new record */ function savecreate() { $form = jForms::get($this->form); $form->initFromRequest(); $rep = $this->getResponse('redirect'); if ($form == null) { $rep->action = 'default:index'; return $rep; } $evresp = array(); if ($form->check() && !jEvent::notify('jauthdbAdminCheckCreateForm', array('form' => $form))->inResponse('check', false, $evresp)) { $props = jDao::createRecord($this->dao, $this->dbProfile)->getProperties(); $user = jAuth::createUserObject($form->getData('login'), $form->getData('password')); $form->setData('password', $user->password); $form->prepareObjectFromControls($user, $props); $form->saveAllFiles($this->uploadsDirectory); jAuth::saveNewUser($user); jForms::destroy($this->form); jMessage::add(jLocale::get('crud.message.create.ok', $user->login), 'notice'); $rep->action = 'default:view'; $rep->params['id'] = $user->login; return $rep; } else { $rep->action = 'default:create'; return $rep; } }
/** * Save the data for the services section. * @return Redirect to the index. */ function saveAccount() { // Get lizmap services $services = lizmap::getServices(); $rep = $this->getResponse('redirect'); $rep->action = 'view~default:index'; // Redirect if option not active if (!$services->allowUserAccountRequests) { return $rep; } // Redirect if already a logged user if (jAuth::isConnected()) { jMessage::add(jLocale::get("view~user.already.logged")); return $rep; } // Get the form $form = jForms::get('view~lizmap_user'); // token $token = $this->param('__JFORMS_TOKEN__'); if (!$token) { $rep->action = "view~user:createAccount"; return $rep; } // If the form is not defined, redirection if (!$form) { $rep->action = "view~user:createAccount"; return $rep; } // Set the other form data from the request data $form->initFromRequest(); // Check the form $ok = true; if (!$form->check()) { $ok = false; } // Check the honey pot. Redirect if filled (means robot) $honey = $form->getData('name'); if ($honey and !empty($honey)) { $rep->action = "view~user:createAccount"; return $rep; } if (!$ok) { // Errors : redirection to the display action $rep->action = 'view~user:editAccount'; return $rep; } // Save the data $evresp = array(); if (!jEvent::notify('jauthdbAdminCheckCreateForm', array('form' => $form))->inResponse('check', false, $evresp)) { // Sanitize some fields $sanitize = array('login', 'firstname', 'lastname', 'organization', 'phonenumber', 'street', 'postcode', 'city', 'country', 'comment'); foreach ($sanitize as $field) { $form->setData($field, filter_var($form->getData($field), FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES)); } // Add user to database via jAuth methods try { $props = jDao::createRecord('jauthdb~jelixuser', 'jauth')->getProperties(); $user = jAuth::createUserObject($form->getData('login'), $form->getData('password')); $form->setData('password', $user->password); $form->prepareObjectFromControls($user, $props); jAuth::saveNewUser($user); jMessage::add(jLocale::get("view~user.form.message.saved")); $ok = true; $rep->action = "view~user:validateAccount"; } catch (exception $e) { $ok = false; jMessage::add(jLocale::get("view~user.form.message.not.saved")); $rep->action = "view~user:editAccount"; } // Send email to the administrator if ($ok) { try { $this->sendEmailToAdmin($user); } catch (Exception $e) { jLog::log('error while sending email to admin: ' . $e->getMessage()); } } } return $rep; }