@@ -67,7 +67,7 @@ discard block |
||
67 | 67 | if ($checkUserAccess->checkSession() === false || $checkUserAccess->userAccessPage('profile') === false) { |
68 | 68 | // Not allowed page |
69 | 69 | $session->set('system-error_code', ERR_NOT_ALLOWED); |
70 | - include $SETTINGS['cpassman_dir'] . '/error.php'; |
|
70 | + include $SETTINGS['cpassman_dir'].'/error.php'; |
|
71 | 71 | exit; |
72 | 72 | } |
73 | 73 | |
@@ -99,25 +99,25 @@ discard block |
||
99 | 99 | // prepare list of timezones |
100 | 100 | $zones = timezone_list(); |
101 | 101 | // prepare list of languages |
102 | -$languages = DB::query('SELECT label, name FROM ' . prefixTable('languages') . ' ORDER BY label ASC'); |
|
102 | +$languages = DB::query('SELECT label, name FROM '.prefixTable('languages').' ORDER BY label ASC'); |
|
103 | 103 | // Do some stats |
104 | -DB::query('SELECT id_item FROM ' . prefixTable('log_items') . ' WHERE action = "at_creation" AND id_user = "' . $session->get('user-id') . '"'); |
|
104 | +DB::query('SELECT id_item FROM '.prefixTable('log_items').' WHERE action = "at_creation" AND id_user = "'.$session->get('user-id').'"'); |
|
105 | 105 | $userItemsNumber = DB::count(); |
106 | -DB::query('SELECT id_item FROM ' . prefixTable('log_items') . ' WHERE action = "at_modification" AND id_user = "' . $session->get('user-id') . '"'); |
|
106 | +DB::query('SELECT id_item FROM '.prefixTable('log_items').' WHERE action = "at_modification" AND id_user = "'.$session->get('user-id').'"'); |
|
107 | 107 | $userModificationNumber = DB::count(); |
108 | -DB::query('SELECT id_item FROM ' . prefixTable('log_items') . ' WHERE action = "at_shown" AND id_user = "' . $session->get('user-id') . '"'); |
|
108 | +DB::query('SELECT id_item FROM '.prefixTable('log_items').' WHERE action = "at_shown" AND id_user = "'.$session->get('user-id').'"'); |
|
109 | 109 | $userSeenItemsNumber = DB::count(); |
110 | -DB::query('SELECT id_item FROM ' . prefixTable('log_items') . ' WHERE action = "at_password_shown" AND id_user = "' . $session->get('user-id') . '"'); |
|
110 | +DB::query('SELECT id_item FROM '.prefixTable('log_items').' WHERE action = "at_password_shown" AND id_user = "'.$session->get('user-id').'"'); |
|
111 | 111 | $userSeenPasswordsNumber = DB::count(); |
112 | 112 | $userInfo = DB::queryFirstRow( |
113 | 113 | 'SELECT avatar, last_pw_change |
114 | - FROM ' . prefixTable('users') . ' |
|
115 | - WHERE id = "' . $session->get('user-id') . '"' |
|
114 | + FROM ' . prefixTable('users').' |
|
115 | + WHERE id = "' . $session->get('user-id').'"' |
|
116 | 116 | ); |
117 | 117 | if (empty($userInfo['avatar']) === true) { |
118 | - $avatar = $SETTINGS['cpassman_url'] . '/includes/images/photo.jpg'; |
|
118 | + $avatar = $SETTINGS['cpassman_url'].'/includes/images/photo.jpg'; |
|
119 | 119 | } else { |
120 | - $avatar = $SETTINGS['cpassman_url'] . '/includes/avatars/' . $userInfo['avatar']; |
|
120 | + $avatar = $SETTINGS['cpassman_url'].'/includes/avatars/'.$userInfo['avatar']; |
|
121 | 121 | } |
122 | 122 | |
123 | 123 | // Get Groups name |
@@ -125,8 +125,8 @@ discard block |
||
125 | 125 | foreach ($session->get('user-roles_array') as $role) { |
126 | 126 | $tmp = DB::queryFirstRow( |
127 | 127 | 'SELECT title |
128 | - FROM ' . prefixTable('roles_title') . ' |
|
129 | - WHERE id = "' . $role . '"' |
|
128 | + FROM ' . prefixTable('roles_title').' |
|
129 | + WHERE id = "' . $role.'"' |
|
130 | 130 | ); |
131 | 131 | if ($tmp !== null) { |
132 | 132 | array_push($userParOfGroups, $tmp['title']); |
@@ -170,7 +170,7 @@ discard block |
||
170 | 170 | <h3 id="profile-username" class="text-center"> |
171 | 171 | <?php |
172 | 172 | if (null !== $session->get('user-name') && empty($session->get('user-name')) === false) { |
173 | - echo $session->get('user-name') . ' ' . $session->get('user-lastname'); |
|
173 | + echo $session->get('user-name').' '.$session->get('user-lastname'); |
|
174 | 174 | } else { |
175 | 175 | echo $session->get('user-login'); |
176 | 176 | } |
@@ -238,7 +238,7 @@ discard block |
||
238 | 238 | } else { |
239 | 239 | echo date('d/m/Y', (int) $session->get('user-last_connection')); |
240 | 240 | } |
241 | - echo ' ' . $lang->get('at') . ' '; |
|
241 | + echo ' '.$lang->get('at').' '; |
|
242 | 242 | if (isset($SETTINGS['time_format']) === true) { |
243 | 243 | echo date($SETTINGS['time_format'], (int) $session->get('user-last_connection')); |
244 | 244 | } else { |
@@ -248,7 +248,7 @@ discard block |
||
248 | 248 | </a> |
249 | 249 | </li> |
250 | 250 | <?php |
251 | - if (null !== $session->get('user-last_pw_change') && ! empty($session->get('user-last_pw_change') === true)) { |
|
251 | + if (null !== $session->get('user-last_pw_change') && !empty($session->get('user-last_pw_change') === true)) { |
|
252 | 252 | // Handle last password change string |
253 | 253 | if ($session->has('user-last_pw_change') && null !== $session->get('user-last_pw_change')) { |
254 | 254 | if (isset($SETTINGS['date_format']) === true) { |
@@ -268,12 +268,12 @@ discard block |
||
268 | 268 | ) { |
269 | 269 | $numDaysBeforePwExpiration = ''; |
270 | 270 | } else { |
271 | - $numDaysBeforePwExpiration = $LANG['index_pw_expiration'] . ' ' . $session->get('user-num_days_before_exp') . ' ' . $LANG['days'] . '.'; |
|
271 | + $numDaysBeforePwExpiration = $LANG['index_pw_expiration'].' '.$session->get('user-num_days_before_exp').' '.$LANG['days'].'.'; |
|
272 | 272 | } |
273 | 273 | echo ' |
274 | 274 | <li class="list-group-item"> |
275 | - <b><i class="fas fa-calendar-alt fa-fw fa-lg mr-2"></i>' . $lang->get('index_last_pw_change') . '</b> |
|
276 | - <a class="float-right">' . $last_pw_change . ' ' . $numDaysBeforePwExpiration . '</a> |
|
275 | + <b><i class="fas fa-calendar-alt fa-fw fa-lg mr-2"></i>' . $lang->get('index_last_pw_change').'</b> |
|
276 | + <a class="float-right">' . $last_pw_change.' '.$numDaysBeforePwExpiration.'</a> |
|
277 | 277 | </li>'; |
278 | 278 | } |
279 | 279 | ?> |
@@ -293,7 +293,7 @@ discard block |
||
293 | 293 | if (isset($SETTINGS['api']) === true && (int) $SETTINGS['api'] === 1) { |
294 | 294 | echo ' |
295 | 295 | <li class="list-group-item"> |
296 | - <b><i class="fas fa-paper-plane fa-fw fa-lg mr-2"></i>' . $lang->get('user_profile_api_key') . '</b> |
|
296 | + <b><i class="fas fa-paper-plane fa-fw fa-lg mr-2"></i>' . $lang->get('user_profile_api_key').'</b> |
|
297 | 297 | <button class="btn btn-sm btn-primary float-right" id="copy-api-key"><i class="fa-regular fa-copy pointer"></i></button> |
298 | 298 | <a class="float-right mr-2" id="profile-user-api-token">', |
299 | 299 | null !== $session->get('user-api_key') ? $session->get('user-api_key') : '', |
@@ -330,7 +330,7 @@ discard block |
||
330 | 330 | <ul class=""> |
331 | 331 | <?php |
332 | 332 | foreach ($session->get('user-unsuccessfull_login_attempts_list') as $entry) { |
333 | - echo '<li class="">' . $entry . '</li>'; |
|
333 | + echo '<li class="">'.$entry.'</li>'; |
|
334 | 334 | } ?> |
335 | 335 | </ul> |
336 | 336 | </div> |
@@ -343,12 +343,12 @@ discard block |
||
343 | 343 | <?php |
344 | 344 | $rows = DB::query( |
345 | 345 | 'SELECT label AS labelAction, date, null |
346 | - FROM ' . prefixTable('log_system') . ' |
|
346 | + FROM ' . prefixTable('log_system').' |
|
347 | 347 | WHERE qui = %i |
348 | 348 | UNION |
349 | 349 | SELECT l.action, l.date, i.label AS itemLabel |
350 | - FROM ' . prefixTable('log_items') . ' AS l |
|
351 | - INNER JOIN ' . prefixTable('items') . ' AS i ON (l.id_item = i.id) |
|
350 | + FROM ' . prefixTable('log_items').' AS l |
|
351 | + INNER JOIN ' . prefixTable('items').' AS i ON (l.id_item = i.id) |
|
352 | 352 | WHERE l.id_user = %i AND l.action IN ("at_access") |
353 | 353 | ORDER BY date DESC |
354 | 354 | LIMIT 0, 40', |
@@ -362,9 +362,9 @@ discard block |
||
362 | 362 | $text = $lang->get($record['labelAction']); |
363 | 363 | } |
364 | 364 | if (empty($record['NULL']) === false) { |
365 | - $text .= ' ' . $lang->get('for') . ' <span class="font-weight-light">' . addslashes($record['NULL']) . '</span>'; |
|
365 | + $text .= ' '.$lang->get('for').' <span class="font-weight-light">'.addslashes($record['NULL']).'</span>'; |
|
366 | 366 | } |
367 | - echo '<li class="list-group-item">' . date($SETTINGS['date_format'] . ' ' . $SETTINGS['time_format'], (int) $record['date']) . ' - ' . $text . '</li>'; |
|
367 | + echo '<li class="list-group-item">'.date($SETTINGS['date_format'].' '.$SETTINGS['time_format'], (int) $record['date']).' - '.$text.'</li>'; |
|
368 | 368 | } |
369 | 369 | ?> |
370 | 370 | </ul> |
@@ -396,13 +396,13 @@ discard block |
||
396 | 396 | </div> |
397 | 397 | |
398 | 398 | <div class="form-group"> |
399 | - <label class="col-sm-10 control-label"><?php echo $lang->get('timezone_selection');?></label> |
|
399 | + <label class="col-sm-10 control-label"><?php echo $lang->get('timezone_selection'); ?></label> |
|
400 | 400 | <div class="col-sm-10"> |
401 | 401 | <select class="form-control" id="profile-user-timezone"> |
402 | 402 | <?php foreach ($zones as $key => $zone): ?> |
403 | 403 | <option value="<?php echo $key; ?>"<?php |
404 | 404 | if ($session->has('user-timezone')) |
405 | - if($session->get('user-timezone') === $key) |
|
405 | + if ($session->get('user-timezone') === $key) |
|
406 | 406 | echo ' selected'; |
407 | 407 | elseif ($session->get('user-timezone') === 'not_defined') |
408 | 408 | if (isset($SETTINGS['timezone']) && $SETTINGS['timezone'] === $key) |
@@ -418,10 +418,10 @@ discard block |
||
418 | 418 | <select class="form-control" id="profile-user-language"> |
419 | 419 | <?php |
420 | 420 | foreach ($languages as $language) { |
421 | - echo '<option value="' . $language['name'] . '"', |
|
421 | + echo '<option value="'.$language['name'].'"', |
|
422 | 422 | strtolower($session->get('user-language')) === strtolower($language['name']) ? |
423 | 423 | ' selected="selected"' : '', |
424 | - '>' . $language['label'] . '</option>'; |
|
424 | + '>'.$language['label'].'</option>'; |
|
425 | 425 | } |
426 | 426 | ?> |
427 | 427 | </select> |
@@ -433,11 +433,11 @@ discard block |
||
433 | 433 | <div class="col-sm-10"> |
434 | 434 | <select class="form-control" id="profile-user-treeloadstrategy"> |
435 | 435 | |
436 | - <option value="sequential" <?php echo $session->has('user-tree_load_strategy') && $session->get('user-tree_load_strategy') && null !== $session->get('user-tree_load_strategy') && $session->get('user-tree_load_strategy') === 'sequential' ? ' selected' : '';?>> |
|
436 | + <option value="sequential" <?php echo $session->has('user-tree_load_strategy') && $session->get('user-tree_load_strategy') && null !== $session->get('user-tree_load_strategy') && $session->get('user-tree_load_strategy') === 'sequential' ? ' selected' : ''; ?>> |
|
437 | 437 | <?php echo $lang->get('sequential'); ?> |
438 | 438 | </option> |
439 | 439 | |
440 | - <option value="full" <?php echo $session->has('user-tree_load_strategy') && $session->get('user-tree_load_strategy') && null !== $session->get('user-tree_load_strategy') && $session->get('user-tree_load_strategy') === 'full' ? ' selected' : '';?>> |
|
440 | + <option value="full" <?php echo $session->has('user-tree_load_strategy') && $session->get('user-tree_load_strategy') && null !== $session->get('user-tree_load_strategy') && $session->get('user-tree_load_strategy') === 'full' ? ' selected' : ''; ?>> |
|
441 | 441 | <?php echo $lang->get('full'); ?> |
442 | 442 | </option> |
443 | 443 | </select> |
@@ -449,11 +449,11 @@ discard block |
||
449 | 449 | <div class="col-sm-10"> |
450 | 450 | <select class="form-control" id="profile-user-split_view_mode"> |
451 | 451 | |
452 | - <option value="0" <?php echo $session->has('user-split_view_mode') && $session->get('user-split_view_mode') && null !== $session->get('user-split_view_mode') && $session->get('user-split_view_mode') === 0 ? 'selected' : '';?>> |
|
452 | + <option value="0" <?php echo $session->has('user-split_view_mode') && $session->get('user-split_view_mode') && null !== $session->get('user-split_view_mode') && $session->get('user-split_view_mode') === 0 ? 'selected' : ''; ?>> |
|
453 | 453 | <?php echo $lang->get('no'); ?> |
454 | 454 | </option> |
455 | 455 | |
456 | - <option value="1" <?php echo $session->has('user-split_view_mode') && $session->get('user-split_view_mode') && null !== $session->get('user-split_view_mode') && (int) $session->get('user-split_view_mode') === 1 ? 'selected' : '';?>> |
|
456 | + <option value="1" <?php echo $session->has('user-split_view_mode') && $session->get('user-split_view_mode') && null !== $session->get('user-split_view_mode') && (int) $session->get('user-split_view_mode') === 1 ? 'selected' : ''; ?>> |
|
457 | 457 | <?php echo $lang->get('yes'); ?> |
458 | 458 | </option> |
459 | 459 | </select> |
@@ -488,7 +488,7 @@ discard block |
||
488 | 488 | <button type="button" class="btn btn-warning float-right ml-2" id="profile-avatar-file"><?php echo $lang->get('upload_new_avatar'); ?></button> |
489 | 489 | <?php |
490 | 490 | if (isset($SETTINGS['api']) === true && (int) $SETTINGS['api'] === 1) { |
491 | - echo '<button type="button" class="btn btn-warning float-right" id="profile-button-api_token">' . $lang->get('generate_api_token') . '</button>'; |
|
491 | + echo '<button type="button" class="btn btn-warning float-right" id="profile-button-api_token">'.$lang->get('generate_api_token').'</button>'; |
|
492 | 492 | } |
493 | 493 | ?> |
494 | 494 | <div id="profile-avatar-file-container" class="hidden"></div> |
@@ -401,12 +401,13 @@ |
||
401 | 401 | <select class="form-control" id="profile-user-timezone"> |
402 | 402 | <?php foreach ($zones as $key => $zone): ?> |
403 | 403 | <option value="<?php echo $key; ?>"<?php |
404 | - if ($session->has('user-timezone')) |
|
405 | - if($session->get('user-timezone') === $key) |
|
404 | + if ($session->has('user-timezone')) { |
|
405 | + if($session->get('user-timezone') === $key) |
|
406 | 406 | echo ' selected'; |
407 | - elseif ($session->get('user-timezone') === 'not_defined') |
|
408 | - if (isset($SETTINGS['timezone']) && $SETTINGS['timezone'] === $key) |
|
407 | + } elseif ($session->get('user-timezone') === 'not_defined') { |
|
408 | + if (isset($SETTINGS['timezone']) && $SETTINGS['timezone'] === $key) |
|
409 | 409 | echo ' selected'; |
410 | + } |
|
410 | 411 | ?>><?php echo $zone; ?></option> |
411 | 412 | <?php endforeach; ?> |
412 | 413 | </select> |
@@ -77,7 +77,7 @@ discard block |
||
77 | 77 | ) { |
78 | 78 | // Not allowed page |
79 | 79 | $session->set('system-error_code', ERR_NOT_ALLOWED); |
80 | - include $SETTINGS['cpassman_dir'] . '/error.php'; |
|
80 | + include $SETTINGS['cpassman_dir'].'/error.php'; |
|
81 | 81 | exit; |
82 | 82 | } |
83 | 83 | |
@@ -129,7 +129,7 @@ discard block |
||
129 | 129 | if (isset($order['column']) && preg_match('#^(asc|desc)$#i', $order['dir'])) { |
130 | 130 | $columnIndex = filter_var($order['column'], FILTER_SANITIZE_NUMBER_INT); |
131 | 131 | $dir = filter_var($order['dir'], FILTER_SANITIZE_FULL_SPECIAL_CHARS); |
132 | - $sOrder .= $aColumns[$columnIndex] . ' ' . $dir . ', '; |
|
132 | + $sOrder .= $aColumns[$columnIndex].' '.$dir.', '; |
|
133 | 133 | } |
134 | 134 | |
135 | 135 | $sOrder = substr_replace($sOrder, '', -2); |
@@ -153,15 +153,15 @@ discard block |
||
153 | 153 | |
154 | 154 | if ($letter !== '' && $letter !== 'None') { |
155 | 155 | $sWhere .= ' AND ('; |
156 | - $sWhere .= $aColumns[1] . " LIKE '" . $letter . "%' OR "; |
|
157 | - $sWhere .= $aColumns[2] . " LIKE '" . $letter . "%' OR "; |
|
158 | - $sWhere .= $aColumns[3] . " LIKE '" . $letter . "%' "; |
|
156 | + $sWhere .= $aColumns[1]." LIKE '".$letter."%' OR "; |
|
157 | + $sWhere .= $aColumns[2]." LIKE '".$letter."%' OR "; |
|
158 | + $sWhere .= $aColumns[3]." LIKE '".$letter."%' "; |
|
159 | 159 | $sWhere .= ')'; |
160 | 160 | } elseif ($searchValue !== '') { |
161 | 161 | $sWhere .= ' AND ('; |
162 | - $sWhere .= $aColumns[1] . " LIKE '" . $searchValue . "%' OR "; |
|
163 | - $sWhere .= $aColumns[2] . " LIKE '" . $searchValue . "%' OR "; |
|
164 | - $sWhere .= $aColumns[3] . " LIKE '" . $searchValue . "%' "; |
|
162 | + $sWhere .= $aColumns[1]." LIKE '".$searchValue."%' OR "; |
|
163 | + $sWhere .= $aColumns[2]." LIKE '".$searchValue."%' OR "; |
|
164 | + $sWhere .= $aColumns[3]." LIKE '".$searchValue."%' "; |
|
165 | 165 | $sWhere .= ')'; |
166 | 166 | } |
167 | 167 | |
@@ -254,31 +254,29 @@ discard block |
||
254 | 254 | |
255 | 255 | // Get some infos about user |
256 | 256 | $userDisplayInfos = |
257 | - (isset($userDate['date']) ? '<i class=\"fas fa-calendar-day infotip text-info ml-2\" title=\"'.$lang->get('creation_date').': '.date($SETTINGS['date_format'] . ' ' . $SETTINGS['time_format'], (int) $userDate['date']).'\"></i>' : '') |
|
257 | + (isset($userDate['date']) ? '<i class=\"fas fa-calendar-day infotip text-info ml-2\" title=\"'.$lang->get('creation_date').': '.date($SETTINGS['date_format'].' '.$SETTINGS['time_format'], (int) $userDate['date']).'\"></i>' : '') |
|
258 | 258 | . |
259 | 259 | ((int) $record['last_connexion'] > 0 ? '<i class=\"far fa-clock infotip text-info ml-2\" title=\"'.$lang->get('index_last_seen').": ". |
260 | - date($SETTINGS['date_format'] . ' ' . $SETTINGS['time_format'], (int) $record['last_connexion']).'\"></i>' : '') |
|
260 | + date($SETTINGS['date_format'].' '.$SETTINGS['time_format'], (int) $record['last_connexion']).'\"></i>' : '') |
|
261 | 261 | . |
262 | 262 | ((int) $record['user_ip'] > 0 ? '<i class=\"fas fa-street-view infotip text-info ml-1\" title=\"'.$lang->get('ip').": ".($record['user_ip']).'\"></i>' : '') |
263 | 263 | . |
264 | 264 | ($record['auth_type'] === 'ldap' ? '<i class=\"far fa-address-book infotip text-warning ml-1\" title=\"'.$lang->get('managed_through_ad').'\"></i>' : '') |
265 | 265 | . |
266 | 266 | ((in_array($record['id'], [OTV_USER_ID, TP_USER_ID, SSH_USER_ID, API_USER_ID]) === false && (int) $record['admin'] !== 1 && ((int) $SETTINGS['duo'] === 1 || (int) $SETTINGS['google_authentication'] === 1)) ? |
267 | - ((int) $record['mfa_enabled'] === 1 ? '' : '<i class=\"fa-solid fa-fingerprint infotip ml-1\" style=\"color:Tomato\" title=\"'.$lang->get('mfa_disabled_for_user').'\"></i>') : |
|
268 | - '' |
|
267 | + ((int) $record['mfa_enabled'] === 1 ? '' : '<i class=\"fa-solid fa-fingerprint infotip ml-1\" style=\"color:Tomato\" title=\"'.$lang->get('mfa_disabled_for_user').'\"></i>') : '' |
|
269 | 268 | ); |
270 | 269 | if ($request->query->filter('display_warnings', '', FILTER_VALIDATE_BOOLEAN) === true) { |
271 | 270 | $userDisplayInfos .= '<br>'. |
272 | 271 | ((in_array($record['id'], [OTV_USER_ID, TP_USER_ID, SSH_USER_ID, API_USER_ID]) === false && (int) $record['admin'] !== 1 && is_null($record['keys_recovery_time']) === true) ? |
273 | - '<i class=\"fa-solid fa-download infotip ml-1\" style=\"color:Tomato\" title=\"'.$lang->get('recovery_keys_not_downloaded').'\"></i>' : |
|
274 | - '' |
|
272 | + '<i class=\"fa-solid fa-download infotip ml-1\" style=\"color:Tomato\" title=\"'.$lang->get('recovery_keys_not_downloaded').'\"></i>' : '' |
|
275 | 273 | ). |
276 | 274 | ((in_array($record['id'], [OTV_USER_ID, TP_USER_ID, SSH_USER_ID, API_USER_ID]) === false && (int) $record['pw_passwordlib'] === 1) ? '<i class=\"fa-solid fa-person-walking-luggage infotip ml-1\" style=\"color:Tomato\" title=\"Old password encryption. Shall login to initialize.\"></i>' : ''); |
277 | 275 | } |
278 | 276 | |
279 | 277 | $sOutput .= '["<span data-id=\"'.$record['id'].'\" data-fullname=\"'. |
280 | - (empty($record['name']) === false ? htmlentities($record['name'], ENT_QUOTES|ENT_SUBSTITUTE|ENT_DISALLOWED) : '').' '. |
|
281 | - (empty($record['lastname']) === false ? htmlentities($record['lastname'], ENT_QUOTES|ENT_SUBSTITUTE|ENT_DISALLOWED) : ''). |
|
278 | + (empty($record['name']) === false ? htmlentities($record['name'], ENT_QUOTES | ENT_SUBSTITUTE | ENT_DISALLOWED) : '').' '. |
|
279 | + (empty($record['lastname']) === false ? htmlentities($record['lastname'], ENT_QUOTES | ENT_SUBSTITUTE | ENT_DISALLOWED) : ''). |
|
282 | 280 | '\" data-auth-type=\"'.$record['auth_type'].'\" data-special=\"'.$record['special'].'\" data-mfa-enabled=\"'.$record['mfa_enabled'].'\" data-otp-provided=\"'.(isset($record['otp_provided']) === true ? $record['otp_provided'] : '').'\"></span>", '; |
283 | 281 | //col2 |
284 | 282 | $sOutput .= '"'. |