File size: 3,129 Bytes
07c3cdd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php

use ProcessMaker\Plugins\PluginRegistry;

require_once 'classes/model/Users.php';
$oUser = new Users();
$aUser = $oUser->load($_SESSION['USER_LOGGED']);
global $RBAC;
$aData['USR_UID']      = $aUser['USR_UID'];
$aData['USR_USERNAME'] = $aUser['USR_USERNAME'];
$aData['USR_PASSWORD'] = Bootstrap::hashPassword($_POST['form']['USR_PASSWORD']);
$aData['USR_FIRSTNAME']   = $aUser['USR_FIRSTNAME'];
$aData['USR_LASTNAME']    = $aUser['USR_LASTNAME'];
$aData['USR_EMAIL']       = $aUser['USR_EMAIL'];
$aData['USR_DUE_DATE']    = $aUser['USR_DUE_DATE'];
$aData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s');
$RBAC->updateUser($aData, $aUser['USR_ROLE']);
$aData['USR_COUNTRY']     = $aUser['USR_COUNTRY'];
$aData['USR_CITY']        = $aUser['USR_CITY'];
$aData['USR_LOCATION']    = $aUser['USR_LOCATION'];
$aData['USR_ADDRESS']     = $aUser['USR_ADDRESS'];
$aData['USR_PHONE']       = $aUser['USR_PHONE'];
$aData['USR_ZIP_CODE']    = $aUser['USR_ZIP_CODE'];
$aData['USR_POSITION']    = $aUser['USR_POSITION'];
$oUser->update($aData);
require_once 'classes/model/UsersProperties.php';
$oUserProperty = new UsersProperties();
$aUserProperty = $oUserProperty->load($_SESSION['USER_LOGGED']);
$aHistory      = unserialize($aUserProperty['USR_PASSWORD_HISTORY']);

if (!is_array($aHistory)) {
    $aHistory = array();
}

if (!defined('PPP_PASSWORD_HISTORY')) {
    define('PPP_PASSWORD_HISTORY', 0);
}

if (PPP_PASSWORD_HISTORY > 0) {
    if (count($aHistory) >= PPP_PASSWORD_HISTORY) {
        array_shift($aHistory);
    }
    $aHistory[] = $_POST['form']['USR_PASSWORD'];
}

$aUserProperty['USR_LAST_UPDATE_DATE'] = date('Y-m-d H:i:s');
$aUserProperty['USR_LOGGED_NEXT_TIME'] = 0;
$aUserProperty['USR_PASSWORD_HISTORY'] = serialize($aHistory);
$oUserProperty->update($aUserProperty);

if (class_exists('redirectDetail')) {
    //falta validar...
    if (isset($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'])) {
        $userRole = $RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'];
    }
    $oPluginRegistry = PluginRegistry::loadSingleton();
    //$oPluginRegistry->showArrays();
    $aRedirectLogin = $oPluginRegistry->getRedirectLogins();
    if (isset($aRedirectLogin)) {
        if (is_array($aRedirectLogin)) {
            /** @var \ProcessMaker\Plugins\Interfaces\RedirectDetail $detail */
            foreach ($aRedirectLogin as $detail) {
                if (isset($detail->sPathMethod)) {
                    if ($detail->equalRoleCodeTo($userRole)) {
                        G::header(
                            'location: /sys' . SYS_TEMP . '/' . SYS_LANG .
                            '/' . SYS_SKIN . '/' . $detail->getPathMethod()
                        );
                        die;
                    }
                }
            }
        }
    }
}
//end plugin

if (isset($frm['USER_LANG'])) {
    if ($frm['USER_LANG'] != '') {
        $lang = $frm['USER_LANG'];
    }
} else {
    if (defined('SYS_LANG')) {
        $lang = SYS_LANG;
    } else {
        $lang = 'en';
    }
}
$sLocation = $oUserProperty->redirectTo($_SESSION['USER_LOGGED'], $lang);
G::header('Location: ' . $sLocation);
die;