Completed
Pull Request — 2.1 (#1109)
by Paweł
09:39
created
src/SWP/Bundle/CoreBundle/Controller/ThemesController.php 1 patch
Unused Use Statements   -1 removed lines patch added patch discarded remove patch
@@ -18,7 +18,6 @@
 block discarded – undo
18 18
 use Nelmio\ApiDocBundle\Annotation\Model;
19 19
 use SWP\Bundle\CoreBundle\Form\Type\ThemeInstallType;
20 20
 use SWP\Bundle\CoreBundle\Form\Type\ThemeUploadType;
21
-use SWP\Bundle\CoreBundle\Model\Tenant;
22 21
 use SWP\Bundle\CoreBundle\Model\TenantInterface;
23 22
 use SWP\Bundle\CoreBundle\Theme\Helper\ThemeHelper;
24 23
 use SWP\Component\Common\Response\ResourcesListResponseInterface;
Please login to merge, or discard this patch.
src/SWP/Bundle/CoreBundle/MessageHandler/AbstractContentPushHandler.php 1 patch
Unused Use Statements   -1 removed lines patch added patch discarded remove patch
@@ -18,7 +18,6 @@
 block discarded – undo
18 18
 
19 19
 use Doctrine\DBAL\Exception\NotNullConstraintViolationException;
20 20
 use Doctrine\ORM\EntityManagerInterface;
21
-use Doctrine\ORM\NonUniqueResultException;
22 21
 use Psr\Log\LoggerInterface;
23 22
 use Sentry\Breadcrumb;
24 23
 use Sentry\State\HubInterface;
Please login to merge, or discard this patch.
SWP/Bundle/CoreBundle/Command/DownloadThemesFromExternalStorageCommand.php 1 patch
Unused Use Statements   -47 removed lines patch added patch discarded remove patch
@@ -47,50 +47,3 @@
 block discarded – undo
47 47
             ->setName(self::$defaultName)
48 48
             ->setDescription('Downloads theme from configured storage.')
49 49
             ->setHelp(<<<'EOT'
50
-Location for themes archive can be defined by `THEMES_DOWNLOAD_URL` env variable. 
51
-
52
-Themes must be packed into one compressed file (*.zip). 
53
-Archive can be created with 'zip -r ../themes.zip *' command (called from your themes directory). 
54
-
55
-Remember that themes must be located in their tenants directories. Example:
56
-
57
-123abc
58
-   theme_1
59
-   theme_2
60
-456def
61
-   theme_3 
62
-
63
-EOT);
64
-    }
65
-
66
-    protected function execute(InputInterface $input, OutputInterface $output): void
67
-    {
68
-        if ('' === $this->themesUrl) {
69
-            $output->writeln('<bg=red;options=bold>Themes archive url is empty.</>');
70
-
71
-            return;
72
-        }
73
-        $client = new Client();
74
-        $tempLocation = rtrim(sys_get_temp_dir(), '/').DIRECTORY_SEPARATOR.'themes.zip';
75
-
76
-        try {
77
-            $client->request('GET', $this->themesUrl, ['sink' => $tempLocation]);
78
-        } catch (ConnectException $e) {
79
-            $output->writeln(sprintf("<bg=red;options=bold>Can't download themes package from '%s'.</>", $this->themesUrl));
80
-        }
81
-
82
-        $filesystem = new Filesystem();
83
-
84
-        $zip = new \ZipArchive();
85
-        if (true === $zip->open($tempLocation)) {
86
-            if (!$filesystem->exists($this->themesDirectory)) {
87
-                $filesystem->mkdir($this->themesDirectory);
88
-            }
89
-
90
-            $zip->extractTo($this->themesDirectory);
91
-            $zip->close();
92
-        }
93
-
94
-        $output->writeln('<bg=green;options=bold>Themes were downloaded and extracted.</>');
95
-    }
96
-}
Please login to merge, or discard this patch.
src/SWP/Bundle/CoreBundle/Controller/AuthController.php 1 patch
Unused Use Statements   -85 removed lines patch added patch discarded remove patch
@@ -180,88 +180,3 @@
 block discarded – undo
