diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2018-10-08 19:30:37 +0200 |
---|---|---|
committer | msquare <msquare@notrademark.de> | 2018-10-31 13:43:23 +0100 |
commit | d15946df2dfb0ae2f0ca9371e5c8071df91ab45a (patch) | |
tree | 49601aafd74da5a781920543ed92bbd180fe5e89 /src/Helpers | |
parent | 8e62c4c52c27f9432820915deeb699c3d1f58ce7 (diff) |
Changed `src/` code and templates to use the new user model
Diffstat (limited to 'src/Helpers')
-rw-r--r-- | src/Helpers/Authenticator.php | 56 | ||||
-rw-r--r-- | src/Helpers/AuthenticatorServiceProvider.php | 17 |
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); + } +} |