summaryrefslogtreecommitdiff
path: root/src/Helpers
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2018-10-08 19:30:37 +0200
committermsquare <msquare@notrademark.de>2018-10-31 13:43:23 +0100
commitd15946df2dfb0ae2f0ca9371e5c8071df91ab45a (patch)
tree49601aafd74da5a781920543ed92bbd180fe5e89 /src/Helpers
parent8e62c4c52c27f9432820915deeb699c3d1f58ce7 (diff)
Changed `src/` code and templates to use the new user model
Diffstat (limited to 'src/Helpers')
-rw-r--r--src/Helpers/Authenticator.php56
-rw-r--r--src/Helpers/AuthenticatorServiceProvider.php17
2 files changed, 73 insertions, 0 deletions
diff --git a/src/Helpers/Authenticator.php b/src/Helpers/Authenticator.php
new file mode 100644
index 00000000..eee7b965
--- /dev/null
+++ b/src/Helpers/Authenticator.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace Engelsystem\Helpers;
+
+use Engelsystem\Models\BaseModel;
+use Engelsystem\Models\User\User;
+use Engelsystem\Models\User\User as UserRepository;
+use Symfony\Component\HttpFoundation\Session\Session;
+
+class Authenticator
+{
+ /** @var UserRepository */
+ protected $user = null;
+
+ /** @var Session */
+ protected $session;
+
+ /** @var BaseModel */
+ protected $userRepository;
+
+ /**
+ * @param Session $session
+ * @param UserRepository $userRepository
+ */
+ public function __construct(Session $session, UserRepository $userRepository)
+ {
+ $this->session = $session;
+ $this->userRepository = $userRepository;
+ }
+
+ /**
+ * @return User|null
+ */
+ public function user()
+ {
+ if ($this->user) {
+ return $this->user;
+ }
+
+ $userId = $this->session->get('uid');
+ if (!$userId) {
+ return null;
+ }
+
+ $user = $this
+ ->userRepository
+ ->find($userId);
+ if (!$user) {
+ return null;
+ }
+
+ $this->user = $user;
+
+ return $user;
+ }
+}
diff --git a/src/Helpers/AuthenticatorServiceProvider.php b/src/Helpers/AuthenticatorServiceProvider.php
new file mode 100644
index 00000000..b7508b01
--- /dev/null
+++ b/src/Helpers/AuthenticatorServiceProvider.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Engelsystem\Helpers;
+
+use Engelsystem\Container\ServiceProvider;
+
+class AuthenticatorServiceProvider extends ServiceProvider
+{
+ public function register()
+ {
+ /** @var Authenticator $authenticator */
+ $authenticator = $this->app->make(Authenticator::class);
+
+ $this->app->instance(Authenticator::class, $authenticator);
+ $this->app->instance('authenticator', $authenticator);
+ }
+}