From 0b0532140e0ac37b4303607379153b63ae9ae009 Mon Sep 17 00:00:00 2001 From: Hosteroid Date: Mon, 20 Oct 2025 17:40:43 +0300 Subject: [PATCH] Add bulk transfer functionality for domains and groups Introduces bulk transfer for domains and groups, available only to admins. Refactors admin checks to use isAdmin(), adds user selection for transfers, and updates views to include transfer buttons and modals for domain transfers. --- app/Controllers/DomainController.php | 8 +++ .../NotificationGroupController.php | 2 +- app/Views/domains/index.php | 63 +++++++++++++++++++ app/Views/groups/index.php | 4 +- 4 files changed, 74 insertions(+), 3 deletions(-) diff --git a/app/Controllers/DomainController.php b/app/Controllers/DomainController.php index a7cc60c..cb8be91 100644 --- a/app/Controllers/DomainController.php +++ b/app/Controllers/DomainController.php @@ -64,10 +64,18 @@ class DomainController extends Controller // Format domains for display $formattedDomains = \App\Helpers\DomainHelper::formatMultiple($result['domains']); + // Get users for transfer functionality (admin only) + $users = []; + if (\Core\Auth::isAdmin()) { + $userModel = new \App\Models\User(); + $users = $userModel->all(); + } + $this->view('domains/index', [ 'domains' => $formattedDomains, 'groups' => $groups, 'allTags' => $allTags, + 'users' => $users, 'filters' => [ 'search' => $search, 'status' => $status, diff --git a/app/Controllers/NotificationGroupController.php b/app/Controllers/NotificationGroupController.php index baba30f..3d0cfb4 100644 --- a/app/Controllers/NotificationGroupController.php +++ b/app/Controllers/NotificationGroupController.php @@ -33,7 +33,7 @@ class NotificationGroupController extends Controller // Get users for transfer functionality (admin only) $users = []; - if (\Core\Auth::user()['role'] === 'admin') { + if (\Core\Auth::isAdmin()) { $userModel = new \App\Models\User(); $users = $userModel->all(); } diff --git a/app/Views/domains/index.php b/app/Views/domains/index.php index a8d6867..29fd5cd 100644 --- a/app/Views/domains/index.php +++ b/app/Views/domains/index.php @@ -132,6 +132,13 @@ $currentFilters = $filters ?? ['search' => '', 'status' => '', 'group' => '', 's Refresh Selected + + + +
+ +
+ + + + `; + + document.body.appendChild(modal); +} + // Update bulk assign form with selected IDs document.getElementById('bulk-assign-form')?.addEventListener('submit', function(e) { const ids = getSelectedIds(); diff --git a/app/Views/groups/index.php b/app/Views/groups/index.php index 46b548b..dfd50be 100644 --- a/app/Views/groups/index.php +++ b/app/Views/groups/index.php @@ -37,7 +37,7 @@ ob_start();
- +