Completed
Pull Request — 2.1 (#1176)
by Greg
12:38
created
src/SWP/Bundle/UserBundle/Command/CreateUserCommand.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -102,7 +102,7 @@  discard block
 block discarded – undo
102 102
 
103 103
         if (!$input->getArgument('username')) {
104 104
             $question = new Question('Please choose a username:');
105
-            $question->setValidator(function ($username) {
105
+            $question->setValidator(function($username) {
106 106
                 if (empty($username)) {
107 107
                     throw new \Exception('Username can not be empty');
108 108
                 }
@@ -114,7 +114,7 @@  discard block
 block discarded – undo
114 114
 
115 115
         if (!$input->getArgument('email')) {
116 116
             $question = new Question('Please choose an email:');
117
-            $question->setValidator(function ($email) {
117
+            $question->setValidator(function($email) {
118 118
                 if (empty($email)) {
119 119
                     throw new \Exception('Email can not be empty');
120 120
                 }
@@ -126,7 +126,7 @@  discard block
 block discarded – undo
126 126
 
127 127
         if (!$input->getArgument('password')) {
128 128
             $question = new Question('Please choose a password:');
129
-            $question->setValidator(function ($password) {
129
+            $question->setValidator(function($password) {
130 130
                 if (empty($password)) {
131 131
                     throw new \Exception('Password can not be empty');
132 132
                 }
Please login to merge, or discard this patch.
src/SWP/Bundle/UserBundle/Controller/ResetPasswordController.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -160,9 +160,9 @@
 block discarded – undo
160 160
             $resetToken = $this->resetPasswordHelper->generateResetToken($user);
161 161
         } catch (ResetPasswordExceptionInterface $e) {
162 162
             $this->addFlash('reset_password_error', sprintf(
163
-                 'There was a problem handling your password reset request - %s',
164
-                 $e->getReason()
165
-             ));
163
+                    'There was a problem handling your password reset request - %s',
164
+                    $e->getReason()
165
+                ));
166 166
 
167 167
             return $this->redirectToRoute('swp_user_check_email');
168 168
         }
Please login to merge, or discard this patch.
src/SWP/Bundle/CoreBundle/Controller/AuthController.php 7 patches
Doc Comments   -84 removed lines patch added patch discarded remove patch
@@ -133,87 +133,3 @@
 block discarded – undo
133 133
                 return new SingleResourceResponse([
134 134
                     'status' => 401,
135 135
                     'message' => <<<'MESSAGE'
136
-Unauthorized (user not found in Superdesk). 
137
-Make sure that Publisher can talk to Superdesk instance. Set it's address in "SUPERDESK_SERVERS" environment variable.
138
-MESSAGE,
139
-                ], new ResponseContext(401));
140
-            }
141
-
142
-            $publisherUser = $userProvider->findOneByEmail($superdeskUser['email']);
143
-            if (null === $publisherUser) {
144
-                try {
145
-                    $publisherUser = $userProvider->loadUserByUsername($superdeskUser['username']);
146
-                } catch (UsernameNotFoundException $e) {
147
-                    $publisherUser = null;
148
-                }
149
-            }
150
-
151
-            if (null === $publisherUser) {
152
-                /** @var UserInterface $publisherUser */
153
-                $publisherUser = $userManager->createUser();
154
-                $publisherUser->setUsername($superdeskUser['username']);
155
-                $publisherUser->setEmail($superdeskUser['email']);
156
-                $publisherUser->setRoles(['ROLE_INTERNAL_API']);
157
-                $publisherUser->setFirstName(\array_key_exists('first_name', $superdeskUser) ? $superdeskUser['first_name'] : 'Anon.');
158
-                $publisherUser->setLastName(\array_key_exists('last_name', $superdeskUser) ? $superdeskUser['last_name'] : '');
159
-                $publisherUser->setPassword(password_hash(random_bytes(36), PASSWORD_BCRYPT));
160
-                $userManager->updateUser($publisherUser);
161
-            }
162
-
163
-            if (null !== $publisherUser) {
164
-                return $this->returnApiTokenResponse($publisherUser, str_replace('Basic ', '', $formData['token']));
165
-            }
166
-        }
167
-
168
-        return new SingleResourceResponse([
169
-            'status' => 401,
170
-            'message' => 'Unauthorized',
171
-        ], new ResponseContext(401));
172
-    }
173
-
174
-    private function returnApiTokenResponse(UserInterface $user, string $token = null): SingleResourceResponseInterface
175
-    {
176
-        /** @var ApiKeyInterface $apiKey */
177
-        $apiKey = $this->generateOrGetApiKey($user, $token);
178
-
179
-        return new SingleResourceResponse([
180
-            'token' => [
181
-                'api_key' => $apiKey->getApiKey(),
182
-                'valid_to' => $apiKey->getValidTo(),
183
-            ],
184
-            'user' => $user,
185
-        ]);
186
-    }
187
-
188
-    private function generateOrGetApiKey(UserInterface $user, $token): ?ApiKeyInterface
189
-    {
190
-        $apiKey = null;
191
-        if (null !== $token) {
192
-            $apiKey = $this->apiKeyRepository->getValidToken($token)->getQuery()->getOneOrNullResult();
193
-        } else {
194
-            $validKeys = $this->apiKeyRepository->getValidTokenForUser($user)->getQuery()->getResult();
195
-            if (count($validKeys) > 0) {
196
-                $apiKey = reset($validKeys);
197
-            }
198
-        }
199
-
200
-        if (null === $apiKey) {
201
-            $apiKey = $this->apiKeyFactory->create($user, $token);
202
-
203
-            try {
204
-                $lock = $this->lockFactory->createLock(md5(json_encode(['type' => 'user_api_key', 'user' => $user->getId()])), 2);
205
-                if (!$lock->acquire()) {
206
-                    throw new RuntimeException('Other api key is created right now for this user');
207
-                }
208
-                $this->apiKeyRepository->add($apiKey);
209
-                $lock->release();
210
-            } catch (RuntimeException $e) {
211
-                sleep(2);
212
-
213
-                return $this->generateOrGetApiKey($user, $token);
214
-            }
215
-        }
216
-
217
-        return $apiKey;
218
-    }
219
-}
Please login to merge, or discard this patch.
Unused Use Statements   -84 removed lines patch added patch discarded remove patch
@@ -133,87 +133,3 @@
 block discarded – undo
133 133
                 return new SingleResourceResponse([
134 134
                     'status' => 401,
135 135
                     'message' => <<<'MESSAGE'
136
-Unauthorized (user not found in Superdesk). 
137
-Make sure that Publisher can talk to Superdesk instance. Set it's address in "SUPERDESK_SERVERS" environment variable.
138
-MESSAGE,
139
-                ], new ResponseContext(401));
140
-            }
141
-
142
-            $publisherUser = $userProvider->findOneByEmail($superdeskUser['email']);
143
-            if (null === $publisherUser) {
144
-                try {
145
-                    $publisherUser = $userProvider->loadUserByUsername($superdeskUser['username']);
146
-                } catch (UsernameNotFoundException $e) {
147
-                    $publisherUser = null;
148
-                }
149
-            }
150
-
151
-            if (null === $publisherUser) {
152
-                /** @var UserInterface $publisherUser */
153
-                $publisherUser = $userManager->createUser();
154
-                $publisherUser->setUsername($superdeskUser['username']);
155
-                $publisherUser->setEmail($superdeskUser['email']);
156
-                $publisherUser->setRoles(['ROLE_INTERNAL_API']);
157
-                $publisherUser->setFirstName(\array_key_exists('first_name', $superdeskUser) ? $superdeskUser['first_name'] : 'Anon.');
158
-                $publisherUser->setLastName(\array_key_exists('last_name', $superdeskUser) ? $superdeskUser['last_name'] : '');
159
-                $publisherUser->setPassword(password_hash(random_bytes(36), PASSWORD_BCRYPT));
160
-                $userManager->updateUser($publisherUser);
161
-            }
162
-
163
-            if (null !== $publisherUser) {
164
-                return $this->returnApiTokenResponse($publisherUser, str_replace('Basic ', '', $formData['token']));
165
-            }
166
-        }
167
-
168
-        return new SingleResourceResponse([
169
-            'status' => 401,
170
-            'message' => 'Unauthorized',
171
-        ], new ResponseContext(401));
172
-    }
173
-
174
-    private function returnApiTokenResponse(UserInterface $user, string $token = null): SingleResourceResponseInterface
175
-    {
176
-        /** @var ApiKeyInterface $apiKey */
177
-        $apiKey = $this->generateOrGetApiKey($user, $token);
178
-
179
-        return new SingleResourceResponse([
180
-            'token' => [
181
-                'api_key' => $apiKey->getApiKey(),
182
-                'valid_to' => $apiKey->getValidTo(),
183
-            ],
184
-            'user' => $user,
185
-        ]);
186
-    }
187
-
188
-    private function generateOrGetApiKey(UserInterface $user, $token): ?ApiKeyInterface
189
-    {
190
-        $apiKey = null;
191
-        if (null !== $token) {
192
-            $apiKey = $this->apiKeyRepository->getValidToken($token)->getQuery()->getOneOrNullResult();
193
-        } else {
194
-            $validKeys = $this->apiKeyRepository->getValidTokenForUser($user)->getQuery()->getResult();
195
-            if (count($validKeys) > 0) {
196
-                $apiKey = reset($validKeys);
197
-            }
198
-        }
199
-
200
-        if (null === $apiKey) {
201
-            $apiKey = $this->apiKeyFactory->create($user, $token);
202
-
203
-            try {
204
-                $lock = $this->lockFactory->createLock(md5(json_encode(['type' => 'user_api_key', 'user' => $user->getId()])), 2);
205
-                if (!$lock->acquire()) {
206
-                    throw new RuntimeException('Other api key is created right now for this user');
207
-                }
208
-                $this->apiKeyRepository->add($apiKey);
209
-                $lock->release();
210
-            } catch (RuntimeException $e) {
211
-                sleep(2);
212
-
213
-                return $this->generateOrGetApiKey($user, $token);
214
-            }
215
-        }
216
-
217
-        return $apiKey;
218
-    }
219
-}
Please login to merge, or discard this patch.
Indentation   -84 removed lines patch added patch discarded remove patch
@@ -133,87 +133,3 @@
 block discarded – undo
133 133
                 return new SingleResourceResponse([
134 134
                     'status' => 401,
135 135
                     'message' => <<<'MESSAGE'
136
-Unauthorized (user not found in Superdesk). 
137
-Make sure that Publisher can talk to Superdesk instance. Set it's address in "SUPERDESK_SERVERS" environment variable.
138
-MESSAGE,
139
-                ], new ResponseContext(401));
140
-            }
141
-
142
-            $publisherUser = $userProvider->findOneByEmail($superdeskUser['email']);
143
-            if (null === $publisherUser) {
144
-                try {
145
-                    $publisherUser = $userProvider->loadUserByUsername($superdeskUser['username']);
146
-                } catch (UsernameNotFoundException $e) {
147
-                    $publisherUser = null;
148
-                }
149
-            }
150
-
151
-            if (null === $publisherUser) {
152
-                /** @var UserInterface $publisherUser */
153
-                $publisherUser = $userManager->createUser();
154
-                $publisherUser->setUsername($superdeskUser['username']);
155
-                $publisherUser->setEmail($superdeskUser['email']);
156
-                $publisherUser->setRoles(['ROLE_INTERNAL_API']);
157
-                $publisherUser->setFirstName(\array_key_exists('first_name', $superdeskUser) ? $superdeskUser['first_name'] : 'Anon.');
158
-                $publisherUser->setLastName(\array_key_exists('last_name', $superdeskUser) ? $superdeskUser['last_name'] : '');
159
-                $publisherUser->setPassword(password_hash(random_bytes(36), PASSWORD_BCRYPT));
160
-                $userManager->updateUser($publisherUser);
161
-            }
162
-
163
-            if (null !== $publisherUser) {
164
-                return $this->returnApiTokenResponse($publisherUser, str_replace('Basic ', '', $formData['token']));
165
-            }
166
-        }
167
-
168
-        return new SingleResourceResponse([
169
-            'status' => 401,
170
-            'message' => 'Unauthorized',
171
-        ], new ResponseContext(401));
172
-    }
173
-
174
-    private function returnApiTokenResponse(UserInterface $user, string $token = null): SingleResourceResponseInterface
175
-    {
176
-        /** @var ApiKeyInterface $apiKey */
177
-        $apiKey = $this->generateOrGetApiKey($user, $token);
178
-
179
-        return new SingleResourceResponse([
180
-            'token' => [
181
-                'api_key' => $apiKey->getApiKey(),
182
-                'valid_to' => $apiKey->getValidTo(),
183
-            ],
184
-            'user' => $user,
185
-        ]);
186
-    }
187
-
188
-    private function generateOrGetApiKey(UserInterface $user, $token): ?ApiKeyInterface
189
-    {
190
-        $apiKey = null;
191
-        if (null !== $token) {
192
-            $apiKey = $this->apiKeyRepository->getValidToken($token)->getQuery()->getOneOrNullResult();
193
-        } else {
194
-            $validKeys = $this->apiKeyRepository->getValidTokenForUser($user)->getQuery()->getResult();
195
-            if (count($validKeys) > 0) {
196
-                $apiKey = reset($validKeys);
197
-            }
198
-        }
199
-
200
-        if (null === $apiKey) {
201
-            $apiKey = $this->apiKeyFactory->create($user, $token);
202
-
203
-            try {
204
-                $lock = $this->lockFactory->createLock(md5(json_encode(['type' => 'user_api_key', 'user' => $user->getId()])), 2);
205
-                if (!$lock->acquire()) {
206
-                    throw new RuntimeException('Other api key is created right now for this user');
207
-                }
208
-                $this->apiKeyRepository->add($apiKey);
209
-                $lock->release();
210
-            } catch (RuntimeException $e) {
211
-                sleep(2);
212
-
213
-                return $this->generateOrGetApiKey($user, $token);
214
-            }
215
-        }
216
-
217
-        return $apiKey;
218
-    }
219
-}
Please login to merge, or discard this patch.
Switch Indentation   -84 removed lines patch added patch discarded remove patch
@@ -133,87 +133,3 @@
 block discarded – undo
133 133
                 return new SingleResourceResponse([
134 134
                     'status' => 401,
135 135
                     'message' => <<<'MESSAGE'
136
-Unauthorized (user not found in Superdesk). 
137
-Make sure that Publisher can talk to Superdesk instance. Set it's address in "SUPERDESK_SERVERS" environment variable.
138
-MESSAGE,
139
-                ], new ResponseContext(401));
140
-            }
141
-
142
-            $publisherUser = $userProvider->findOneByEmail($superdeskUser['email']);
143
-            if (null === $publisherUser) {
144
-                try {
145
-                    $publisherUser = $userProvider->loadUserByUsername($superdeskUser['username']);
146
-                } catch (UsernameNotFoundException $e) {
147
-                    $publisherUser = null;
148
-                }
149
-            }
150
-
151
-            if (null === $publisherUser) {
152
-                /** @var UserInterface $publisherUser */
153
-                $publisherUser = $userManager->createUser();
154
-                $publisherUser->setUsername($superdeskUser['username']);
155
-                $publisherUser->setEmail($superdeskUser['email']);
156
-                $publisherUser->setRoles(['ROLE_INTERNAL_API']);
157
-                $publisherUser->setFirstName(\array_key_exists('first_name', $superdeskUser) ? $superdeskUser['first_name'] : 'Anon.');
158
-                $publisherUser->setLastName(\array_key_exists('last_name', $superdeskUser) ? $superdeskUser['last_name'] : '');
159
-                $publisherUser->setPassword(password_hash(random_bytes(36), PASSWORD_BCRYPT));
160
-                $userManager->updateUser($publisherUser);
161
-            }
162
-
163
-            if (null !== $publisherUser) {
164
-                return $this->returnApiTokenResponse($publisherUser, str_replace('Basic ', '', $formData['token']));
165
-            }
166
-        }
167
-
168
-        return new SingleResourceResponse([
169
-            'status' => 401,
170
-            'message' => 'Unauthorized',
171
-        ], new ResponseContext(401));
172
-    }
173
-
174
-    private function returnApiTokenResponse(UserInterface $user, string $token = null): SingleResourceResponseInterface
175
-    {
176
-        /** @var ApiKeyInterface $apiKey */
177
-        $apiKey = $this->generateOrGetApiKey($user, $token);
178
-
179
-        return new SingleResourceResponse([
180
-            'token' => [
181
-                'api_key' => $apiKey->getApiKey(),
182
-                'valid_to' => $apiKey->getValidTo(),
183
-            ],
184
-            'user' => $user,
185
-        ]);
186
-    }
187
-
188
-    private function generateOrGetApiKey(UserInterface $user, $token): ?ApiKeyInterface
189
-    {
190
-        $apiKey = null;
191
-        if (null !== $token) {
192
-            $apiKey = $this->apiKeyRepository->getValidToken($token)->getQuery()->getOneOrNullResult();
193
-        } else {
194
-            $validKeys = $this->apiKeyRepository->getValidTokenForUser($user)->getQuery()->getResult();
195
-            if (count($validKeys) > 0) {
196
-                $apiKey = reset($validKeys);
197
-            }
198
-        }
199
-
200
-        if (null === $apiKey) {
201
-            $apiKey = $this->apiKeyFactory->create($user, $token);
202
-
203
-            try {
204
-                $lock = $this->lockFactory->createLock(md5(json_encode(['type' => 'user_api_key', 'user' => $user->getId()])), 2);
205
-                if (!$lock->acquire()) {
206
-                    throw new RuntimeException('Other api key is created right now for this user');
207
-                }
208
-                $this->apiKeyRepository->add($apiKey);
209
-                $lock->release();
210
-            } catch (RuntimeException $e) {
211
-                sleep(2);
212
-
213
-                return $this->generateOrGetApiKey($user, $token);
214
-            }
215
-        }
216
-
217
-        return $apiKey;
218
-    }
219
-}
Please login to merge, or discard this patch.
Spacing   -84 removed lines patch added patch discarded remove patch
@@ -133,87 +133,3 @@
 block discarded – undo
133 133
                 return new SingleResourceResponse([
134 134
                     'status' => 401,
135 135
                     'message' => <<<'MESSAGE'
136
-Unauthorized (user not found in Superdesk). 
137
-Make sure that Publisher can talk to Superdesk instance. Set it's address in "SUPERDESK_SERVERS" environment variable.
138
-MESSAGE,
139
-                ], new ResponseContext(401));
140
-            }
141
-
142
-            $publisherUser = $userProvider->findOneByEmail($superdeskUser['email']);
143
-            if (null === $publisherUser) {
144
-                try {
145
-                    $publisherUser = $userProvider->loadUserByUsername($superdeskUser['username']);
146
-                } catch (UsernameNotFoundException $e) {
147
-                    $publisherUser = null;
148
-                }
149
-            }
150
-
151
-            if (null === $publisherUser) {
152
-                /** @var UserInterface $publisherUser */
153
-                $publisherUser = $userManager->createUser();
154
-                $publisherUser->setUsername($superdeskUser['username']);
155
-                $publisherUser->setEmail($superdeskUser['email']);
156
-                $publisherUser->setRoles(['ROLE_INTERNAL_API']);
157
-                $publisherUser->setFirstName(\array_key_exists('first_name', $superdeskUser) ? $superdeskUser['first_name'] : 'Anon.');
158
-                $publisherUser->setLastName(\array_key_exists('last_name', $superdeskUser) ? $superdeskUser['last_name'] : '');
159
-                $publisherUser->setPassword(password_hash(random_bytes(36), PASSWORD_BCRYPT));
160
-                $userManager->updateUser($publisherUser);
161
-            }
162
-
163
-            if (null !== $publisherUser) {
164
-                return $this->returnApiTokenResponse($publisherUser, str_replace('Basic ', '', $formData['token']));
165
-            }
166
-        }
167
-
168
-        return new SingleResourceResponse([
169
-            'status' => 401,
170
-            'message' => 'Unauthorized',
171
-        ], new ResponseContext(401));
172
-    }
173
-
174
-    private function returnApiTokenResponse(UserInterface $user, string $token = null): SingleResourceResponseInterface
175
-    {
176
-        /** @var ApiKeyInterface $apiKey */
177
-        $apiKey = $this->generateOrGetApiKey($user, $token);
178
-
179
-        return new SingleResourceResponse([
180
-            'token' => [
181
-                'api_key' => $apiKey->getApiKey(),
182
-                'valid_to' => $apiKey->getValidTo(),
183
-            ],
184
-            'user' => $user,
185
-        ]);
186
-    }
187
-
188
-    private function generateOrGetApiKey(UserInterface $user, $token): ?ApiKeyInterface
189
-    {
190
-        $apiKey = null;
191
-        if (null !== $token) {
192
-            $apiKey = $this->apiKeyRepository->getValidToken($token)->getQuery()->getOneOrNullResult();
193
-        } else {
194
-            $validKeys = $this->apiKeyRepository->getValidTokenForUser($user)->getQuery()->getResult();
195
-            if (count($validKeys) > 0) {
196
-                $apiKey = reset($validKeys);
197
-            }
198
-        }
199
-
200
-        if (null === $apiKey) {
201
-            $apiKey = $this->apiKeyFactory->create($user, $token);
202
-
203
-            try {
204
-                $lock = $this->lockFactory->createLock(md5(json_encode(['type' => 'user_api_key', 'user' => $user->getId()])), 2);
205
-                if (!$lock->acquire()) {
206
-                    throw new RuntimeException('Other api key is created right now for this user');
207
-                }
208
-                $this->apiKeyRepository->add($apiKey);
209
-                $lock->release();
210
-            } catch (RuntimeException $e) {
211
-                sleep(2);
212
-
213
-                return $this->generateOrGetApiKey($user, $token);
214
-            }
215
-        }
216
-
217
-        return $apiKey;
218
-    }
219
-}
Please login to merge, or discard this patch.
Braces   -84 removed lines patch added patch discarded remove patch
@@ -133,87 +133,3 @@
 block discarded – undo
