summaryrefslogtreecommitdiff
path: root/src/Helpers
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2018-10-11 01:26:34 +0200
committermsquare <msquare@notrademark.de>2018-10-31 13:43:23 +0100
commit4e09ee3eb255160c88a378375d69123a3e000497 (patch)
treee4a03ff40c939473cc1278f8286675cfa31e4556 /src/Helpers
parent7c6afc2bfe3263b91ecabf5530da57fe1162ea0b (diff)
Replaced more user related stuff
(Contains some buggy stuff too...)
Diffstat (limited to 'src/Helpers')
-rw-r--r--src/Helpers/Authenticator.php51
1 files changed, 44 insertions, 7 deletions
diff --git a/src/Helpers/Authenticator.php b/src/Helpers/Authenticator.php
index eee7b965..3061fbc1 100644
--- a/src/Helpers/Authenticator.php
+++ b/src/Helpers/Authenticator.php
@@ -2,33 +2,40 @@
namespace Engelsystem\Helpers;
-use Engelsystem\Models\BaseModel;
use Engelsystem\Models\User\User;
use Engelsystem\Models\User\User as UserRepository;
+use Psr\Http\Message\ServerRequestInterface;
use Symfony\Component\HttpFoundation\Session\Session;
class Authenticator
{
- /** @var UserRepository */
+ /** @var User */
protected $user = null;
+ /** @var ServerRequestInterface */
+ protected $request;
+
/** @var Session */
protected $session;
- /** @var BaseModel */
+ /** @var UserRepository */
protected $userRepository;
/**
- * @param Session $session
- * @param UserRepository $userRepository
+ * @param ServerRequestInterface $request
+ * @param Session $session
+ * @param UserRepository $userRepository
*/
- public function __construct(Session $session, UserRepository $userRepository)
+ public function __construct(ServerRequestInterface $request, Session $session, UserRepository $userRepository)
{
+ $this->request = $request;
$this->session = $session;
$this->userRepository = $userRepository;
}
/**
+ * Load the user from session
+ *
* @return User|null
*/
public function user()
@@ -51,6 +58,36 @@ class Authenticator
$this->user = $user;
- return $user;
+ return $this->user;
+ }
+
+ /**
+ * Get the user by his api key
+ *
+ * @param string $parameter
+ * @return User|null
+ */
+ public function apiUser($parameter = 'api_key')
+ {
+ if ($this->user) {
+ return $this->user;
+ }
+
+ $params = $this->request->getQueryParams();
+ if (!isset($params[$parameter])) {
+ return null;
+ }
+
+ $user = $this
+ ->userRepository
+ ->whereApiKey($params[$parameter])
+ ->first();
+ if (!$user) {
+ return $this->user();
+ }
+
+ $this->user = $user;
+
+ return $this->user;
}
}