From 3d8a1cf53fa69047e082ab17e865f85937dc31bf Mon Sep 17 00:00:00 2001 From: 1day2die Date: Sun, 7 May 2023 22:36:50 +0200 Subject: [PATCH] notify groups (check validation needed) --- app/Http/Controllers/Admin/UserController.php | 20 ++++++++++++++----- .../views/admin/users/notifications.blade.php | 12 +++++++++-- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 2edc3b7e..4956e565 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -272,7 +272,9 @@ class UserController extends Controller { $this->checkPermission(self::NOTIFY_PERMISSION); - return view('admin.users.notifications'); + $roles = Role::all(); + + return view('admin.users.notifications')->with(["roles" => $roles]); } /** @@ -288,12 +290,14 @@ class UserController extends Controller { $this->checkPermission(self::NOTIFY_PERMISSION); +//TODO: reimplement the required validation on all,users and roles . didnt work -- required_without:users,roles $data = $request->validate([ 'via' => 'required|min:1|array', 'via.*' => 'required|string|in:mail,database', - 'all' => 'required_without:users|boolean', - 'users' => 'required_without:all|min:1|array', - 'users.*' => 'exists:users,id', + 'all' => 'boolean', + 'users' => 'min:1|array', + 'roles' => 'min:1|array', + 'roles.*' => 'required_without:all,users|exists:roles,id', 'title' => 'required|string|min:1', 'content' => 'required|string|min:1', ]); @@ -312,7 +316,13 @@ class UserController extends Controller ->line(new HtmlString($data['content'])); } $all = $data['all'] ?? false; - $users = $all ? User::all() : User::whereIn('id', $data['users'])->get(); + if(!$data["roles"]){ + $users = $all ? User::all() : User::whereIn('id', $data['users'])->get(); + } else{ + $users = User::role($data["roles"])->get(); + } + + try { Notification::send($users, new DynamicNotification($data['via'], $database, $mail)); } catch (Exception $e) { diff --git a/themes/default/views/admin/users/notifications.blade.php b/themes/default/views/admin/users/notifications.blade.php index 53a87f19..e29303ad 100644 --- a/themes/default/views/admin/users/notifications.blade.php +++ b/themes/default/views/admin/users/notifications.blade.php @@ -33,13 +33,20 @@ @method('POST')
-
- +
+
+ +
+
@error('all')
@@ -126,6 +133,7 @@ }) function initUserSelect(data) { + $('#roles').select2(); $('#users').select2({ ajax: { url: '/admin/users.json',