Пример #1
0
 /**
  * Create or update a user's account
  *
  * @param string $username
  * @param array $entry
  */
 private function synchroniseUser($entry)
 {
     $mapping = ifset($this->config, 'mapping', array());
     $username = ifset($entry, $mapping['username'], false);
     if (!$username) {
         throw new Exception("No username mapping found.");
     }
     // Cast back from the array representation
     $username = $username[0];
     // get all the user's details and map the relevant attributes... which we'll skip!
     $user = $this->userService->getUserByField('username', $username);
     if ($user == null) {
         $params = array();
         $params['username'] = $username;
         $params['password'] = md5(time() . rand(1, 10000));
         // Fill in mapped params
         $email = ifset($entry, $mapping['email'], null);
         if ($email) {
             $email = $email[0];
         } else {
             $email = $params['password'] . '@null.com';
         }
         $params['email'] = $email;
         try {
             $user = $this->userService->createUser($params, false);
         } catch (Exception $e) {
             $this->log->err("Failed creating user for {$username}: " . $e->getMessage() . ': ' . current_url() . "\r\n" . print_r($params, true));
             return null;
         }
     }
     za()->log(__CLASS__ . ':' . __LINE__ . " User is " . get_class($user));
     return $user;
 }
Пример #2
0
 /**
  * Creates a user object for the given contact
  * 
  * Default attempted username is firstname.surname
  * 
  * Failing that, initial.surname
  */
 public function createUserForContact(Contact $contact)
 {
     // try and find a user for the given username
     $username = $contact->firstname . '.' . $contact->lastname;
     $username = trim($username, '.');
     $username = mb_strtolower(preg_replace('/[^a-zA-Z.+_-]/', '', $username));
     if ($username == '.') {
         throw new ExistingUserException("Contact must have a firstname and surname");
     }
     if ($this->userService->getByName($username)) {
         // try a different username
         $username = $username[0] . $contact->lastname;
         $username = trim($username, '.');
         $username = mb_strtolower(preg_replace('/[^a-zA-Z.+_-]/', '', $username));
         if ($this->userService->getByName($username)) {
             // crapp it
             throw new Exception("All possible usernames taken");
         }
     }
     try {
         $this->dbService->beginTransaction();
         $new_pass = substr(md5(uniqid(rand(), 1)), 3, 5);
         $params = array('username' => $username, 'email' => $contact->email, 'firstname' => $contact->firstname, 'lastname' => $contact->lastname, 'contactid' => $contact->id, 'password' => $new_pass);
         $user = $this->userService->createUser($params, false, User::ROLE_EXTERNAL);
         $this->trackerService->track('create-contact-user', $contact->id);
         $this->dbService->commit();
     } catch (Exception $e) {
         $this->log->debug($e->getMessage() . ": \r\n" . $e->getTraceAsString());
         $this->dbService->rollback();
         throw $e;
     }
     return $user;
 }
Пример #3
0
 /**
  * Process a form to create a user.
  *
  * @return mixed The response.
  */
 public function processCreateUser()
 {
     $user = new User();
     $user->username = Input::get('username');
     $user->password = Input::get('password');
     $user->password_confirmation = Input::get('password_confirmation');
     $user->first_name = Input::get('first_name');
     $user->last_name = Input::get('last_name');
     $user->email = Input::get('email');
     $user->status = Input::get('status');
     $user->role = Input::get('role');
     $user->locale_id = Input::get('locale_id');
     try {
         UserService::createUser($user);
         $this->success(trans('messages.userCreated'));
         return Redirect::route('users.list');
     } catch (ValidationException $e) {
         return Redirect::route('users.create')->withInput(Input::all())->withErrors($e->getValidator());
     } catch (Exception $e) {
         return $this->unexpected($e);
     }
 }
Пример #4
0
 /**
  * Display the register form
  *
  */
 public function registerAction()
 {
     if ($this->_getParam('email')) {
         // alright then, lets create the user
         if ($this->_getParam('password') != $this->_getParam('confirm')) {
             $this->view->addError('unmatched_password', 'Passwords do not match');
         } else {
             try {
                 $this->userService->createUser($this->_getAllParams());
                 $this->returnOrHome();
             } catch (ExistingUserException $eu) {
                 $this->view->addError('create_user', "Email " . $this->_getParam('email') . ' already exists');
             } catch (InvalidModelException $im) {
                 $this->view->addErrors($im->getMessages());
             } catch (Exception $e) {
                 $this->view->addError('unknown', $e->getMessage());
                 error_log($e->getTraceAsString());
             }
         }
     }
     $this->getResponse()->appendBody($this->view->render('user/signup.php'));
 }
Пример #5
0
<?php

require "../vendor/autoload.php";
require_once '../app/include/PassHash.php';
require_once '../app/include/DbConnect.php';
require_once '../app/include/Utils.php';
require_once '../app/models/Book.php';
require_once '../app/models/User.php';
require_once '../app/services/UserService.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
//Restful for Users
$app->post('/users', function () use($app) {
    $jsonUser = $app->request->getBody();
    $objUser = json_decode($jsonUser, true);
    $res = UserService::createUser($objUser);
    $response = array();
    if ($res == USER_CREATED_SUCCESSFULLY) {
        $response["error"] = false;
        $response["message"] = "You are successfully registered";
        Utils::echoResponse(201, $response);
    } else {
        if ($res == USER_CREATE_FAILED) {
            $response["error"] = true;
            $response["message"] = "Oops! An error occurred while registering. Please try again";
            Utils::echoResponse(200, $response);
        } else {
            if ($res == USER_ALREADY_EXISTED) {
                $response["error"] = true;
                $response["message"] = "Sorry, this email already existed";
                Utils::echoResponse(200, $response);
Пример #6
0
 $method = $_SERVER['REQUEST_METHOD'];
 $request = explode("/", substr(@$_SERVER['PATH_INFO'], 1));
 if ($method == 'GET' && $request[0] == 'test') {
     $sv = new UserService();
     $sv->test('json');
 } else {
     if ($method == 'GET' && $request[0] == 'search') {
         echo 'mofidy search function ';
     } else {
         if ($method == 'POST' && $request[0] == 'test') {
             if (isset($request[1]) && $request[1] == 'add') {
                 //add  json object { "a":"aa","b":"bb", user":{"userid":"aaaa"}}
                 $sv = new UserService();
                 $input = json_decode(file_get_contents("php://input"));
                 // var_dump($input);
                 $rs = $sv->createUser($input, getuserid($input));
                 // var_dump($rs);
                 return $rs;
                 exit;
             }
         } else {
             if ($method == 'PUT' && $request[0] == 'test') {
                 if (isset($request[1]) && is_numeric($request[1])) {
                     $sv = new UserService();
                     $input = json_decode(file_get_contents("php://input"));
                     // var_dump($input);
                     $rs = $sv->updateUser($input, getuserid($input));
                     // var_dump($rs);
                     return $rs;
                     exit;
                 }