|
@@ -44,23 +44,23 @@ discard block |
|
|
block discarded – undo |
|
44
|
44
|
throw new Exception("Error file '/includes/config/tp.config.php' not exists", 1); |
|
45
|
45
|
} |
|
46
|
46
|
|
|
47
|
|
-if (! isset($SETTINGS['cpassman_dir']) || empty($SETTINGS['cpassman_dir']) === true || $SETTINGS['cpassman_dir'] === '.') { |
|
|
47
|
+if (!isset($SETTINGS['cpassman_dir']) || empty($SETTINGS['cpassman_dir']) === true || $SETTINGS['cpassman_dir'] === '.') { |
|
48
|
48
|
$SETTINGS = []; |
|
49
|
49
|
$SETTINGS['cpassman_dir'] = '..'; |
|
50
|
50
|
} |
|
51
|
51
|
|
|
52
|
|
-require_once $SETTINGS['cpassman_dir'] . '/sources/main.functions.php'; |
|
53
|
|
-require_once $SETTINGS['cpassman_dir'] . '/includes/config/include.php'; |
|
54
|
|
-require_once $SETTINGS['cpassman_dir'] . '/includes/config/settings.php'; |
|
|
52
|
+require_once $SETTINGS['cpassman_dir'].'/sources/main.functions.php'; |
|
|
53
|
+require_once $SETTINGS['cpassman_dir'].'/includes/config/include.php'; |
|
|
54
|
+require_once $SETTINGS['cpassman_dir'].'/includes/config/settings.php'; |
|
55
|
55
|
|
|
56
|
56
|
// If Debug then clean the files |
|
57
|
57
|
if (DEBUGLDAP === true) { |
|
58
|
|
- define('DEBUGLDAPFILE', $SETTINGS['path_to_files_folder'] . '/ldap.debug.txt'); |
|
|
58
|
+ define('DEBUGLDAPFILE', $SETTINGS['path_to_files_folder'].'/ldap.debug.txt'); |
|
59
|
59
|
$fp = fopen(DEBUGLDAPFILE, 'w'); |
|
60
|
60
|
fclose($fp); |
|
61
|
61
|
} |
|
62
|
62
|
if (DEBUGDUO === true) { |
|
63
|
|
- define('DEBUGDUOFILE', $SETTINGS['path_to_files_folder'] . '/duo.debug.txt'); |
|
|
63
|
+ define('DEBUGDUOFILE', $SETTINGS['path_to_files_folder'].'/duo.debug.txt'); |
|
64
|
64
|
$fp = fopen(DEBUGDUOFILE, 'w'); |
|
65
|
65
|
fclose($fp); |
|
66
|
66
|
} |
|
@@ -76,7 +76,7 @@ discard block |
|
|
block discarded – undo |
|
76
|
76
|
if (defined('DB_PASSWD_CLEAR') === false) { |
|
77
|
77
|
define('DB_PASSWD_CLEAR', defuseReturnDecrypted(DB_PASSWD, $SETTINGS)); |
|
78
|
78
|
} |
|
79
|
|
-require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Database/Meekrodb/db.class.php'; |
|
|
79
|
+require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Database/Meekrodb/db.class.php'; |
|
80
|
80
|
if (defined('DB_PASSWD_CLEAR') === false) { |
|
81
|
81
|
define('DB_PASSWD_CLEAR', defuseReturnDecrypted(DB_PASSWD, $SETTINGS)); |
|
82
|
82
|
} |
|
@@ -93,7 +93,7 @@ discard block |
|
|
block discarded – undo |
|
93
|
93
|
// This step creates the DUO request encrypted key |
|
94
|
94
|
|
|
95
|
95
|
// load library |
|
96
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Authentication/DuoSecurity/Duo.php'; |
|
|
96
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Authentication/DuoSecurity/Duo.php'; |
|
97
|
97
|
$sig_request = Duo::signRequest( |
|
98
|
98
|
$SETTINGS['IKEY'], |
|
99
|
99
|
$SETTINGS['SKEY'], |
|
@@ -104,16 +104,16 @@ discard block |
|
|
block discarded – undo |
|
104
|
104
|
debugIdentify( |
|
105
|
105
|
DEBUGDUO, |
|
106
|
106
|
DEBUGDUOFILE, |
|
107
|
|
- "\n\n-----\n\n" . |
|
108
|
|
- 'sig request : ' . $post_login . "\n" . |
|
109
|
|
- 'resp : ' . $sig_request . "\n" |
|
|
107
|
+ "\n\n-----\n\n". |
|
|
108
|
+ 'sig request : '.$post_login."\n". |
|
|
109
|
+ 'resp : '.$sig_request."\n" |
|
110
|
110
|
); |
|
111
|
111
|
} |
|
112
|
112
|
|
|
113
|
113
|
// load csrfprotector |
|
114
|
|
- $csrfp_config = include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/csrfp/libs/csrfp.config.php'; |
|
|
114
|
+ $csrfp_config = include_once $SETTINGS['cpassman_dir'].'/includes/libraries/csrfp/libs/csrfp.config.php'; |
|
115
|
115
|
// return result |
|
116
|
|
- echo '[{"sig_request" : "' . $sig_request . '" , "csrfp_token" : "' . $csrfp_config['CSRFP_TOKEN'] . '" , "csrfp_key" : "' . filter_var($_COOKIE[$csrfp_config['CSRFP_TOKEN']], FILTER_SANITIZE_STRING) . '"}]'; |
|
|
116
|
+ echo '[{"sig_request" : "'.$sig_request.'" , "csrfp_token" : "'.$csrfp_config['CSRFP_TOKEN'].'" , "csrfp_key" : "'.filter_var($_COOKIE[$csrfp_config['CSRFP_TOKEN']], FILTER_SANITIZE_STRING).'"}]'; |
|
117
|
117
|
// --- |
|
118
|
118
|
// --- |
|
119
|
119
|
} elseif ($post_type === 'identify_duo_user_check') { |
|
@@ -123,7 +123,7 @@ discard block |
|
|
block discarded – undo |
|
123
|
123
|
//-------- |
|
124
|
124
|
|
|
125
|
125
|
// load library |
|
126
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Authentication/DuoSecurity/Duo.php'; |
|
|
126
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Authentication/DuoSecurity/Duo.php'; |
|
127
|
127
|
$authenticated_username = Duo::verifyResponse( |
|
128
|
128
|
$SETTINGS['duo_ikey'], |
|
129
|
129
|
$SETTINGS['duo_skey'], |
|
@@ -138,7 +138,7 @@ discard block |
|
|
block discarded – undo |
|
138
|
138
|
// is user in Teampass? |
|
139
|
139
|
DB::queryfirstrow( |
|
140
|
140
|
'SELECT id |
|
141
|
|
- FROM ' . prefixTable('users') . ' |
|
|
141
|
+ FROM ' . prefixTable('users').' |
|
142
|
142
|
WHERE login = %s', |
|
143
|
143
|
$post_login |
|
144
|
144
|
); |
|
@@ -148,9 +148,9 @@ discard block |
|
|
block discarded – undo |
|
148
|
148
|
} |
|
149
|
149
|
} |
|
150
|
150
|
|
|
151
|
|
- echo '[{"authenticated_username" : "' . $authenticated_username . '"}]'; |
|
|
151
|
+ echo '[{"authenticated_username" : "'.$authenticated_username.'"}]'; |
|
152
|
152
|
} else { |
|
153
|
|
- echo '[{"authenticated_username" : "' . $authenticated_username . '"}]'; |
|
|
153
|
+ echo '[{"authenticated_username" : "'.$authenticated_username.'"}]'; |
|
154
|
154
|
} |
|
155
|
155
|
// --- |
|
156
|
156
|
// --- |
|
@@ -163,7 +163,7 @@ discard block |
|
|
block discarded – undo |
|
163
|
163
|
defineComplexity(); |
|
164
|
164
|
|
|
165
|
165
|
// Load superGlobals |
|
166
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
|
166
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
167
|
167
|
$superGlobal = new protect\SuperGlobal\SuperGlobal(); |
|
168
|
168
|
// Prepare GET variables |
|
169
|
169
|
$sessionPwdAttempts = $superGlobal->get('pwd_attempts', 'SESSION'); |
|
@@ -245,19 +245,19 @@ discard block |
|
|
block discarded – undo |
|
245
|
245
|
if (findTpConfigFile() === false) { |
|
246
|
246
|
throw new Exception("Error file '/includes/config/tp.config.php' not exists", 1); |
|
247
|
247
|
} |
|
248
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/config/settings.php'; |
|
249
|
|
- include_once $SETTINGS['cpassman_dir'] . '/sources/main.functions.php'; |
|
250
|
|
- include_once $SETTINGS['cpassman_dir'] . '/sources/SplClassLoader.php'; |
|
|
248
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/config/settings.php'; |
|
|
249
|
+ include_once $SETTINGS['cpassman_dir'].'/sources/main.functions.php'; |
|
|
250
|
+ include_once $SETTINGS['cpassman_dir'].'/sources/SplClassLoader.php'; |
|
251
|
251
|
|
|
252
|
252
|
header('Content-type: text/html; charset=utf-8'); |
|
253
|
253
|
error_reporting(E_ERROR); |
|
254
|
254
|
|
|
255
|
255
|
// Load AntiXSS |
|
256
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/voku/helper/AntiXSS.php'; |
|
|
256
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/voku/helper/AntiXSS.php'; |
|
257
|
257
|
$antiXss = new voku\helper\AntiXSS(); |
|
258
|
258
|
|
|
259
|
259
|
// Load superGlobals |
|
260
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
|
260
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
261
|
261
|
$superGlobal = new protect\SuperGlobal\SuperGlobal(); |
|
262
|
262
|
|
|
263
|
263
|
// Prepare GET variables |
|
@@ -271,7 +271,7 @@ discard block |
|
|
block discarded – undo |
|
271
|
271
|
$server['PHP_AUTH_PW'] = $superGlobal->get('PHP_AUTH_PW', 'SERVER'); |
|
272
|
272
|
|
|
273
|
273
|
// connect to the server |
|
274
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Database/Meekrodb/db.class.php'; |
|
|
274
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Database/Meekrodb/db.class.php'; |
|
275
|
275
|
DB::$host = DB_HOST; |
|
276
|
276
|
DB::$user = DB_USER; |
|
277
|
277
|
DB::$password = defined('DB_PASSWD_CLEAR') === false ? defuseReturnDecrypted(DB_PASSWD, $SETTINGS) : DB_PASSWD_CLEAR; |
|
@@ -279,7 +279,7 @@ discard block |
|
|
block discarded – undo |
|
279
|
279
|
DB::$port = DB_PORT; |
|
280
|
280
|
DB::$encoding = DB_ENCODING; |
|
281
|
281
|
// User's language loading |
|
282
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/language/' . $sessionUserLanguage . '.php'; |
|
|
282
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/language/'.$sessionUserLanguage.'.php'; |
|
283
|
283
|
|
|
284
|
284
|
// decrypt and retreive data in JSON format |
|
285
|
285
|
if (empty($sessionKey) === true) { |
|
@@ -530,7 +530,7 @@ discard block |
|
|
block discarded – undo |
|
530
|
530
|
if (count($superGlobal->get('user_roles', 'SESSION')) > 0) { |
|
531
|
531
|
$rolesList = DB::query( |
|
532
|
532
|
'SELECT id, title, complexity |
|
533
|
|
- FROM ' . prefixTable('roles_title') . ' |
|
|
533
|
+ FROM ' . prefixTable('roles_title').' |
|
534
|
534
|
WHERE id IN %li', |
|
535
|
535
|
$superGlobal->get('user_roles', 'SESSION') |
|
536
|
536
|
); |
|
@@ -553,7 +553,7 @@ discard block |
|
|
block discarded – undo |
|
553
|
553
|
|
|
554
|
554
|
// build complete array of roles |
|
555
|
555
|
$superGlobal->put('arr_roles_full', [], 'SESSION'); |
|
556
|
|
- $rows = DB::query('SELECT id, title FROM ' . prefixTable('roles_title') . ' ORDER BY title ASC'); |
|
|
556
|
+ $rows = DB::query('SELECT id, title FROM '.prefixTable('roles_title').' ORDER BY title ASC'); |
|
557
|
557
|
foreach ($rows as $record) { |
|
558
|
558
|
$superGlobal->put( |
|
559
|
559
|
$record['id'], |
|
@@ -625,10 +625,10 @@ discard block |
|
|
block discarded – undo |
|
625
|
625
|
$superGlobal->put('latest_items_tab', [], 'SESSION'); |
|
626
|
626
|
$superGlobal->put('nb_roles', 0, 'SESSION'); |
|
627
|
627
|
foreach ($superGlobal->get('latest_items', 'SESSION') as $item) { |
|
628
|
|
- if (! empty($item)) { |
|
|
628
|
+ if (!empty($item)) { |
|
629
|
629
|
$dataLastItems = DB::queryFirstRow( |
|
630
|
630
|
'SELECT id,label,id_tree |
|
631
|
|
- FROM ' . prefixTable('items') . ' |
|
|
631
|
+ FROM ' . prefixTable('items').' |
|
632
|
632
|
WHERE id=%i', |
|
633
|
633
|
$item |
|
634
|
634
|
); |
|
@@ -637,7 +637,7 @@ discard block |
|
|
block discarded – undo |
|
637
|
637
|
[ |
|
638
|
638
|
'id' => $item, |
|
639
|
639
|
'label' => $dataLastItems['label'], |
|
640
|
|
- 'url' => 'index.php?page=items&group=' . $dataLastItems['id_tree'] . '&id=' . $item, |
|
|
640
|
+ 'url' => 'index.php?page=items&group='.$dataLastItems['id_tree'].'&id='.$item, |
|
641
|
641
|
], |
|
642
|
642
|
'SESSION', |
|
643
|
643
|
'latest_items_tab' |
|
@@ -653,12 +653,12 @@ discard block |
|
|
block discarded – undo |
|
653
|
653
|
) { |
|
654
|
654
|
// get all Admin users |
|
655
|
655
|
$receivers = ''; |
|
656
|
|
- $rows = DB::query('SELECT email FROM ' . prefixTable('users') . " WHERE admin = %i and email != ''", 1); |
|
|
656
|
+ $rows = DB::query('SELECT email FROM '.prefixTable('users')." WHERE admin = %i and email != ''", 1); |
|
657
|
657
|
foreach ($rows as $record) { |
|
658
|
658
|
if (empty($receivers)) { |
|
659
|
659
|
$receivers = $record['email']; |
|
660
|
660
|
} else { |
|
661
|
|
- $receivers = ',' . $record['email']; |
|
|
661
|
+ $receivers = ','.$record['email']; |
|
662
|
662
|
} |
|
663
|
663
|
} |
|
664
|
664
|
// Add email to table |
|
@@ -674,7 +674,7 @@ discard block |
|
|
block discarded – undo |
|
674
|
674
|
'#tp_time#', |
|
675
|
675
|
], |
|
676
|
676
|
[ |
|
677
|
|
- ' ' . $superGlobal->get('login', 'SESSION') . ' (IP: ' . getClientIpServer() . ')', |
|
|
677
|
+ ' '.$superGlobal->get('login', 'SESSION').' (IP: '.getClientIpServer().')', |
|
678
|
678
|
date($SETTINGS['date_format'], (int) $superGlobal->get('last_connection', 'SESSION')), |
|
679
|
679
|
date($SETTINGS['time_format'], (int) $superGlobal->get('last_connection', 'SESSION')), |
|
680
|
680
|
], |
|
@@ -828,7 +828,7 @@ discard block |
|
|
block discarded – undo |
|
828
|
828
|
{ |
|
829
|
829
|
$rows = DB::query( |
|
830
|
830
|
'SELECT date |
|
831
|
|
- FROM ' . prefixTable('log_system') . " |
|
|
831
|
+ FROM ' . prefixTable('log_system')." |
|
832
|
832
|
WHERE field_1 = %s |
|
833
|
833
|
AND type = 'failed_auth' |
|
834
|
834
|
AND label = 'password_is_not_correct' |
|
@@ -842,7 +842,7 @@ discard block |
|
|
block discarded – undo |
|
842
|
842
|
foreach ($rows as $record) { |
|
843
|
843
|
array_push( |
|
844
|
844
|
$arrAttempts, |
|
845
|
|
- date($SETTINGS['date_format'] . ' ' . $SETTINGS['time_format'], (int) $record['date']) |
|
|
845
|
+ date($SETTINGS['date_format'].' '.$SETTINGS['time_format'], (int) $record['date']) |
|
846
|
846
|
); |
|
847
|
847
|
} |
|
848
|
848
|
} |
|
@@ -896,7 +896,7 @@ discard block |
|
|
block discarded – undo |
|
896
|
896
|
$ldapConnection |
|
897
|
897
|
) : bool |
|
898
|
898
|
{ |
|
899
|
|
- include_once $SETTINGS['cpassman_dir'] . '/sources/main.functions.php'; |
|
|
899
|
+ include_once $SETTINGS['cpassman_dir'].'/sources/main.functions.php'; |
|
900
|
900
|
|
|
901
|
901
|
if ((int) $userInfoDisabled === 1) { |
|
902
|
902
|
return false; |
|
@@ -1099,44 +1099,44 @@ discard block |
|
|
block discarded – undo |
|
1099
|
1099
|
function authenticateThroughAD(string $username, array $userInfo, string $passwordClear, array $SETTINGS): array |
|
1100
|
1100
|
{ |
|
1101
|
1101
|
// Load expected libraries |
|
1102
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Illuminate/Contracts/Auth/Authenticatable.php'; |
|
1103
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Tightenco/Collect/Support/Traits/EnumeratesValues.php'; |
|
1104
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Tightenco/Collect/Support/Traits/Macroable.php'; |
|
1105
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Tightenco/Collect/Support/helpers.php'; |
|
1106
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Tightenco/Collect/Support/Arr.php'; |
|
1107
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Tightenco/Collect/Contracts/Support/Jsonable.php'; |
|
1108
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Tightenco/Collect/Contracts/Support/Arrayable.php'; |
|
1109
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Tightenco/Collect/Support/Enumerable.php'; |
|
1110
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Tightenco/Collect/Support/Collection.php'; |
|
1111
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/CarbonTimeZone.php'; |
|
1112
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Units.php'; |
|
1113
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Week.php'; |
|
1114
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Timestamp.php'; |
|
1115
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Test.php'; |
|
1116
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/ObjectInitialisation.php'; |
|
1117
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Serialization.php'; |
|
1118
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/IntervalRounding.php'; |
|
1119
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Rounding.php'; |
|
1120
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Localization.php'; |
|
1121
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Options.php'; |
|
1122
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Cast.php'; |
|
1123
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Mutability.php'; |
|
1124
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Modifiers.php'; |
|
1125
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Mixin.php'; |
|
1126
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Macro.php'; |
|
1127
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Difference.php'; |
|
1128
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Creator.php'; |
|
1129
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Converter.php'; |
|
1130
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Comparison.php'; |
|
1131
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Boundaries.php'; |
|
1132
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Traits/Date.php'; |
|
1133
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/CarbonInterface.php'; |
|
1134
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Carbon/Carbon.php'; |
|
1135
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/LdapRecord/DetectsErrors.php'; |
|
1136
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/LdapRecord/Connection.php'; |
|
1137
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/LdapRecord/LdapInterface.php'; |
|
1138
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/LdapRecord/HandlesConnection.php'; |
|
1139
|
|
- require_once $SETTINGS['cpassman_dir'] . '/includes/libraries/LdapRecord/Ldap.php'; |
|
|
1102
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Illuminate/Contracts/Auth/Authenticatable.php'; |
|
|
1103
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Tightenco/Collect/Support/Traits/EnumeratesValues.php'; |
|
|
1104
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Tightenco/Collect/Support/Traits/Macroable.php'; |
|
|
1105
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Tightenco/Collect/Support/helpers.php'; |
|
|
1106
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Tightenco/Collect/Support/Arr.php'; |
|
|
1107
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Tightenco/Collect/Contracts/Support/Jsonable.php'; |
|
|
1108
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Tightenco/Collect/Contracts/Support/Arrayable.php'; |
|
|
1109
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Tightenco/Collect/Support/Enumerable.php'; |
|
|
1110
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Tightenco/Collect/Support/Collection.php'; |
|
|
1111
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/CarbonTimeZone.php'; |
|
|
1112
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Units.php'; |
|
|
1113
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Week.php'; |
|
|
1114
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Timestamp.php'; |
|
|
1115
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Test.php'; |
|
|
1116
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/ObjectInitialisation.php'; |
|
|
1117
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Serialization.php'; |
|
|
1118
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/IntervalRounding.php'; |
|
|
1119
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Rounding.php'; |
|
|
1120
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Localization.php'; |
|
|
1121
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Options.php'; |
|
|
1122
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Cast.php'; |
|
|
1123
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Mutability.php'; |
|
|
1124
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Modifiers.php'; |
|
|
1125
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Mixin.php'; |
|
|
1126
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Macro.php'; |
|
|
1127
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Difference.php'; |
|
|
1128
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Creator.php'; |
|
|
1129
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Converter.php'; |
|
|
1130
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Comparison.php'; |
|
|
1131
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Boundaries.php'; |
|
|
1132
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Traits/Date.php'; |
|
|
1133
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/CarbonInterface.php'; |
|
|
1134
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/Carbon/Carbon.php'; |
|
|
1135
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/LdapRecord/DetectsErrors.php'; |
|
|
1136
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/LdapRecord/Connection.php'; |
|
|
1137
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/LdapRecord/LdapInterface.php'; |
|
|
1138
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/LdapRecord/HandlesConnection.php'; |
|
|
1139
|
+ require_once $SETTINGS['cpassman_dir'].'/includes/libraries/LdapRecord/Ldap.php'; |
|
1140
|
1140
|
$ad = new SplClassLoader('LdapRecord', '../includes/libraries'); |
|
1141
|
1141
|
$ad->register(); |
|
1142
|
1142
|
|
|
@@ -1172,7 +1172,7 @@ discard block |
|
|
block discarded – undo |
|
1172
|
1172
|
// Get user info from AD |
|
1173
|
1173
|
// We want to isolate attribute ldap_user_attribute |
|
1174
|
1174
|
$userADInfos = $connection->query() |
|
1175
|
|
- ->where((isset($SETTINGS['ldap_user_attribute']) ===true && empty($SETTINGS['ldap_user_attribute']) === false) ? $SETTINGS['ldap_user_attribute'] : 'distinguishedname', '=', $username) |
|
|
1175
|
+ ->where((isset($SETTINGS['ldap_user_attribute']) === true && empty($SETTINGS['ldap_user_attribute']) === false) ? $SETTINGS['ldap_user_attribute'] : 'distinguishedname', '=', $username) |
|
1176
|
1176
|
->firstOrFail(); |
|
1177
|
1177
|
|
|
1178
|
1178
|
// Check shadowexpire attribute - if === 1 then user disabled |
|
@@ -1204,7 +1204,7 @@ discard block |
|
|
block discarded – undo |
|
1204
|
1204
|
$error = $e->getDetailedError(); |
|
1205
|
1205
|
return [ |
|
1206
|
1206
|
'error' => true, |
|
1207
|
|
- 'message' => langHdl('error').' : '.$error->getErrorCode().' - '.$error->getErrorMessage(). '<br>'.$error->getDiagnosticMessage(), |
|
|
1207
|
+ 'message' => langHdl('error').' : '.$error->getErrorCode().' - '.$error->getErrorMessage().'<br>'.$error->getDiagnosticMessage(), |
|
1208
|
1208
|
|
|
1209
|
1209
|
]; |
|
1210
|
1210
|
} |
|
@@ -1218,7 +1218,7 @@ discard block |
|
|
block discarded – undo |
|
1218
|
1218
|
} |
|
1219
|
1219
|
|
|
1220
|
1220
|
// load passwordLib library |
|
1221
|
|
- $pwdlib = new SplClassLoader('PasswordLib', $SETTINGS['cpassman_dir'] . '/includes/libraries'); |
|
|
1221
|
+ $pwdlib = new SplClassLoader('PasswordLib', $SETTINGS['cpassman_dir'].'/includes/libraries'); |
|
1222
|
1222
|
$pwdlib->register(); |
|
1223
|
1223
|
$pwdlib = new PasswordLib\PasswordLib(); |
|
1224
|
1224
|
$hashedPassword = $pwdlib->createPasswordHash($passwordClear); |
|
@@ -1277,7 +1277,7 @@ discard block |
|
|
block discarded – undo |
|
1277
|
1277
|
function yubicoMFACheck($dataReceived, string $userInfo, array $SETTINGS): array |
|
1278
|
1278
|
{ |
|
1279
|
1279
|
// Load superGlobals |
|
1280
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
|
1280
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
1281
|
1281
|
$superGlobal = new protect\SuperGlobal\SuperGlobal(); |
|
1282
|
1282
|
$sessionAdmin = $superGlobal->get('user_admin', 'SESSION'); |
|
1283
|
1283
|
$sessionUrl = $superGlobal->get('initial_url', 'SESSION'); |
|
@@ -1316,7 +1316,7 @@ discard block |
|
|
block discarded – undo |
|
1316
|
1316
|
} |
|
1317
|
1317
|
|
|
1318
|
1318
|
// Now check yubico validity |
|
1319
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Authentication/Yubico/Yubico.php'; |
|
|
1319
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Authentication/Yubico/Yubico.php'; |
|
1320
|
1320
|
$yubi = new Auth_Yubico($yubico_user_id, $yubico_user_key); |
|
1321
|
1321
|
$auth = $yubi->verify($yubico_key); |
|
1322
|
1322
|
//, null, null, null, 60 |
|
@@ -1368,7 +1368,7 @@ discard block |
|
|
block discarded – undo |
|
1368
|
1368
|
'gestionnaire' => '0', |
|
1369
|
1369
|
'can_manage_all_users' => '0', |
|
1370
|
1370
|
'personal_folder' => $SETTINGS['enable_pf_feature'] === '1' ? '1' : '0', |
|
1371
|
|
- 'fonction_id' => (empty($retLDAP['user_info_from_ad'][0]['commonGroupsLdapVsTeampass']) === false ? $retLDAP['user_info_from_ad'][0]['commonGroupsLdapVsTeampass'] . ';' : '') . (isset($SETTINGS['ldap_new_user_role']) === true ? $SETTINGS['ldap_new_user_role'] : '0'), |
|
|
1371
|
+ 'fonction_id' => (empty($retLDAP['user_info_from_ad'][0]['commonGroupsLdapVsTeampass']) === false ? $retLDAP['user_info_from_ad'][0]['commonGroupsLdapVsTeampass'].';' : '').(isset($SETTINGS['ldap_new_user_role']) === true ? $SETTINGS['ldap_new_user_role'] : '0'), |
|
1372
|
1372
|
'groupes_interdits' => '', |
|
1373
|
1373
|
'groupes_visibles' => '', |
|
1374
|
1374
|
'last_pw_change' => (int) time(), |
|
@@ -1393,7 +1393,7 @@ discard block |
|
|
block discarded – undo |
|
1393
|
1393
|
] |
|
1394
|
1394
|
); |
|
1395
|
1395
|
// Rebuild tree |
|
1396
|
|
- $tree = new SplClassLoader('Tree\NestedTree', $SETTINGS['cpassman_dir'] . '/includes/libraries'); |
|
|
1396
|
+ $tree = new SplClassLoader('Tree\NestedTree', $SETTINGS['cpassman_dir'].'/includes/libraries'); |
|
1397
|
1397
|
$tree->register(); |
|
1398
|
1398
|
$tree = new Tree\NestedTree\NestedTree(prefixTable('nested_tree'), 'id', 'parent_id', 'title'); |
|
1399
|
1399
|
$tree->rebuild(); |
|
@@ -1424,13 +1424,13 @@ discard block |
|
|
block discarded – undo |
|
1424
|
1424
|
&& empty($dataReceived['GACode']) === false |
|
1425
|
1425
|
) { |
|
1426
|
1426
|
// Load superGlobals |
|
1427
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
|
1427
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
1428
|
1428
|
$superGlobal = new protect\SuperGlobal\SuperGlobal(); |
|
1429
|
1429
|
$sessionAdmin = $superGlobal->get('user_admin', 'SESSION'); |
|
1430
|
1430
|
$sessionUrl = $superGlobal->get('initial_url', 'SESSION'); |
|
1431
|
1431
|
$sessionPwdAttempts = $superGlobal->get('pwd_attempts', 'SESSION'); |
|
1432
|
1432
|
// load library |
|
1433
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/Authentication/TwoFactorAuth/TwoFactorAuth.php'; |
|
|
1433
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Authentication/TwoFactorAuth/TwoFactorAuth.php'; |
|
1434
|
1434
|
// create new instance |
|
1435
|
1435
|
$tfa = new Authentication\TwoFactorAuth\TwoFactorAuth($SETTINGS['ga_website_name']); |
|
1436
|
1436
|
// Init |
|
@@ -1452,7 +1452,7 @@ discard block |
|
|
block discarded – undo |
|
1452
|
1452
|
$mfaMessage = langHdl('ga_flash_qr_and_login'); |
|
1453
|
1453
|
// generate new QR |
|
1454
|
1454
|
$new_2fa_qr = $tfa->getQRCodeImageAsDataUri( |
|
1455
|
|
- 'Teampass - ' . $username, |
|
|
1455
|
+ 'Teampass - '.$username, |
|
1456
|
1456
|
$userInfo['ga'] |
|
1457
|
1457
|
); |
|
1458
|
1458
|
// clear temporary code from DB |
|
@@ -1465,7 +1465,7 @@ discard block |
|
|
block discarded – undo |
|
1465
|
1465
|
$userInfo['id'] |
|
1466
|
1466
|
); |
|
1467
|
1467
|
$firstTime = [ |
|
1468
|
|
- 'value' => '<img src="' . $new_2fa_qr . '">', |
|
|
1468
|
+ 'value' => '<img src="'.$new_2fa_qr.'">', |
|
1469
|
1469
|
'user_admin' => isset($sessionAdmin) ? (int) $sessionAdmin : '', |
|
1470
|
1470
|
'initial_url' => isset($sessionUrl) === true ? $sessionUrl : '', |
|
1471
|
1471
|
'pwd_attempts' => (int) $sessionPwdAttempts, |
|
@@ -1516,8 +1516,8 @@ discard block |
|
|
block discarded – undo |
|
1516
|
1516
|
// Set to false |
|
1517
|
1517
|
$userPasswordVerified = false; |
|
1518
|
1518
|
// load passwordLib library |
|
1519
|
|
- include_once $SETTINGS['cpassman_dir'] . '/sources/SplClassLoader.php'; |
|
1520
|
|
- $pwdlib = new SplClassLoader('PasswordLib', $SETTINGS['cpassman_dir'] . '/includes/libraries'); |
|
|
1519
|
+ include_once $SETTINGS['cpassman_dir'].'/sources/SplClassLoader.php'; |
|
|
1520
|
+ $pwdlib = new SplClassLoader('PasswordLib', $SETTINGS['cpassman_dir'].'/includes/libraries'); |
|
1521
|
1521
|
$pwdlib->register(); |
|
1522
|
1522
|
$pwdlib = new PasswordLib\PasswordLib(); |
|
1523
|
1523
|
// Check if old encryption used |
|
@@ -1648,7 +1648,7 @@ discard block |
|
|
block discarded – undo |
|
1648
|
1648
|
// Brute force management |
|
1649
|
1649
|
if ($sessionPwdAttempts > 3) { |
|
1650
|
1650
|
// Load superGlobals |
|
1651
|
|
- include_once $SETTINGS['cpassman_dir'] . '/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
|
1651
|
+ include_once $SETTINGS['cpassman_dir'].'/includes/libraries/protect/SuperGlobal/SuperGlobal.php'; |
|
1652
|
1652
|
$superGlobal = new protect\SuperGlobal\SuperGlobal(); |
|
1653
|
1653
|
$superGlobal->put('next_possible_pwd_attempts', time() + 10, 'SESSION'); |
|
1654
|
1654
|
$superGlobal->put('pwd_attempts', 0, 'SESSION'); |
|
@@ -1697,7 +1697,7 @@ discard block |
|
|
block discarded – undo |
|
1697
|
1697
|
// Check if user exists |
|
1698
|
1698
|
$userInfo = DB::queryFirstRow( |
|
1699
|
1699
|
'SELECT * |
|
1700
|
|
- FROM ' . prefixTable('users') . ' WHERE login=%s', |
|
|
1700
|
+ FROM ' . prefixTable('users').' WHERE login=%s', |
|
1701
|
1701
|
$username |
|
1702
|
1702
|
); |
|
1703
|
1703
|
|