/** * 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. * * [--machine-token=<value>] * : Authenticate using an Auth0 token * * [--debug] * : dump call information when logging in. */ public function login($args, $assoc_args) { // Try to login using a machine token, if provided. if (isset($assoc_args['machine-token']) || empty($args) && isset($_SERVER['TERMINUS_MACHINE_TOKEN'])) { $token = $_SERVER['TERMINUS_MACHINE_TOKEN']; if (isset($assoc_args['machine-token'])) { $token = $assoc_args['machine-token']; } $this->auth->logInViaMachineToken($token); } else { // 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 (isset($assoc_args['password'])) { $password = $assoc_args['password']; } else { $password = Terminus::promptSecret('Your dashboard password (input will not be shown)'); } $this->auth->logInViaUsernameAndPassword($email, $password); } $this->log()->debug(get_defined_vars()); Terminus::launchSelf('art', array('fist')); }
/** * 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'); } }
/** * Lock an environment to prevent changes * * ## OPTIONS * * <info|add|remove> * : action to execute ( i.e. info, add, remove ) * * [--site=<site>] * : site name * * [--env=<env>] * : site environment * * [--username=<username>] * : your username * * [--password=<password>] * : your password * **/ function lock($args, $assoc_args) { $action = array_shift($args); $site = $this->sites->get(Input::sitename($assoc_args)); $env = $site->environments->get(Input::env($assoc_args, 'env')); switch ($action) { case 'info': $info = $env->lockinfo(); $this->output()->outputRecord($info); break; case 'add': $this->log()->info('Creating new lock on {site}-{env}', array('site' => $site->get('name'), 'env' => $env->get('id'))); if (!isset($assoc_args['username'])) { $username = Terminus::prompt('Username for the lock'); } else { $username = $assoc_args['username']; } if (!isset($assoc_args['password'])) { $password = Terminus::promptSecret('Password for the lock'); } else { $password = $assoc_args['password']; } $workflow = $env->lock(array('username' => $username, 'password' => $password)); $workflow->wait(); break; case 'remove': $this->log()->info('Removing lock from {site}-{env}', array('site' => $site->get('name'), 'env' => $env->get('id'))); $workflow = $env->unlock(); $workflow->wait(); break; } if (isset($workflow)) { $this->workflowOutput($workflow); } }