|
|
- <?php
- if(!defined('QUASICMS') ) die("No quasi.");
-
- if (!defined("ACCOUNTPASSWORDEDITPANEL.CLASS.PHP")){
- define("ACCOUNTPASSWORDEDITPANEL.CLASS.PHP",1);
-
- /**
- * AccountPasswordEditPanel provides a panel in which the user may
- * change their password and username.
- *
- *@author Erik Winn <erikwinnmail@yahoo.com>
- *
- *
- * $Id: AccountPasswordEditPanel.class.php 286 2008-10-10 23:33:36Z erikwinn $
- *@version 0.1
- *
- *@copyright (C) 2008 by Erik Winn
- *@license GPL v.2
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
-
- *
- * @package Quasi
- * @subpackage Classes
- */
- class AccountPasswordEditPanel extends QPanel
- {
- // Local instance of the AccountMetaControl
- protected $objAccount;
- protected $objControlBlock;
-
- // Controls for Account's Data Fields
- public $txtUsername;
- public $txtPassword;
- public $txtPassword2;
-
- // Buttons
- public $btnSave;
- public $btnCancel;
-
- // Callback
- protected $strClosePanelMethod;
-
- public function __construct($objParentObject,
- $objControlBlock,
- $strClosePanelMethod,
- $intId = null,
- $strControlId = null)
- {
-
- try {
- parent::__construct($objParentObject, $strControlId);
- } catch (QCallerException $objExc) {
- $objExc->IncrementOffset();
- throw $objExc;
- }
- $this->objControlBlock = $objControlBlock;
-
- $this->objAccount =& IndexPage::$objAccount;
-
- $this->strTemplate = __QUASI_CORE_TEMPLATES__ . '/AccountPasswordEditPanel.tpl.php';
- $this->strClosePanelMethod = $strClosePanelMethod;
-
- $this->txtUsername = new QTextBox($this, 'username');
- $this->txtUsername->Text = $this->objAccount->Username;
- $this->txtUsername->Required = true;
- $this->txtUsername->MaxLength = Account::UsernameMaxLength;
- $this->txtUsername->Name = QApplication::Translate('Login Name');
-
- $this->txtPassword = new QTextBox($this, 'password');
- $this->txtPassword->TextMode = QTextMode::Password;
- $this->txtPassword->Name = QApplication::Translate('New Password');
- $this->txtPassword->Required = true;
- $this->txtPassword2 = new QTextBox($this, 'password2');
- $this->txtPassword2->TextMode = QTextMode::Password;
- $this->txtPassword2->Name = QApplication::Translate('Confirm Password');
- $this->txtPassword2->Required = true;
-
- $this->btnSave = new QButton($this);
- $this->btnSave->Text = QApplication::Translate('Save');
- if(IndexPage::$blnAjaxOk)
- $this->btnSave->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnSave_Click'));
- else
- $this->btnSave->AddAction(new QClickEvent(), new QServerControlAction($this, 'btnSave_Click'));
-
- $this->btnSave->CausesValidation = $this;
-
- $this->btnCancel = new QButton($this);
- $this->btnCancel->Text = QApplication::Translate('Cancel');
- if(IndexPage::$blnAjaxOk)
- $this->btnCancel->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnCancel_Click'));
- else
- $this->btnCancel->AddAction(new QClickEvent(), new QServerControlAction($this, 'btnCancel_Click'));
-
- }
- public function Validate()
- {
- $blnToReturn = true;
- if($this->txtPassword->Text !== $this->txtPassword2->Text )
- {
- $this->txtPassword->Warning = 'Passwords do not match!';
- $blnToReturn = false;
- }
-
- return $blnToReturn;
- }
-
- public function btnSave_Click($strFormId, $strControlId, $strParameter)
- {
- $this->objAccount->Username = $this->txtUsername->Text;
-
- //paranoid about PHP array/object handling now .. assign first, _then manipulate.
- $strPassword = $this->txtPassword->Text;
- $this->objAccount->Password = sha1($strPassword);
- $this->objAccount->OnetimePassword = false;
- $this->objAccount->ValidPassword = true;
- $this->objAccount->Save();
-
- $this->CloseSelf(true);
- }
-
- public function btnCancel_Click($strFormId, $strControlId, $strParameter)
- {
- $this->CloseSelf(false);
- }
-
- protected function CloseSelf($blnChangesMade)
- {
- $strMethod = $this->strClosePanelMethod;
- $this->objControlBlock->$strMethod($blnChangesMade);
- }
- public function __get($strName)
- {
- switch ($strName)
- {
- case 'Account':
- return $this->objAccount ;
- default:
- try {
- return parent::__get($strName);
- } catch (QCallerException $objExc) {
- $objExc->IncrementOffset();
- throw $objExc;
- }
- }
- }
-
- }//end class
- }//end define
- ?>
|