[ Index ]
 

Code source de phpMyVisites 2.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/core/forms/ -> FormUser.class.php (source)

   1  <?php
   2  /* 
   3   * phpMyVisites : website statistics and audience measurements
   4   * Copyright (C) 2002 - 2006
   5   * http://www.phpmyvisites.net/ 
   6   * phpMyVisites is free software (license GNU/GPL)
   7   * Authors : phpMyVisites team
   8  */
   9  
  10  // $Id: FormUser.class.php 187 2007-01-17 11:03:48Z matthieu_ $
  11  
  12  
  13  require_once  INCLUDE_PATH . "/core/forms/Form.class.php";
  14  require_once  INCLUDE_PATH . "/core/include/UserConfigDb.class.php";
  15  
  16  class FormUser extends Form
  17  {
  18      var $login;
  19  	function FormUser( &$template, $userLogin = false )
  20      {
  21          parent::Form( $template );
  22          
  23          $this->login = $userLogin;
  24      }
  25      
  26  	function process()
  27      {
  28          
  29          if($this->login == 'anonymous') {
  30              return false;
  31          }
  32          if($this->login) {
  33              $info = User::getInfo( $this->login );
  34          }
  35          
  36          $req =& Request::getInstance();
  37  
  38          $tmpPassword = @$info['password'];
  39          $passwordMd5OrNot = !empty($tmpPassword)?$tmpPassword:'';
  40          if($req->getActionName() === 'modCur' ) 
  41          {
  42              $formElements = array(
  43                  array ('hidden', 'form_login', $this->login),
  44                  array('password', 'form_passwordold', "Old password:", 'value=""'),
  45                  array('password', 'form_password', "New password:", 'value=""'),
  46                  array('password', 'form_password2', $GLOBALS['lang']['admin_type_again'], 'value=""'),
  47                  array('text', 'form_alias', "Alias", 'size=40 value="'.@$info['alias'].'"'),
  48                  array('text', 'form_email', "email", 'value="'.@$info['email'].'"'),
  49                  array('radio', 'form_send_mail', $GLOBALS['lang']['install_send_mail'], $GLOBALS['lang']['install_oui'], 'yes'),
  50                  array('radio', 'form_send_mail', null, $GLOBALS['lang']['install_non'], 'no'),
  51              );
  52              $formRules = array(
  53                  array('form_email', $GLOBALS['lang']['admin_valid_email'], 'email', '', 'server'),
  54                  array('form_email', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['admin_admin_mail']), 'required'),
  55      
  56                  array('form_passwordold', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['admin_user_oldPwd']), 'required'),
  57                  array('form_passwordold', $GLOBALS['lang']['admin_user_oldPwd_bad'], 'checkOldCurrentPassword'),
  58                  
  59                  array('form_password', $GLOBALS['lang']['admin_valid_pass'], 'complexPassword'),
  60                  array('form_password', $GLOBALS['lang']['admin_match_pass'], 'compareField', 'form_password2'),
  61                  array('form_password', $GLOBALS['lang']['admin_valid_pass'], 'changePassword'),
  62      
  63                  );
  64          }
  65          else {
  66              $formElements = array(
  67                  array('password', 'form_password', "Password:", 'value="'.$passwordMd5OrNot.'"'),
  68                  array('password', 'form_password2', $GLOBALS['lang']['admin_type_again'], 'value="'.$passwordMd5OrNot.'"'),
  69                  array('text', 'form_alias', "Alias", 'size=40 value="'.@$info['alias'].'"'),
  70                  array('text', 'form_email', "email", 'value="'.@$info['email'].'"'),
  71                  array('radio', 'form_send_mail', $GLOBALS['lang']['install_send_mail'], $GLOBALS['lang']['install_oui'], 'yes'),
  72                  array('radio', 'form_send_mail', null, $GLOBALS['lang']['install_non'], 'no'),
  73              );
  74          
  75              $formRules = array(
  76                  array('form_email', $GLOBALS['lang']['admin_valid_email'], 'email', '', 'server'),
  77                  array('form_email', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['admin_admin_mail']), 'required'),
  78      
  79                  array('form_password', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['install_mdpadmin']), 'required'),
  80                  array('form_password', $GLOBALS['lang']['admin_valid_pass'], 'complexPassword'),
  81                  array('form_password', $GLOBALS['lang']['admin_match_pass'], 'compareField', 'form_password2'),
  82      
  83                  );
  84          }
  85          
  86  
  87          // when adding a new element, add an input named login
  88          // else read the login in url
  89          if($req->getActionName() === 'add' )
  90          {
  91              $formElements = array_merge( 
  92                  array(    array('text', 'form_login', "Login:", 'value=""')),
  93                  $formElements
  94                  );
  95              $formRules[] = array('form_login', sprintf($GLOBALS['lang']['admin_required'], "Login"), 'required');
  96              $formRules[] = array('form_login', "Alpha numeric only", 'alphanumeric');
  97              
  98              if($login = $this->getSubmitValue('form_login'))
  99              {
 100                  $all = array_keys(User::getAllUsers());
 101                  if(in_array( $login, $all ))
 102                  {
 103                      $this->setElementError( 'form_login', 'Login already exist in database!');
 104                  }
 105              }
 106          }
 107          
 108          $this->addElements( $formElements , 'User Information');
 109          $this->setChecked( 'form_send_mail', @$info['send_mail']=='1'?'yes':'no' );
 110          $this->addRules( $formRules );
 111          
 112          
 113          return parent::process('install_general_setup');
 114      }
 115      
 116  	function postProcess()
 117      {
 118          $confUser = new UserConfigDb();
 119          
 120          $req =& Request::getInstance();
 121          $curAction = $req->getActionName();
 122          
 123          if($curAction === 'modCur' ) 
 124          {
 125              // Verify if we update current user
 126              if ($this->getSubmitValue('form_login') === $this->login) 
 127              {
 128                  $currentInfo = User::getInfo( $this->login );
 129                  
 130                  // Verify if old password is ok
 131                  $tmpOldPwd = md5($this->getSubmitValue('form_passwordold'));
 132                  if (@$currentInfo['password'] !== $tmpOldPwd) 
 133                  {
 134                      // Bad old password
 135                      trigger_error('Bad old passord!', E_USER_ERROR);
 136                  }
 137                  else 
 138                  {
 139                      $info = array(    
 140                          // db field name => new value
 141                          'login' => $this->login,
 142                          //'password' => $tmpPassword,
 143                          'alias' => $this->getSubmitValue('form_alias'),
 144                          'email' => $this->getSubmitValue('form_email'),
 145                          'send_mail' => $this->getSubmitValue('form_send_mail')=='no'?0:1,
 146                          );
 147                          
 148                      $submitPassword = $this->getSubmitValue('form_password');
 149                      if ( !empty($submitPassword) && $submitPassword !== $tmpOldPwd) 
 150                      {
 151                          $info ['password'] = md5($submitPassword);
 152                      }
 153                      $curAction = 'mod';
 154                  }
 155              }
 156              else 
 157              {
 158                  trigger_error('Action not authorized. You can modify only your settings!', E_USER_ERROR);
 159              }
 160          }
 161          else {
 162              $info = array(    
 163                  // db field name => new value
 164                  'login' => $this->login?$this->login:$this->getSubmitValue('form_login'),
 165                  //'password' => md5($this->getSubmitValue('form_password')),
 166                  'alias' => $this->getSubmitValue('form_alias'),
 167                  'email' => $this->getSubmitValue('form_email'),
 168                  'send_mail' => $this->getSubmitValue('form_send_mail')=='no'?0:1,
 169              );
 170              if ($curAction == 'mod') {
 171                  $currentInfo = User::getInfo( $this->login );
 172                  if ($currentInfo['password'] !== $this->getSubmitValue('form_password')){
 173                      $info['password'] = md5($this->getSubmitValue('form_password'));
 174                  }
 175              }
 176              else {
 177                  $info['password'] = md5($this->getSubmitValue('form_password'));
 178              }
 179          }
 180              
 181          switch( $curAction )
 182          {
 183              case 'add':
 184                  $confUser->addUser( $info );
 185              break;
 186              
 187              case 'mod':                
 188                  $confUser->modUser( $info );
 189              break;
 190                          
 191              default:
 192                  trigger_error('Action not specified for User configuration. Were you trying to add, modify, delete? Only YOU know that!', E_USER_ERROR);
 193              break;
 194          }
 195      }
 196  }
 197  ?>


Généré le : Mon Nov 26 14:10:01 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics