Skip to content

Commit 4d65d4e

Browse files
committed
Admin: Add multiple-selection enabling/disabling of users
1 parent ba32004 commit 4d65d4e

File tree

4 files changed

+97
-12
lines changed

4 files changed

+97
-12
lines changed

main/admin/user_list.php

Lines changed: 64 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ function get_number_of_users()
439439
* @param int Number of users to get
440440
* @param int Column to sort on
441441
* @param string Order (ASC,DESC)
442-
*
442+
* @return array Users list
443443
* @see SortableTable#get_table_data($from)
444444
*/
445445
function get_user_data($from, $number_of_items, $column, $direction)
@@ -512,6 +512,8 @@ function email_filter($email)
512512
* Returns a mailto-link.
513513
*
514514
* @param string $email An email-address
515+
* @param array $params Deprecated
516+
* @param array $row
515517
*
516518
* @return string HTML-code with a mailto-link
517519
*/
@@ -528,6 +530,7 @@ function user_filter($name, $params, $row)
528530
* @param array Row of elements to alter
529531
*
530532
* @return string Some HTML-code with modify-buttons
533+
* @throws Exception
531534
*/
532535
function modify_filter($user_id, $url_params, $row)
533536
{
@@ -808,9 +811,7 @@ function active_filter($active, $params, $row)
808811

809812
/**
810813
* Instead of displaying the integer of the status, we give a translation for the status.
811-
*
812814
* @param int $status
813-
*
814815
* @return string translation
815816
*
816817
* @version march 2008
@@ -887,17 +888,17 @@ function status_filter($status)
887888
case 'delete':
888889
if (api_is_platform_admin()) {
889890
$number_of_selected_users = count($_POST['id']);
890-
$number_of_deleted_users = 0;
891+
$number_of_affected_users = 0;
891892
if (is_array($_POST['id'])) {
892893
foreach ($_POST['id'] as $index => $user_id) {
893894
if ($user_id != $_user['user_id']) {
894895
if (UserManager::delete_user($user_id)) {
895-
$number_of_deleted_users++;
896+
$number_of_affected_users++;
896897
}
897898
}
898899
}
899900
}
900-
if ($number_of_selected_users == $number_of_deleted_users) {
901+
if ($number_of_selected_users == $number_of_affected_users) {
901902
$message = Display::return_message(
902903
get_lang('SelectedUsersDeleted'),
903904
'confirmation'
@@ -910,6 +911,58 @@ function status_filter($status)
910911
}
911912
}
912913
break;
914+
case 'disable':
915+
if (api_is_platform_admin()) {
916+
$number_of_selected_users = count($_POST['id']);
917+
$number_of_affected_users = 0;
918+
if (is_array($_POST['id'])) {
919+
foreach ($_POST['id'] as $index => $user_id) {
920+
if ($user_id != $_user['user_id']) {
921+
if (UserManager::disable($user_id)) {
922+
$number_of_affected_users++;
923+
}
924+
}
925+
}
926+
}
927+
if ($number_of_selected_users == $number_of_affected_users) {
928+
$message = Display::return_message(
929+
get_lang('SelectedUsersDisabled'),
930+
'confirmation'
931+
);
932+
} else {
933+
$message = Display::return_message(
934+
get_lang('SomeUsersNotDisabled'),
935+
'error'
936+
);
937+
}
938+
}
939+
break;
940+
case 'enable':
941+
if (api_is_platform_admin()) {
942+
$number_of_selected_users = count($_POST['id']);
943+
$number_of_affected_users = 0;
944+
if (is_array($_POST['id'])) {
945+
foreach ($_POST['id'] as $index => $user_id) {
946+
if ($user_id != $_user['user_id']) {
947+
if (UserManager::enable($user_id)) {
948+
$number_of_affected_users++;
949+
}
950+
}
951+
}
952+
}
953+
if ($number_of_selected_users == $number_of_affected_users) {
954+
$message = Display::return_message(
955+
get_lang('SelectedUsersEnabled'),
956+
'confirmation'
957+
);
958+
} else {
959+
$message = Display::return_message(
960+
get_lang('SomeUsersNotEnabled'),
961+
'error'
962+
);
963+
}
964+
}
965+
break;
913966
}
914967
Security::clear_token();
915968
}
@@ -1053,13 +1106,15 @@ class="btn btn-default advanced_options" onclick="display_advanced_search_form()
10531106
$table->set_column_filter(10, 'modify_filter');
10541107

10551108
// Only show empty actions bar if delete users has been blocked
1109+
$actionsList = [];
10561110
if (api_is_platform_admin() &&
10571111
!api_get_configuration_value('deny_delete_users')
10581112
) {
1059-
$table->set_form_actions(['delete' => get_lang('DeleteFromPlatform')]);
1060-
} else {
1061-
$table->set_form_actions(['none' => get_lang('NoActionAvailable')]);
1113+
$actionsList['delete'] = get_lang('DeleteFromPlatform');
10621114
}
1115+
$actionsList['disable'] = get_lang('Disable');
1116+
$actionsList['enable'] = get_lang('Enable');
1117+
$table->set_form_actions($actionsList);
10631118

10641119
$table_result = $table->return_table();
10651120
$extra_search_options = '';

main/lang/english/trad4all.inc.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1776,7 +1776,7 @@
17761776
$UserUnlocked = "User unlocked";
17771777
$CannotDeleteUser = "You cannot delete this user";
17781778
$SelectedUsersDeleted = "Selected users deleted";
1779-
$SomeUsersNotDeleted = "Some users has not been deleted";
1779+
$SomeUsersNotDeleted = "Some of the selected users have not been deleted. We recommend you confirm which, by using the advanced search.";
17801780
$ExternalAuthentication = "External authentification";
17811781
$RegistrationDate = "Registration date";
17821782
$UserUpdated = "User updated";
@@ -8146,4 +8146,16 @@
81468146
$RedirectToTheDocumentList = "Redirect to the document list";
81478147
$TheExerciseAutoLaunchSettingIsONStudentsWillBeRedirectToTheExerciseList = "The exercises auto-launch feature configuration is enabled. Learners will be automatically redirected to exercise list.";
81488148
$PostedExpirationDate = "Posted deadline for sending the work (Visible to the learner)";
8149+
$BossAlertMsgSentToUserXTitle = "Follow up message about student %s";
8150+
$BossAlertUserXSentMessageToUserYWithLinkZ = "Hi,<br/><br/>
8151+
8152+
User %s sent a follow up message about student %s.<br/><br/>
8153+
8154+
The message can be seen here %s";
8155+
$include_services = "Include services";
8156+
$culqi_enable = "Enable culqi";
8157+
$SelectedUsersDisabled = "The selected users have all been disabled";
8158+
$SomeUsersNotDisabled = "Some of the selected users have not been disabled. We recommend you confirm which, by using the advanced search.";
8159+
$SelectedUsersEnabled = "The selected users were all enabled.";
8160+
$SomeUsersNotEnabled = "Some of the selected users have not been enabled. We recommend you confirm which, by using the advanced search.";
81498161
?>

main/lang/french/trad4all.inc.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8084,9 +8084,15 @@
80848084
$TheExerciseAutoLaunchSettingIsONStudentsWillBeRedirectToTheExerciseList = "La fonctionnalité d'auto-démarrage des exercices est activée. Les apprenants seront automatiquement redirigés vers la liste des exercices.";
80858085
$PostedExpirationDate = "Date limite affichée d'envoi du travail (visible par l'apprenant)";
80868086
$BossAlertMsgSentToUserXTitle = "Message de suivi concernant l'apprenant %s";
8087-
$BossAlertUserXSentMessageToUserYWithLinkZ = "Bonjour,
8087+
$BossAlertUserXSentMessageToUserYWithLinkZ = "Bonjour,<br/><br/>
80888088

8089-
L'utilisateur %s a envoyé un message de suivi concernant l'apprenant %s.
8089+
L'utilisateur %s a envoyé un message de suivi concernant l'apprenant %s.<br/><br/>
80908090

80918091
Le message est visible sur %s";
8092+
$include_services = "Inclure les services";
8093+
$culqi_enable = "Activé culqi";
8094+
$SelectedUsersDisabled = "Les utilisateurs sélectionnés ont tous été désactivés.";
8095+
$SomeUsersNotDisabled = "Certains des utilisateurs sélectionnés n'ont pas été supprimés. Nous vous recommandons de confirmer lesquels en utilisant la recherche avancée.";
8096+
$SelectedUsersEnabled = "Tous les utilisateurs sélectionnés ont été activés.";
8097+
$SomeUsersNotEnabled = "Certains des utilisateurs sélectionnés n'ont pas été activés. Nous vous recommandons de confirmer lesquels en utilisant la recherche avancée.";
80928098
?>

main/lang/spanish/trad4all.inc.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8170,4 +8170,16 @@
81708170
$RedirectToTheDocumentList = "Redirigir a la lista de documentos";
81718171
$TheExerciseAutoLaunchSettingIsONStudentsWillBeRedirectToTheExerciseList = "La funcionalidad de lanzamiento automático de ejercicios está activada. Los estudiantes serán automáticamente redirigidos a la lista de ejercicios.";
81728172
$PostedExpirationDate = "Fecha límite publicada para enviar el trabajo (visible para el alumno)";
8173+
$BossAlertMsgSentToUserXTitle = "Mensaje de seguimiento sobre alumno %s";
8174+
$BossAlertUserXSentMessageToUserYWithLinkZ = "Hola,<br/><br/>
8175+
8176+
El usuario %s ha enviado un mensaje de seguimiento sobre el alumno %s.<br/><br/>
8177+
8178+
El mensaje se puede ver en %s";
8179+
$include_services = "Incluir los servicios";
8180+
$culqi_enable = "Activar Culqi";
8181+
$SelectedUsersDisabled = "Todos los usuarios seleccionados han sido desactivado.";
8182+
$SomeUsersNotDisabled = "Algunos de los usuarios seleccionados no han sido desactivado. Le recomendamos una verificación adicional a través de la búsqueda avanzada.";
8183+
$SelectedUsersEnabled = "Todos los usuarios seleccionados han sido activado.";
8184+
$SomeUsersNotEnabled = "Algunos de los usuarios seleccionados no han sido activado. Le recomendamos una verificación adicional a través de la búsqueda avanzada.";
81738185
?>

0 commit comments

Comments
 (0)