Example #1
0
 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'));
     }
 }
Example #2
0
 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);
     }
 }