BUG 0000 forgot password - complete files

This commit is contained in:
Rodrigo Quelca Sirpa
2011-06-03 18:40:51 -04:00
committed by Erik Amaru Ortiz
parent a1725f03d5
commit 4c16687e37
7 changed files with 451 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
<?php
/**
* forgotPassword.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2011 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
$G_PUBLISH = new Publisher ();
$G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/forgotPassword', '', $aFields, SYS_URI . 'login/retrivePassword.php');
G::RenderPage ( "publish" );

View File

@@ -0,0 +1,116 @@
<?php
$data=$_POST['form'];
global $RBAC;
require_once PATH_RBAC."model/RbacUsers.php";
$oUser = new RbacUsers();
$aFields=$oUser->getByUsername($data['USR_USERNAME']);
if($aFields['USR_EMAIL']==$data['USR_EMAIL'])
{
require_once ( "classes/class.pmFunctions.php" );
$aSetup = getEmailConfiguration();
// generate a new password
$newPass=G::generate_password();
require_once 'classes/model/Users.php';
$oUser = new Users();
$aData['USR_UID'] = $aFields['USR_UID'];
$aData['USR_PASSWORD'] = md5($newPass);
$RBAC->updateUser($aData,'PROCESSMAKER_ADMIN');
G::LoadClass("system");
$sFrom = ($aSetup['MESS_ACCOUNT'] != '' ? $aSetup['MESS_ACCOUNT'] . ' ' : '') . '<' . $aSetup['MESS_ACCOUNT'] . '>';
$sSubject = G::LoadTranslation('ID_RESET_PASSWORD').' - ProcessMaker' ;
$msg = '<h3>'.G::LoadTranslation('ID_THANKS_USE_SERVICES').'.</h3>';
$msg .='<p>'.G::LoadTranslation('ID_YOUR_USERMANE_IS').' : <strong>'.$aFields['USR_USERNAME'].'</strong></p>';
$msg .='<p>'.G::LoadTranslation('ID_YOUR_PASSWORD_IS').' : <strong>'.$newPass.'</strong></p>';
switch ($aSetup['MESS_ENGINE']) {
case 'MAIL':
$engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_1');
break;
case 'PHPMAILER':
$engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_2');
break;
case 'OPENMAIL':
$engine = G::LoadTranslation('ID_MESS_ENGINE_TYPE_3');
break;
}
$sBody = "
<table style=\"background-color: white; font-family: Arial,Helvetica,sans-serif; color: black; font-size: 11px; text-align: left;\" cellpadding='10' cellspacing='0' width='100%'>
<tbody><tr><td><img id='logo' src='http://".$_SERVER['SERVER_NAME']."/images/processmaker.logo.jpg' /></td></tr>
<tr><td style='font-size: 14px;'>$msg</td></tr>
<tr><td style='vertical-align:middel;'>
<br /><hr><b>This Business Process is powered by ProcessMaker ver. ".System::getVersion().".<b><br />
<a href='http://www.processmaker.com' style='color:#c40000;'>www.processmaker.com</a><br /></td>
</tr></tbody></table>";
G::LoadClass('spool');
$oSpool = new spoolRun();
$oSpool->setConfig( array(
'MESS_ENGINE' => $aSetup['MESS_ENGINE'],
'MESS_SERVER' => $aSetup['MESS_SERVER'],
'MESS_PORT' => $aSetup['MESS_PORT'],
'MESS_ACCOUNT' => $aSetup['MESS_ACCOUNT'],
'MESS_PASSWORD' => $aSetup['MESS_PASSWORD'],
'SMTPAuth' => $aSetup['MESS_RAUTH'],
'SMTPSecure' => $aSetup['SMTPSecure']
));
$oSpool->create(array(
'msg_uid' => '',
'app_uid' => '',
'del_index' => 0,
'app_msg_type' => 'TEST',
'app_msg_subject' => $sSubject,
'app_msg_from' => $sFrom,
'app_msg_to' => $data['USR_EMAIL'],
'app_msg_body' => $sBody,
'app_msg_cc' => '',
'app_msg_bcc' => '',
'app_msg_attach' => '',
'app_msg_template' => '',
'app_msg_status' => 'pending',
'app_msg_attach'=>''
));
$oSpool->sendMail();
G::header ("location: login.html");
}
else
{
$msg=G::LoadTranslation('ID_USER_NOT_REGISTER');
G::SendTemporalMessage ($msg, "warning");
$G_PUBLISH = new Publisher ();
$G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/forgotPassword', '','', SYS_URI . 'login/authentication.php' );
G::RenderPage ( "publish" );
}

View File

@@ -0,0 +1,44 @@
<?php
/**
* main.php Cases List main processor
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2011 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
G::loadClass('configuration');
$oConf = new Configurations;
$oHeadPublisher =& headPublisher::getSingleton();
$oServerConf =& serverConf::getSingleton();
$oHeadPublisher->addExtJsScript('setup/loginSettings', true ); //adding a javascript file .js
$oHeadPublisher->addContent('setup/loginSettings'); //adding a html file .html.
$oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS','');
$defaultOption = isset($oConf->aConfig['login_enableForgotPassword'])? $oConf->aConfig['login_enableForgotPassword']: false;
$defaultLanguaje = isset($oConf->aConfig['login_defaultLanguage'])? $oConf->aConfig['login_defaultLanguage']: 'en';
$oHeadPublisher->assign( 'currentLang', $defaultLanguaje); //current language
$oHeadPublisher->assign( 'currentOption', $defaultOption); //current option
G::RenderPage('publish', 'extJs');

View File

@@ -0,0 +1,37 @@
<?php
$request = isset($_POST['request'])? $_POST['request']: (isset($_GET['request'])? $_GET['request']: null);
switch($request){
case 'getLangList':
$Translations = G::getModel('Translation');
$result = new stdClass();
$result->rows = Array();
$langs = $Translations->getTranslationEnvironments();
foreach($langs as $lang){
$result->rows[] = Array('LAN_ID'=>$lang['LOCALE'], 'LAN_NAME'=>$lang['LANGUAGE']);
}
print(G::json_encode($result));
break;
case 'saveSettings':
G::LoadClass('configuration');
$conf = new Configurations;
$conf->loadConfig($obj, 'ENVIRONMENT_SETTINGS','');
$conf->aConfig['login_enableForgotPassword'] = $_POST['acceptRP'];
$conf->aConfig['login_defaultLanguage'] = $_POST['lang'];
$conf->saveConfig('ENVIRONMENT_SETTINGS', '');
$response->success = true;
if ($_POST['acceptRP'])
$response->enable = true;
else
$response->enable = false;
echo G::json_encode($response);
break;
}