function doLogin($command, $options, $params)
    {
        $reg = &$this->config->getRegistry();

        // If a parameter is supplied, use that as the channel to log in to
        $channel = isset($params[0]) ? $params[0] : $this->config->get('default_channel');

        $chan = $reg->getChannel($channel);
        if (PEAR::isError($chan)) {
            return $this->raiseError($chan);
        }

        $server   = $this->config->get('preferred_mirror', null, $channel);
        $username = $this->config->get('username',         null, $channel);
        if (empty($username)) {
            $username = isset($_ENV['USER']) ? $_ENV['USER'] : null;
        }
        $this->ui->outputData("Logging in to $server.", $command);

        list($username, $password) = $this->ui->userDialog(
            $command,
            array('Username', 'Password'),
            array('text',     'password'),
            array($username,  '')
            );
        $username = trim($username);
        $password = trim($password);

        $ourfile = $this->config->getConfFile('user');
        if (!$ourfile) {
            $ourfile = $this->config->getConfFile('system');
        }

        $this->config->set('username', $username, 'user', $channel);
        $this->config->set('password', $password, 'user', $channel);

        if ($chan->supportsREST()) {
            $ok = true;
        }

        if ($ok !== true) {
            return $this->raiseError('Login failed!');
        }

        $this->ui->outputData("Logged in.", $command);
        // avoid changing any temporary settings changed with -d
        $ourconfig = new PEAR_Config($ourfile, $ourfile);
        $ourconfig->set('username', $username, 'user', $channel);
        $ourconfig->set('password', $password, 'user', $channel);
        $ourconfig->store();

        return true;
    }
function doLogin($command, $options, $params)
    {
        $reg = &$this->config->getRegistry();

        // If a parameter is supplied, use that as the channel to log in to
        $channel = isset($params[0]) ? $params[0] : $this->config->get('default_channel');

        $chan = $reg->getChannel($channel);
        if (PEAR::isError($chan)) {
            return $this->raiseError($chan);
        }

        $server   = $this->config->get('preferred_mirror', null, $channel);
        $username = $this->config->get('username',         null, $channel);
        if (empty($username)) {
            $username = isset($_ENV['USER']) ? $_ENV['USER'] : null;
        }
        $this->ui->outputData("Logging in to $server.", $command);

        list($username, $password) = $this->ui->userDialog(
            $command,
            array('Username', 'Password'),
            array('text',     'password'),
            array($username,  '')
            );
        $username = trim($username);
        $password = trim($password);

        $ourfile = $this->config->getConfFile('user');
        if (!$ourfile) {
            $ourfile = $this->config->getConfFile('system');
        }

        $this->config->set('username', $username, 'user', $channel);
        $this->config->set('password', $password, 'user', $channel);

        if ($chan->supportsREST()) {
            $ok = true;
        }

        if ($ok !== true) {
            return $this->raiseError('Login failed!');
        }

        $this->ui->outputData("Logged in.", $command);
        // avoid changing any temporary settings changed with -d
        $ourconfig = new PEAR_Config($ourfile, $ourfile);
        $ourconfig->set('username', $username, 'user', $channel);
        $ourconfig->set('password', $password, 'user', $channel);
        $ourconfig->store();

        return true;
    }
function doLogin ( $ command , $ options , $ params ) { $ reg = & $ this -> config -> getRegistry ( ) ; // If a parameter is supplied, use that as the channel to log in to $ channel = isset ( $ params [ 0 ] ) ? $ params [ 0 ] : $ this -> config -> get ( 'default_channel' ) ; $ chan = $ reg -> getChannel ( $ channel ) ; if ( PEAR :: isError ( $ chan ) ) { return $ this -> raiseError ( $ chan ) ; } $ server = $ this -> config -> get ( 'preferred_mirror' , null , $ channel ) ; $ username = $ this -> config -> get ( 'username' , null , $ channel ) ; if ( empty ( $ username ) ) { $ username = isset ( $ _ENV [ 'USER' ] ) ? $ _ENV [ 'USER' ] : null ; } $ this -> ui -> outputData ( "Logging in to $server." , $ command ) ; list ( $ username , $ password ) = $ this -> ui -> userDialog ( $ command , array ( 'Username' , 'Password' ) , array ( 'text' , 'password' ) , array ( $ username , '' ) ) ; $ username = trim ( $ username ) ; $ password = trim ( $ password ) ; $ ourfile = $ this -> config -> getConfFile ( 'user' ) ; if ( ! $ ourfile ) { $ ourfile = $ this -> config -> getConfFile ( 'system' ) ; } $ this -> config -> set ( 'username' , $ username , 'user' , $ channel ) ; $ this -> config -> set ( 'password' , $ password , 'user' , $ channel ) ; if ( $ chan -> supportsREST ( ) ) { $ ok = true ; } if ( $ ok !== true ) { return $ this -> raiseError ( 'Login failed!' ) ; } $ this -> ui -> outputData ( "Logged in." , $ command ) ; // avoid changing any temporary settings changed with -d $ ourconfig = new PEAR_Config ( $ ourfile , $ ourfile ) ; $ ourconfig -> set ( 'username' , $ username , 'user' , $ channel ) ; $ ourconfig -> set ( 'password' , $ password , 'user' , $ channel ) ; $ ourconfig -> store ( ) ; return true ; }
Execute the 'login' command.

@param string $command command name
@param array $options option_name => value
@param array $params list of additional parameters

@return bool TRUE on success or
a PEAR error on failure

@access public
Execute the login command .