e107inc/e107

View on GitHub
e107_admin/updateadmin.php

Summary

Maintainability
A
0 mins
Test Coverage
F
44%
<?php
/*
 * e107 website system
 *
 * Copyright (C) 2008-2009 e107 Inc (e107.org)
 * Released under the terms and conditions of the
 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
 *
 * Administration Area - Update Admin
 *
 *
*/

require_once(__DIR__.'/../class2.php');

// include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE);
e107::lan('core','updateadmin',true);

$e_sub_cat = 'admin_pass';

require_once(e_ADMIN.'auth.php');
// require_once(e_HANDLER.'user_handler.php'); //use e107::getUserSession() instead. 
require_once(e_HANDLER.'validator_class.php');
$userMethods = e107::getUserSession();
$mes = e107::getMessage();
$frm = e107::getForm();

if (isset($_POST['update_settings'])) 
{
    if ($_POST['ac'] == md5(ADMINPWCHANGE)) 
    {
        $userData = array();
        $userData['data'] = array();
        if ($_POST['a_password'] != '' && $_POST['a_password2'] != '' && ($_POST['a_password'] == $_POST['a_password2'])) 
        {
            $userData['data']['user_password'] = $sql->escape($userMethods->HashPassword($_POST['a_password'], $currentUser['user_loginname']), FALSE);
            unset($_POST['a_password']);
            unset($_POST['a_password2']);

            if (vartrue($pref['allowEmailLogin']))
            {
                $new_pass = e107::getParser()->filter($_POST['a_password']);

                $user_prefs = e107::getArrayStorage()->unserialize($currentUser['user_prefs']);
                $user_prefs['email_password'] = $userMethods->HashPassword($new_pass, USEREMAIL);
                $userData['data']['user_prefs'] = e107::getArrayStorage()->serialize($user_prefs);
            }

            $userData['data']['user_pwchange'] = time();
            $userData['WHERE'] = 'user_id='.USERID;
            validatorClass::addFieldTypes($userMethods->userVettingInfo,$userData, $userMethods->otherFieldTypes);
    
            $check = $sql->update('user',$userData);
            if ($check) 
            {
                e107::getLog()->add('ADMINPW_01', '');
                $userMethods->makeUserCookie(array('user_id' => USERID,'user_password' => $userData['data']['user_password']), FALSE);        // Can't handle autologin ATM
                $mes->addSuccess(UDALAN_3." ".ADMINNAME);
                
                e107::getEvent()->trigger('adpword'); //@deprecated
                
                $eventData = array('user_id'=> USERID, 'user_pwchange'=> $userData['data']['user_pwchange']); 
                e107::getEvent()->trigger('admin_password_update',$eventData ); 
                 
                $ns->tablerender(UDALAN_2, $mes->render());
            }
            else 
            {
                $mes->addError(UDALAN_1.' '.LAN_UPDATED_FAILED);
                $ns->tablerender(LAN_UPDATED_FAILED, $mes->render());
            }
        }
        else 
        {
            $mes->addError(UDALAN_1.' '.LAN_UPDATED_FAILED);
            $ns->tablerender(LAN_UPDATED_FAILED, $mes->render());
        }
    }
} 
else 
{
    $text = "
    <form method='post' action='".e_SELF."'>
        <fieldset id='core-updateadmin'>
            <legend class='e-hideme'>".UDALAN_8." ".ADMINNAME."</legend>
            <table class='table adminform'>
                <colgroup>
                    <col class='col-label' />
                    <col class='col-control' />
                </colgroup>
                <tbody>
                    <tr>
                        <td>".UDALAN_4.":</td>
                        <td>
                            ".ADMINNAME."
                        </td>
                    </tr>
                    <tr>
                        <td>".LAN_PASSWORD.":</td>
                        <td>".$frm->password('a_password','',20,'generate=1&strength=1')."
                            
                        </td>
                    </tr>
                    <tr>
                        <td>".UDALAN_6.":</td>
                        <td>
                            <input class='tbox form-control input-text' type='password' name='a_password2' size='60' value='' maxlength='20' />
                        </td>
                    </tr>
                </tbody>
            </table>
            <div class='buttons-bar center'>
                <input type='hidden' name='ac' value='".md5(defset('ADMINPWCHANGE'))."' />".
                $frm->admin_button('update_settings','no-value','update',UDALAN_7)."
                
            </div>
        </fieldset>
    </form>
    
    ";

    $ns->tablerender(UDALAN_8." ".ADMINNAME, $text);
}

require_once(e_ADMIN.'footer.php');