Exemplo n.º 1
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.
  *
  * [--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'));
 }
Exemplo n.º 2
0
Arquivo: auth.php Projeto: andrefy/cli
 /**
  * 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');
     }
 }
Exemplo n.º 3
0
 /**
   * 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);
     }
 }