/** * 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; }
/** * 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'); } }
function testIsValidEmail() { $this->assertFalse(Utils\isValidEmail('this_is_not_an_email_address')); $this->assertTrue(Utils\isValidEmail('*****@*****.**')); }