2FA backupcodes: add strict typing
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
This commit is contained in:
parent
1c35b3801e
commit
09368e7cf5
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2016 Christoph Wurst <christoph@winzerhof-wurst.at>
|
* @copyright Copyright (c) 2016 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||||
*
|
*
|
||||||
|
@ -53,7 +56,7 @@ class Provider implements IProvider {
|
||||||
$this->l10n = $l10n;
|
$this->l10n = $l10n;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function parse($language, IEvent $event, IEvent $previousEvent = null) {
|
public function parse($language, IEvent $event, IEvent $previousEvent = null): IEvent {
|
||||||
if ($event->getApp() !== 'twofactor_backupcodes') {
|
if ($event->getApp() !== 'twofactor_backupcodes') {
|
||||||
throw new InvalidArgumentException();
|
throw new InvalidArgumentException();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -56,7 +59,7 @@ class SettingsController extends Controller {
|
||||||
*
|
*
|
||||||
* @return JSONResponse
|
* @return JSONResponse
|
||||||
*/
|
*/
|
||||||
public function createCodes() {
|
public function createCodes(): JSONResponse {
|
||||||
$user = $this->userSession->getUser();
|
$user = $this->userSession->getUser();
|
||||||
$codes = $this->storage->createCodes($user);
|
$codes = $this->storage->createCodes($user);
|
||||||
return new JSONResponse([
|
return new JSONResponse([
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -42,7 +45,7 @@ class BackupCodeMapper extends QBMapper {
|
||||||
* @param IUser $user
|
* @param IUser $user
|
||||||
* @return BackupCode[]
|
* @return BackupCode[]
|
||||||
*/
|
*/
|
||||||
public function getBackupCodes(IUser $user) {
|
public function getBackupCodes(IUser $user): array {
|
||||||
/* @var IQueryBuilder $qb */
|
/* @var IQueryBuilder $qb */
|
||||||
$qb = $this->db->getQueryBuilder();
|
$qb = $this->db->getQueryBuilder();
|
||||||
|
|
||||||
|
@ -56,14 +59,14 @@ class BackupCodeMapper extends QBMapper {
|
||||||
/**
|
/**
|
||||||
* @param IUser $user
|
* @param IUser $user
|
||||||
*/
|
*/
|
||||||
public function deleteCodes(IUser $user) {
|
public function deleteCodes(IUser $user): void {
|
||||||
$this->deleteCodesByUserId($user->getUID());
|
$this->deleteCodesByUserId($user->getUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $uid
|
* @param string $uid
|
||||||
*/
|
*/
|
||||||
public function deleteCodesByUserId($uid) {
|
public function deleteCodesByUserId(string $uid): void {
|
||||||
/* @var IQueryBuilder $qb */
|
/* @var IQueryBuilder $qb */
|
||||||
$qb = $this->db->getQueryBuilder();
|
$qb = $this->db->getQueryBuilder();
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -60,9 +63,10 @@ class BackupCodeStorage {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param IUser $user
|
* @param IUser $user
|
||||||
|
* @param int $number
|
||||||
* @return string[]
|
* @return string[]
|
||||||
*/
|
*/
|
||||||
public function createCodes(IUser $user, $number = 10) {
|
public function createCodes(IUser $user, int $number = 10): array {
|
||||||
$result = [];
|
$result = [];
|
||||||
|
|
||||||
// Delete existing ones
|
// Delete existing ones
|
||||||
|
@ -90,7 +94,7 @@ class BackupCodeStorage {
|
||||||
* @param IUser $user
|
* @param IUser $user
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function hasBackupCodes(IUser $user) {
|
public function hasBackupCodes(IUser $user): bool {
|
||||||
$codes = $this->mapper->getBackupCodes($user);
|
$codes = $this->mapper->getBackupCodes($user);
|
||||||
return count($codes) > 0;
|
return count($codes) > 0;
|
||||||
}
|
}
|
||||||
|
@ -99,7 +103,7 @@ class BackupCodeStorage {
|
||||||
* @param IUser $user
|
* @param IUser $user
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getBackupCodesState(IUser $user) {
|
public function getBackupCodesState(IUser $user): array {
|
||||||
$codes = $this->mapper->getBackupCodes($user);
|
$codes = $this->mapper->getBackupCodes($user);
|
||||||
$total = count($codes);
|
$total = count($codes);
|
||||||
$used = 0;
|
$used = 0;
|
||||||
|
@ -120,7 +124,7 @@ class BackupCodeStorage {
|
||||||
* @param string $code
|
* @param string $code
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateCode(IUser $user, $code) {
|
public function validateCode(IUser $user, string $code): bool {
|
||||||
$dbCodes = $this->mapper->getBackupCodes($user);
|
$dbCodes = $this->mapper->getBackupCodes($user);
|
||||||
|
|
||||||
foreach ($dbCodes as $dbCode) {
|
foreach ($dbCodes as $dbCode) {
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
style('twofactor_backupcodes', 'style');
|
style('twofactor_backupcodes', 'style');
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
script('twofactor_backupcodes', 'settings');
|
script('twofactor_backupcodes', 'settings');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2017 Christoph Wurst <christoph@winzerhof-wurst.at>
|
* @copyright Copyright (c) 2017 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue