Exemple #1
0
 /**
  * Execute the login via email/password
  *
  * @param [string] $email    Email address associated with a Pantheon account
  * @param [string] $password Password for the account
  * @return [boolean] True if login succeeded
  */
 public function logInViaUsernameAndPassword($email, $password)
 {
     if (!Terminus\Utils\isValidEmail($email)) {
         throw new TerminusException('{email} is not a valid email address.', array('email' => $email), 1);
     }
     $logger_context = array('email' => $email);
     $options = array('form_params' => array('email' => $email, 'password' => $password));
     $response = TerminusCommand::request('login', '', '', 'POST', $options);
     if ($response['status_code'] != '200') {
         throw new TerminusException('Login unsuccessful for {email}', $logger_context, 1);
     }
     $this->logger->info('Logged in as {uuid}.', array('uuid' => $response['data']->user_id));
     $this->setInstanceData($response['data']);
     return true;
 }
Exemple #2
0
 /**
  * Log in as a user
  *
  *  ## OPTIONS
  * [<email>]
  * : Email address to log in as.
  *
  * [--password=<value>]
  * : Log in non-interactively with this password. Useful for automation.
  * [--session=<value>]
  * : Authenticate using an existing session token
  * [--debug]
  * : dump call information when logging in.
  */
 public function login($args, $assoc_args)
 {
     # First try to login using a session token if provided
     if (isset($assoc_args['session'])) {
         $this->log()->info("Validating session token");
         $data = $this->doLoginFromSessionToken($assoc_args['session']);
         if ($data != FALSE) {
             if (array_key_exists("debug", $assoc_args)) {
                 $this->_debug(get_defined_vars());
             }
             $this->log()->info("Logged in as " . $data['email']);
             Terminus::launchSelf("art", array("fist"));
         } else {
             $this->failure('Login failed!');
         }
         return;
     }
     # Otherwise do a normal email/password-based login
     if (empty($args)) {
         if (isset($_SERVER['TERMINUS_USER'])) {
             $email = $_SERVER['TERMINUS_USER'];
         } else {
             $email = Terminus::prompt("Your email address?", NULL);
         }
     } else {
         $email = $args[0];
     }
     if (Utils\isValidEmail($email)) {
         if (!isset($assoc_args['password'])) {
             $password = Terminus::promptSecret('Your dashboard password (input will not be shown)');
         } else {
             $password = $assoc_args['password'];
         }
         $this->log()->info("Logging in as {$email}");
         $data = $this->doLogin($email, $password);
         if ($data != FALSE) {
             if (array_key_exists("debug", $assoc_args)) {
                 $this->_debug(get_defined_vars());
             }
             Terminus::launchSelf("art", array("fist"));
         } else {
             $this->failure('Login Failed!');
         }
     } else {
         $this->failure('Invalid email address');
     }
 }
Exemple #3
0
 function testIsValidEmail()
 {
     $this->assertFalse(Utils\isValidEmail('this_is_not_an_email_address'));
     $this->assertTrue(Utils\isValidEmail('*****@*****.**'));
 }