$_POST['field_var'] ?? $selectedVar, 'unify_mode' => $_POST['unify_mode'] ?? $actionMode, 'do_search' => 1, 'flash' => 'csrf', ]); header("Location: {$self}?{$q}"); exit; } $fieldVar = Security::remove_XSS($_POST['field_var'] ?? ''); $fieldInfo = MySpace::duGetUserExtraFieldByVariable($fieldVar); $fieldId = (int) ($fieldInfo['id'] ?? 0); $fieldValue = Security::remove_XSS($_POST['field_value'] ?? ''); $finalUserId = (int) ($_POST['final_user_id'] ?? 0); $unifyMode = ($_POST['unify_mode'] ?? 'deactivate') === 'delete' ? 'delete' : 'deactivate'; $urlId = (int) api_get_current_access_url_id(); if ($fieldId && $finalUserId && $fieldValue !== '') { $finalUserIsInGroup = false; $usersInGroup = MySpace::duGetUsersByFieldValue($fieldId, $urlId, $fieldValue); foreach ($usersInGroup as $uu) { if ((int) $uu['user_id'] === $finalUserId) { $finalUserIsInGroup = true; break; } } if (!$finalUserIsInGroup) { $q = http_build_query([ 'field_var' => $fieldVar, 'unify_mode' => $unifyMode, 'do_search' => 1, 'flash' => 'na', ]); header("Location: {$self}?{$q}"); exit; } Database::query('START TRANSACTION'); $ok = true; foreach ($usersInGroup as $u) { $uid = (int) $u['user_id']; if ($uid === $finalUserId) { continue; } MySpace::duUpdateAllUserRefsList($uid, $finalUserId); $ok = $ok && MySpace::duDisableOrDeleteUser($uid, $unifyMode); } if ($ok) { Database::query('COMMIT'); Security::clear_token(); $q = http_build_query([ 'field_var' => $fieldVar, 'unify_mode' => $unifyMode, 'do_search' => 1, 'flash' => 'ok', 'fv' => $fieldVar.'='.$fieldValue, ]); header("Location: {$self}?{$q}"); exit; } else { Database::query('ROLLBACK'); $q = http_build_query([ 'field_var' => $fieldVar, 'unify_mode' => $unifyMode, 'do_search' => 1, 'flash' => 'err', 'em' => get_lang('OperationFailedRollback'), ]); header("Location: {$self}?{$q}"); exit; } } else { $q = http_build_query([ 'field_var' => $selectedVar, 'unify_mode' => $actionMode, 'do_search' => 1, 'flash' => 'na', ]); header("Location: {$self}?{$q}"); exit; } } $nameTools = get_lang('DuplicatedUsers'); Display::display_header($nameTools); echo '
'.MySpace::getTopMenu().'
'; echo MySpace::getAdminActions(); if (isset($_GET['flash'])) { $flash = $_GET['flash']; if ($flash === 'ok') { $msg = isset($_GET['fv']) ? get_lang('OperationCompleted').' ('.htmlspecialchars($_GET['fv']).')' : get_lang('OperationCompleted'); echo Display::return_message($msg, 'confirm'); } elseif ($flash === 'err') { $msg = isset($_GET['em']) ? htmlspecialchars($_GET['em']) : get_lang('OperationFailedRollback'); echo Display::return_message($msg, 'error'); } elseif ($flash === 'na') { echo Display::return_message(get_lang('NotAllowed'), 'error'); } elseif ($flash === 'csrf') { echo Display::return_message(get_lang('NotAllowed').' (CSRF)', 'error'); } } echo '
'; echo '
'.get_lang('DuplicatedUsers').'
'; echo '
'; echo '
'; echo '
'; echo ' '; echo '
'; echo ' '; echo '
'; echo '
'; echo '
'; echo ' '; echo '
'; echo '
'; echo '
'; echo '
'; echo '
'; echo '
'; echo '
'; echo ' '; echo '
'; echo '
'; echo '
'; echo '
'; echo '
'; if ($doSearch) { $fieldInfo = MySpace::duGetUserExtraFieldByVariable($selectedVar); if (empty($fieldInfo)) { echo Display::return_message(get_lang('ExtraFieldNotFound').': '.htmlspecialchars($selectedVar), 'error'); Display::display_footer(); exit; } $fieldId = (int) $fieldInfo['id']; $urlId = (int) api_get_current_access_url_id(); $dups = MySpace::duGetDuplicateValues($fieldId, $urlId); echo "
"; echo "
".get_lang('SearchResultsFor').": ".htmlspecialchars($selectedVar)."
"; echo "
"; if (empty($dups)) { echo Display::return_message(get_lang('NoDuplicatesFound')); } else { foreach ($dups as $g) { $value = $g['the_value']; $users = MySpace::duGetUsersByFieldValue($fieldId, $urlId, $value); echo "
"; echo "
"; echo " ".htmlspecialchars($selectedVar).": ".htmlspecialchars($value).""; echo " ".count($users).' '.get_lang('Users').""; echo "
"; echo "
"; echo "
"; echo ""; echo ""; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo ""; foreach ($users as $u) { $uid = (int) $u['user_id']; echo ""; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo " "; echo ""; } echo "
".htmlspecialchars($selectedVar)."".get_lang('Username')."".get_lang('FirstName')."".get_lang('LastName')."".get_lang('Email')."".get_lang('UserId')."".get_lang('RegistrationDate')."".get_lang('UnifyToThisUser')."
".htmlspecialchars($value)."".htmlspecialchars($u['username'])."".htmlspecialchars($u['firstname'])."".htmlspecialchars($u['lastname'])."".htmlspecialchars($u['email'])."".$uid."".htmlspecialchars($u['registration_date']).""; echo " "; echo "
"; echo "
"; echo "
"; echo "
"; } } echo "
"; echo "
"; } ?>