public function register() { $username = Input::get('username'); $password = Input::get('password'); if (!Auth::check()) { Auth::basic('username'); } $user = Auth::user(); if (!$user || !$user->hasSuper()) { return Response::json(array('result' => false, 'message' => 'Access denied')); } if (!User::usernameIsUnique($username)) { return Response::json(array('result' => false, 'message' => 'Username provided is already registered.')); } if ($username && $password) { User::register($username, $password); return Response::json(array('result' => true)); } else { return Response::json(array('result' => false, 'message' => 'Invalid details provided')); } }
public function registerAction() { $ariane['créer mon espace'] = null; $this->view->ariane = $ariane; if (current_user()) { $this->redirect($_SERVER['HTTP_REFERER']); } $openRegistration = get_option('guest_user_open') == 1; $instantAccess = get_option('guest_user_instant_access') == 1; $user = new User(); $form = $this->_getForm(array('user' => $user)); $this->view->form = $form; if (!$this->getRequest()->isPost() || !$form->isValid($_POST)) { return; } $user->role = 'guest'; if ($openRegistration || $instantAccess) { $user->active = true; } $user->setPassword($_POST['new_password']); $user->setPostData($_POST); if (!$user->usernameIsUnique($_POST['username'])) { $this->_helper->flashMessenger(__("Ce nom d'utilisateur existe déjà"), 'error'); return; } try { if ($user->save()) { $token = $this->_createToken($user); $this->_sendConfirmationEmail($user, $token); //confirms that they registration request is legit if ($instantAccess) { //log them right in, and return them to the previous page $authAdapter = new Omeka_Auth_Adapter_UserTable($this->_helper->db->getDb()); $authAdapter->setIdentity($user->username)->setCredential($_POST['new_password']); $authResult = $this->_auth->authenticate($authAdapter); if (!$authResult->isValid()) { if ($log = $this->_getLog()) { $ip = $this->getRequest()->getClientIp(); $log->info(__("Failed login attempt from %s", $ip)); } $this->_helper->flashMessenger($this->getLoginErrorMessages($authResult), 'error'); return; } $activation = UsersActivations::factory($user); $activation->save(); $this->_helper->flashMessenger(__("Vous êtes identifiés temporairement. Merci de consulter vos e-mails et de confirmer votre inscription.")); $session = new Zend_Session_Namespace(); if ($session->redirect) { $this->_helper->redirector->gotoUrl($session->redirect); } return; } if ($openRegistration) { $message = __("Merci pour votre inscription. Un lien de validation vous a été envoyé par e-mail. Votre inscription sera effective après validation."); $this->_helper->flashMessenger($message, 'success'); $activation = UsersActivations::factory($user); $activation->save(); } else { $message = __("Merci pour votre inscription. Un lien de validation vous a été envoyé par e-mail. Votre inscription sera effective après validation."); $this->_helper->flashMessenger($message, 'success'); } } } catch (Omeka_Validator_Exception $e) { $this->flashValidationErrors($e); } }