133 133
                 return new SingleResourceResponse([
134 134
                     'status' => 401,
135 135
                     'message' => <<<'MESSAGE'
136
-Unauthorized (user not found in Superdesk). 
137
-Make sure that Publisher can talk to Superdesk instance. Set it's address in "SUPERDESK_SERVERS" environment variable.
138
-MESSAGE,
139
-                ], new ResponseContext(401));
140
-            }
141
-
142
-            $publisherUser = $userProvider->findOneByEmail($superdeskUser['email']);
143
-            if (null === $publisherUser) {
144
-                try {
145
-                    $publisherUser = $userProvider->loadUserByUsername($superdeskUser['username']);
146
-                } catch (UsernameNotFoundException $e) {
147
-                    $publisherUser = null;
148
-                }
149
-            }
150
-
151
-            if (null === $publisherUser) {
152
-                /** @var UserInterface $publisherUser */
153
-                $publisherUser = $userManager->createUser();
154
-                $publisherUser->setUsername($superdeskUser['username']);
155
-                $publisherUser->setEmail($superdeskUser['email']);
156
-                $publisherUser->setRoles(['ROLE_INTERNAL_API']);
157
-                $publisherUser->setFirstName(\array_key_exists('first_name', $superdeskUser) ? $superdeskUser['first_name'] : 'Anon.');
158
-                $publisherUser->setLastName(\array_key_exists('last_name', $superdeskUser) ? $superdeskUser['last_name'] : '');
159
-                $publisherUser->setPassword(password_hash(random_bytes(36), PASSWORD_BCRYPT));
160
-                $userManager->updateUser($publisherUser);
161
-            }
162
-
163
-            if (null !== $publisherUser) {
164
-                return $this->returnApiTokenResponse($publisherUser, str_replace('Basic ', '', $formData['token']));
165
-            }
166
-        }
167
-
168
-        return new SingleResourceResponse([
169
-            'status' => 401,
170
-            'message' => 'Unauthorized',
171
-        ], new ResponseContext(401));
172
-    }
173
-
174
-    private function returnApiTokenResponse(UserInterface $user, string $token = null): SingleResourceResponseInterface
175
-    {
176
-        /** @var ApiKeyInterface $apiKey */
177
-        $apiKey = $this->generateOrGetApiKey($user, $token);
178
-
179
-        return new SingleResourceResponse([
180
-            'token' => [
181
-                'api_key' => $apiKey->getApiKey(),
182
-                'valid_to' => $apiKey->getValidTo(),
183
-            ],
184
-            'user' => $user,
185
-        ]);
186
-    }
187
-
188
-    private function generateOrGetApiKey(UserInterface $user, $token): ?ApiKeyInterface
189
-    {
190
-        $apiKey = null;
191
-        if (null !== $token) {
192
-            $apiKey = $this->apiKeyRepository->getValidToken($token)->getQuery()->getOneOrNullResult();
193
-        } else {
194
-            $validKeys = $this->apiKeyRepository->getValidTokenForUser($user)->getQuery()->getResult();
195
-            if (count($validKeys) > 0) {
196
-                $apiKey = reset($validKeys);
197
-            }
198
-        }
199
-
200
-        if (null === $apiKey) {
201
-            $apiKey = $this->apiKeyFactory->create($user, $token);
202
-
203
-            try {
204
-                $lock = $this->lockFactory->createLock(md5(json_encode(['type' => 'user_api_key', 'user' => $user->getId()])), 2);
205
-                if (!$lock->acquire()) {
206
-                    throw new RuntimeException('Other api key is created right now for this user');
207
-                }
208
-                $this->apiKeyRepository->add($apiKey);
209
-                $lock->release();
210
-            } catch (RuntimeException $e) {
211
-                sleep(2);
212
-
213
-                return $this->generateOrGetApiKey($user, $token);
214
-            }
215
-        }
216
-
217
-        return $apiKey;
218
-    }
219
-}
Please login to merge, or discard this patch.
Upper-Lower-Casing   -84 removed lines patch added patch discarded remove patch
@@ -133,87 +133,3 @@
 block discarded – undo
