[ Index ]
 

Code source de GeekLog 1.4.1

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/system/pear/PEAR/Command/ -> Auth.php (source)

   1  <?php
   2  /**
   3   * PEAR_Command_Auth (login, logout commands)
   4   *
   5   * PHP versions 4 and 5
   6   *
   7   * LICENSE: This source file is subject to version 3.0 of the PHP license
   8   * that is available through the world-wide-web at the following URI:
   9   * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
  10   * the PHP License and are unable to obtain it through the web, please
  11   * send a note to license@php.net so we can mail you a copy immediately.
  12   *
  13   * @category   pear
  14   * @package    PEAR
  15   * @author     Stig Bakken <ssb@php.net>
  16   * @author     Greg Beaver <cellog@php.net>
  17   * @copyright  1997-2006 The PHP Group
  18   * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
  19   * @version    CVS: $Id: Auth.php,v 1.23 2006/03/02 18:14:13 cellog Exp $
  20   * @link       http://pear.php.net/package/PEAR
  21   * @since      File available since Release 0.1
  22   */
  23  
  24  /**
  25   * base class
  26   */
  27  require_once 'PEAR/Command/Common.php';
  28  require_once 'PEAR/Config.php';
  29  
  30  /**
  31   * PEAR commands for login/logout
  32   *
  33   * @category   pear
  34   * @package    PEAR
  35   * @author     Stig Bakken <ssb@php.net>
  36   * @author     Greg Beaver <cellog@php.net>
  37   * @copyright  1997-2006 The PHP Group
  38   * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
  39   * @version    Release: 1.4.11
  40   * @link       http://pear.php.net/package/PEAR
  41   * @since      Class available since Release 0.1
  42   */
  43  class PEAR_Command_Auth extends PEAR_Command_Common
  44  {
  45      // {{{ properties
  46  
  47      var $commands = array(
  48          'login' => array(
  49              'summary' => 'Connects and authenticates to remote server',
  50              'shortcut' => 'li',
  51              'function' => 'doLogin',
  52              'options' => array(),
  53              'doc' => '
  54  Log in to the remote server.  To use remote functions in the installer
  55  that require any kind of privileges, you need to log in first.  The
  56  username and password you enter here will be stored in your per-user
  57  PEAR configuration (~/.pearrc on Unix-like systems).  After logging
  58  in, your username and password will be sent along in subsequent
  59  operations on the remote server.',
  60              ),
  61          'logout' => array(
  62              'summary' => 'Logs out from the remote server',
  63              'shortcut' => 'lo',
  64              'function' => 'doLogout',
  65              'options' => array(),
  66              'doc' => '
  67  Logs out from the remote server.  This command does not actually
  68  connect to the remote server, it only deletes the stored username and
  69  password from your user configuration.',
  70              )
  71  
  72          );
  73  
  74      // }}}
  75  
  76      // {{{ constructor
  77  
  78      /**
  79       * PEAR_Command_Auth constructor.
  80       *
  81       * @access public
  82       */
  83      function PEAR_Command_Auth(&$ui, &$config)
  84      {
  85          parent::PEAR_Command_Common($ui, $config);
  86      }
  87  
  88      // }}}
  89  
  90      // {{{ doLogin()
  91  
  92      /**
  93       * Execute the 'login' command.
  94       *
  95       * @param string $command command name
  96       *
  97       * @param array $options option_name => value
  98       *
  99       * @param array $params list of additional parameters
 100       *
 101       * @return bool TRUE on success or
 102       * a PEAR error on failure
 103       *
 104       * @access public
 105       */
 106      function doLogin($command, $options, $params)
 107      {
 108          $reg = &$this->config->getRegistry();
 109          $channel = $this->config->get('default_channel');
 110          $chan = $reg->getChannel($channel);
 111          if (PEAR::isError($chan)) {
 112              return $this->raiseError($chan);
 113          }
 114          $server = $this->config->get('preferred_mirror');
 115          $remote = &$this->config->getRemote();
 116          $username = $this->config->get('username');
 117          if (empty($username)) {
 118              $username = @$_ENV['USER'];
 119          }
 120          $this->ui->outputData("Logging in to $server.", $command);
 121          
 122          list($username, $password) = $this->ui->userDialog(
 123              $command,
 124              array('Username', 'Password'),
 125              array('text',     'password'),
 126              array($username,  '')
 127              );
 128          $username = trim($username);
 129          $password = trim($password);
 130          
 131          $this->config->set('username', $username);
 132          $this->config->set('password', $password);
 133  
 134          if ($chan->supportsREST()) {
 135              $ok = true;
 136          } else {
 137              $remote->expectError(401);
 138              $ok = $remote->call('logintest');
 139              $remote->popExpect();
 140          }
 141          if ($ok === true) {
 142              $this->ui->outputData("Logged in.", $command);
 143              $this->config->store();
 144          } else {
 145              return $this->raiseError("Login failed!");
 146          }
 147          return true;
 148      }
 149  
 150      // }}}
 151      // {{{ doLogout()
 152  
 153      /**
 154       * Execute the 'logout' command.
 155       *
 156       * @param string $command command name
 157       *
 158       * @param array $options option_name => value
 159       *
 160       * @param array $params list of additional parameters
 161       *
 162       * @return bool TRUE on success or
 163       * a PEAR error on failure
 164       *
 165       * @access public
 166       */
 167      function doLogout($command, $options, $params)
 168      {
 169          $reg = &$this->config->getRegistry();
 170          $channel = $this->config->get('default_channel');
 171          $chan = $reg->getChannel($channel);
 172          if (PEAR::isError($chan)) {
 173              return $this->raiseError($chan);
 174          }
 175          $server = $this->config->get('preferred_mirror');
 176          $this->ui->outputData("Logging out from $server.", $command);
 177          $this->config->remove('username');
 178          $this->config->remove('password');
 179          $this->config->store();
 180          return true;
 181      }
 182  
 183      // }}}
 184  }
 185  
 186  ?>


Généré le : Wed Nov 21 12:27:40 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics