From 1648f0acebfbb0e0369dc1a9c76a77b04c7a1ef1 Mon Sep 17 00:00:00 2001 From: lazerg Date: Wed, 5 Aug 2026 20:46:32 +0500 Subject: [PATCH] Fix Eloquent user data setting roles and groups as model attributes --- src/Auth/Eloquent/User.php | 2 +- tests/Auth/Eloquent/EloquentUserTest.php | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Auth/Eloquent/User.php b/src/Auth/Eloquent/User.php index 4eae32e6d9b..26571b66e1c 100644 --- a/src/Auth/Eloquent/User.php +++ b/src/Auth/Eloquent/User.php @@ -52,7 +52,7 @@ public function data($data = null) return collect(Arr::except($data, ['id', 'email'])); } - foreach ($data as $key => $value) { + foreach (Arr::except($data, ['roles', 'groups']) as $key => $value) { $this->set($key, $value); } diff --git a/tests/Auth/Eloquent/EloquentUserTest.php b/tests/Auth/Eloquent/EloquentUserTest.php index e00dcf3c57b..375b7449404 100644 --- a/tests/Auth/Eloquent/EloquentUserTest.php +++ b/tests/Auth/Eloquent/EloquentUserTest.php @@ -350,6 +350,20 @@ public function merge_does_not_set_roles_and_groups_as_model_attributes() $this->assertEquals('Updated Name', $attributes['name']); } + #[Test] + public function data_does_not_set_roles_and_groups_as_model_attributes() + { + $user = $this->user(); + + $user->data($user->data()->merge(['name' => 'Updated Name'])->all()); + + $attributes = $user->model()->getAttributes(); + + $this->assertArrayNotHasKey('roles', $attributes); + $this->assertArrayNotHasKey('groups', $attributes); + $this->assertEquals('Updated Name', $attributes['name']); + } + #[Test] #[Group('passkeys')] public function it_gets_passkeys()