aboutsummaryrefslogtreecommitdiff
path: root/src/CamilStaps/BotleaguesApi/ActivationCodeAuthenticationProvider.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/CamilStaps/BotleaguesApi/ActivationCodeAuthenticationProvider.php')
-rw-r--r--src/CamilStaps/BotleaguesApi/ActivationCodeAuthenticationProvider.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/CamilStaps/BotleaguesApi/ActivationCodeAuthenticationProvider.php b/src/CamilStaps/BotleaguesApi/ActivationCodeAuthenticationProvider.php
new file mode 100644
index 0000000..049dfc4
--- /dev/null
+++ b/src/CamilStaps/BotleaguesApi/ActivationCodeAuthenticationProvider.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: camilstaps
+ * Date: 24-5-15
+ * Time: 13:10
+ */
+
+namespace CamilStaps\BotleaguesApi;
+
+use CamilStaps\BotleaguesApi\Database\PasswordReminder;
+use CamilStaps\BotleaguesApi\Database\User;
+use Dingo\Api\Auth\Provider\Provider;
+use Dingo\Api\Routing\Route;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\DB;
+use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
+
+class ActivationCodeAuthenticationProvider implements Provider {
+
+ /**
+ * Authenticate the request and return the authenticated user instance.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @param \Dingo\Api\Routing\Route $route
+ *
+ * @throw UnauthorizedHttpException invalid authentication
+ *
+ * @return mixed
+ */
+ public function authenticate(Request $request, Route $route) {
+ $user = User::findOrFail($request->route('user'));
+ $passwordReminder = PasswordReminder::find($request->route('password_reminder'));
+
+ if (!empty($user) && !empty($passwordReminder) && $passwordReminder->userId == $user->id) {
+ $passwordReminder->useToken();
+ Auth::login($user);
+ return Auth::user();
+ }
+
+ throw new UnauthorizedHttpException(null, "Invalid credentials");
+ }
+
+ /**
+ * Get the providers authorization method.
+ *
+ * @return string
+ */
+ public function getAuthorizationMethod() {
+ return 'activationcode';
+ }
+} \ No newline at end of file