From bf0706b6987a2dd02da077fbc7afedd60f8a42bc Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Fri, 17 Feb 2023 15:27:24 +0100 Subject: [PATCH 1/4] Add user detector --- config/localizer.php | 6 ++++++ src/Detectors/UserDetector.php | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/Detectors/UserDetector.php diff --git a/config/localizer.php b/config/localizer.php index 3fab7fe..1b70662 100644 --- a/config/localizer.php +++ b/config/localizer.php @@ -34,6 +34,12 @@ */ 'url-segment' => 1, + /** + * The attribute on the user model that holds the locale, + * when using the UserDetector. + */ + 'user-attribute' => 'locale', + /** * The session key that holds the locale, * when using the SessionDetector and SessionStore. diff --git a/src/Detectors/UserDetector.php b/src/Detectors/UserDetector.php new file mode 100644 index 0000000..a087198 --- /dev/null +++ b/src/Detectors/UserDetector.php @@ -0,0 +1,26 @@ +{$attribute}; + } +} From 1f3ab8dd8e95966b9e98771ec58ec54ad898756f Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Fri, 17 Feb 2023 15:29:32 +0100 Subject: [PATCH 2/4] Add user detector to default detectors list --- config/localizer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/config/localizer.php b/config/localizer.php index 1b70662..46a7634 100644 --- a/config/localizer.php +++ b/config/localizer.php @@ -13,6 +13,7 @@ */ 'detectors' => [ CodeZero\Localizer\Detectors\UrlDetector::class, + CodeZero\Localizer\Detectors\UserDetector::class, CodeZero\Localizer\Detectors\SessionDetector::class, CodeZero\Localizer\Detectors\CookieDetector::class, CodeZero\Localizer\Detectors\BrowserDetector::class, From 591991514239b2e2d6d7b43593c86e1bd11f2696 Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Sat, 18 Feb 2023 13:16:22 +0100 Subject: [PATCH 3/4] Use getAttributeValue --- src/Detectors/UserDetector.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Detectors/UserDetector.php b/src/Detectors/UserDetector.php index a087198..6a9fc2e 100644 --- a/src/Detectors/UserDetector.php +++ b/src/Detectors/UserDetector.php @@ -21,6 +21,6 @@ public function detect() return null; } - return $user->{$attribute}; + return $user->getAttributeValue($attribute); } } From a31b205a95e439bd63259c3c9cb4b71c42ddeed4 Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Sat, 18 Feb 2023 13:17:43 +0100 Subject: [PATCH 4/4] Clean up --- src/Detectors/UserDetector.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Detectors/UserDetector.php b/src/Detectors/UserDetector.php index 6a9fc2e..6d363b7 100644 --- a/src/Detectors/UserDetector.php +++ b/src/Detectors/UserDetector.php @@ -14,13 +14,14 @@ class UserDetector implements Detector */ public function detect() { - $attribute = Config::get('localizer.user-attribute'); $user = Auth::user(); if ($user === null) { return null; } + $attribute = Config::get('localizer.user-attribute'); + return $user->getAttributeValue($attribute); } }