Skip to content

Commit 49e5915

Browse files
nuxsminRubén Domínguez
authored and
Rubén Domínguez
committed
* [FIX] Use SVG renderer for QR code because the source library requires additional packages for PNG based images. Thanks to @littlebutcher for the feedback. Closes #32
Signed-off-by: Rubén Domínguez <53273954C@externos.santalucia.es>
1 parent b7f1255 commit 49e5915

File tree

4 files changed

+20
-15
lines changed

4 files changed

+20
-15
lines changed

src/lib/Plugin.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -209,29 +209,29 @@ public function getJsResources()
209209
/**
210210
* Devuelve el autor del plugin
211211
*
212-
* @return string
212+
* @return string|null
213213
*/
214-
public function getAuthor()
214+
public function getAuthor(): ?string
215215
{
216216
return 'Rubén D.';
217217
}
218218

219219
/**
220220
* Devuelve la versión del plugin
221221
*
222-
* @return array
222+
* @return array|null
223223
*/
224-
public function getVersion()
224+
public function getVersion(): ?array
225225
{
226-
return [2, 2, 1];
226+
return [2, 2, 2];
227227
}
228228

229229
/**
230230
* Devuelve la versión compatible de sysPass
231231
*
232-
* @return array
232+
* @return array|null
233233
*/
234-
public function getCompatibleVersion()
234+
public function getCompatibleVersion(): ?array
235235
{
236236
return [3, 2];
237237
}
@@ -249,9 +249,9 @@ public function getCssResources()
249249
/**
250250
* Devuelve el nombre del plugin
251251
*
252-
* @return string
252+
* @return string|null
253253
*/
254-
public function getName()
254+
public function getName(): ?string
255255
{
256256
return self::PLUGIN_NAME;
257257
}

src/lib/Services/AuthenticatorService.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
namespace SP\Modules\Web\Plugins\Authenticator\Services;
2626

2727
use BaconQrCode\Renderer\Image\Png;
28+
use BaconQrCode\Renderer\Image\SvgImageBackEnd;
29+
use BaconQrCode\Renderer\ImageRenderer;
30+
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
2831
use BaconQrCode\Writer;
2932
use Base2n;
3033
use Defuse\Crypto\Exception\CryptoException;
@@ -176,11 +179,13 @@ public function getUserQRUrl(string $login, string $iv): string
176179
*/
177180
public function getQrCodeFromServer(string $login, string $iv): string
178181
{
179-
$renderer = new Png();
180-
$renderer->setHeight(200);
181-
$renderer->setWidth(200);
182+
$renderer = new ImageRenderer(
183+
new RendererStyle(200),
184+
new SvgImageBackEnd()
185+
);
182186

183187
$writer = new Writer($renderer);
188+
184189
return base64_encode($writer->writeString('otpauth://totp/sysPass:syspass/' . $login . '?secret=' . $iv . '&issuer=sysPass'));
185190
}
186191

src/themes/material-blue/views/userpreferences/preferences-security.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ $chk2FAEnabled = $_getvar('chk2FAEnabled');
5050

5151
if (!$chk2FAEnabled && $qrCode): ?>
5252
<div id="qr_code">
53-
<img id="qrcode" src="data:image/gif;base64,<?php echo $qrCode; ?>" alt="QR Code"/>
53+
<img id="qrcode" src="data:image/svg+xml;base64,<?php echo $qrCode; ?>" alt="QR Code"/>
5454
</div>
5555
<?php elseif ($qrCode === false): ?>
5656
<p class="ui-state-error"><?php echo _t('authenticator', 'Error while getting the QR code. Please, try it again'); ?></p>

version.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"Authenticator": {
3-
"version": "2.2.1",
4-
"build": "21011601"
3+
"version": "2.2.2",
4+
"build": "21031301"
55
}
66
}

0 commit comments

Comments
 (0)