180 180
                 return new SingleResourceResponse([
181 181
                     'status' => 401,
182 182
                     'message' => <<<'MESSAGE'
183
-Unauthorized (user not found in Superdesk). 
184
-Make sure that Publisher can talk to Superdesk instance. Set it's address in "SUPERDESK_SERVERS" environment variable.
185
-MESSAGE,
186
-                ], new ResponseContext(401));
187
-            }
188
-
189
-            $publisherUser = $userProvider->findOneByEmail($superdeskUser['email']);
190
-            if (null === $publisherUser) {
191
-                try {
192
-                    $publisherUser = $userProvider->loadUserByUsername($superdeskUser['username']);
193
-                } catch (UsernameNotFoundException $e) {
194
-                    $publisherUser = null;
195
-                }
196
-            }
197
-
198
-            if (null === $publisherUser) {
199
-                /** @var UserInterface $publisherUser */
200
-                $publisherUser = $userManager->createUser();
201
-                $publisherUser->setUsername($superdeskUser['username']);
202
-                $publisherUser->setEmail($superdeskUser['email']);
203
-                $publisherUser->setRoles(['ROLE_INTERNAL_API']);
204
-                $publisherUser->setFirstName(\array_key_exists('first_name', $superdeskUser) ? $superdeskUser['first_name'] : 'Anon.');
205
-                $publisherUser->setLastName(\array_key_exists('last_name', $superdeskUser) ? $superdeskUser['last_name'] : '');
206
-                $publisherUser->setPlainPassword(password_hash(random_bytes(36), PASSWORD_BCRYPT));
207
-                $publisherUser->setEnabled(true);
208
-                $userManager->updateUser($publisherUser);
209
-            }
210
-
211
-            if (null !== $publisherUser) {
212
-                return $this->returnApiTokenResponse($publisherUser, str_replace('Basic ', '', $formData['token']));
213
-            }
214
-        }
215
-
216
-        return new SingleResourceResponse([
217
-            'status' => 401,
218
-            'message' => 'Unauthorized',
219
-        ], new ResponseContext(401));
220
-    }
221
-
222
-    private function returnApiTokenResponse(UserInterface $user, string $token = null): SingleResourceResponseInterface
223
-    {
224
-        /** @var ApiKeyInterface $apiKey */
225
-        $apiKey = $this->generateOrGetApiKey($user, $token);
226
-
227
-        return new SingleResourceResponse([
228
-            'token' => [
229
-                'api_key' => $apiKey->getApiKey(),
230
-                'valid_to' => $apiKey->getValidTo(),
231
-            ],
232
-            'user' => $user,
233
-        ]);
234
-    }
235
-
236
-    private function generateOrGetApiKey(UserInterface $user, $token): ?ApiKeyInterface
237
-    {
238
-        $apiKey = null;
239
-        if (null !== $token) {
240
-            $apiKey = $this->apiKeyRepository->getValidToken($token)->getQuery()->getOneOrNullResult();
241
-        } else {
242
-            $validKeys = $this->apiKeyRepository->getValidTokenForUser($user)->getQuery()->getResult();
243
-            if (count($validKeys) > 0) {
244
-                $apiKey = reset($validKeys);
245
-            }
246
-        }
247
-
248
-        if (null === $apiKey) {
249
-            $apiKey = $this->apiKeyFactory->create($user, $token);
250
-
251
-            try {
252
-                $lock = $this->lockFactory->createLock(md5(json_encode(['type' => 'user_api_key', 'user' => $user->getId()])), 2);
253
-                if (!$lock->acquire()) {
254
-                    throw new RuntimeException('Other api key is created right now for this user');
255
-                }
256
-                $this->apiKeyRepository->add($apiKey);
257
-                $lock->release();
258
-            } catch (RuntimeException $e) {
259
-                sleep(2);
260
-
261
-                return $this->generateOrGetApiKey($user, $token);
262
-            }
263
-        }
264
-
265
-        return $apiKey;
266
-    }
267
-}
Please login to merge, or discard this patch.