133 133
                 return new SingleResourceResponse([
134 134
                     'status' => 401,
135 135
                     'message' => <<<'MESSAGE'
136
-Unauthorized (user not found in Superdesk). 
137
-Make sure that Publisher can talk to Superdesk instance. Set it's address in "SUPERDESK_SERVERS" environment variable.
138
-MESSAGE,
139
-                ], new ResponseContext(401));
140
-            }
141
-
142
-            $publisherUser = $userProvider->findOneByEmail($superdeskUser['email']);
143
-            if (null === $publisherUser) {
144
-                try {
145
-                    $publisherUser = $userProvider->loadUserByUsername($superdeskUser['username']);
146
-                } catch (UsernameNotFoundException $e) {
147
-                    $publisherUser = null;
148
-                }
149
-            }
150
-
151
-            if (null === $publisherUser) {
152
-                /** @var UserInterface $publisherUser */
153
-                $publisherUser = $userManager->createUser();
154
-                $publisherUser->setUsername($superdeskUser['username']);
155
-                $publisherUser->setEmail($superdeskUser['email']);
156
-                $publisherUser->setRoles(['ROLE_INTERNAL_API']);
157
-                $publisherUser->setFirstName(\array_key_exists('first_name', $superdeskUser) ? $superdeskUser['first_name'] : 'Anon.');
158
-                $publisherUser->setLastName(\array_key_exists('last_name', $superdeskUser) ? $superdeskUser['last_name'] : '');
159
-                $publisherUser->setPassword(password_hash(random_bytes(36), PASSWORD_BCRYPT));
160
-                $userManager->updateUser($publisherUser);
161
-            }
162
-
163
-            if (null !== $publisherUser) {
164
-                return $this->returnApiTokenResponse($publisherUser, str_replace('Basic ', '', $formData['token']));
165
-            }
166
-        }
167
-
168
-        return new SingleResourceResponse([
169
-            'status' => 401,
170
-            'message' => 'Unauthorized',
171
-        ], new ResponseContext(401));
172
-    }
173
-
174
-    private function returnApiTokenResponse(UserInterface $user, string $token = null): SingleResourceResponseInterface
175
-    {
176
-        /** @var ApiKeyInterface $apiKey */
177
-        $apiKey = $this->generateOrGetApiKey($user, $token);
178
-
179
-        return new SingleResourceResponse([
180
-            'token' => [
181
-                'api_key' => $apiKey->getApiKey(),
182
-                'valid_to' => $apiKey->getValidTo(),
183
-            ],
184
-            'user' => $user,
185
-        ]);
186
-    }
187
-
188
-    private function generateOrGetApiKey(UserInterface $user, $token): ?ApiKeyInterface
189
-    {
190
-        $apiKey = null;
191
-        if (null !== $token) {
192
-            $apiKey = $this->apiKeyRepository->getValidToken($token)->getQuery()->getOneOrNullResult();
193
-        } else {
194
-            $validKeys = $this->apiKeyRepository->getValidTokenForUser($user)->getQuery()->getResult();
195
-            if (count($validKeys) > 0) {
196
-                $apiKey = reset($validKeys);
197
-            }
198
-        }
199
-
200
-        if (null === $apiKey) {
201
-            $apiKey = $this->apiKeyFactory->create($user, $token);
202
-
203
-            try {
204
-                $lock = $this->lockFactory->createLock(md5(json_encode(['type' => 'user_api_key', 'user' => $user->getId()])), 2);
205
-                if (!$lock->acquire()) {
206
-                    throw new RuntimeException('Other api key is created right now for this user');
207
-                }
208
-                $this->apiKeyRepository->add($apiKey);
209
-                $lock->release();
210
-            } catch (RuntimeException $e) {
211
-                sleep(2);
212
-
213
-                return $this->generateOrGetApiKey($user, $token);
214
-            }
215
-        }
216
-
217
-        return $apiKey;
218
-    }
219
-}
Please login to merge, or discard this patch.