mirror of
https://github.com/Bubka/2FAuth.git
synced 2025-03-30 18:26:14 +02:00
Fix some issues detected by static analysis
This commit is contained in:
parent
808d5a0d10
commit
70c4c271cd
app
Api/v1
Controllers
GroupController.phpIconController.phpQrCodeController.phpSettingController.phpTwoFAccountController.phpUserController.php
Resources
Console/Commands/Utils
Events
Http
Controllers
Auth
LoginController.phpPasswordController.phpRegisterController.phpUserController.phpWebAuthnLoginController.phpWebAuthnManageController.phpWebAuthnRecoveryController.php
SinglePageController.phpSystemController.phpMiddleware
Models
Providers
Rules
Services
@ -17,7 +17,7 @@ class GroupController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*
|
*
|
||||||
* @return \App\Api\v1\Resources\GroupResource
|
* @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
@ -24,7 +24,7 @@ public function upload(Request $request)
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$path = $request->file('icon')->store('', 'icons');
|
$path = $request->file('icon')->store('', 'icons');
|
||||||
$response['filename'] = pathinfo($path)['basename'];
|
$response = array( "filename" => pathinfo($path)['basename']);
|
||||||
|
|
||||||
return response()->json($response, 201);
|
return response()->json($response, 201);
|
||||||
}
|
}
|
||||||
@ -54,10 +54,10 @@ public function fetch(Request $request)
|
|||||||
/**
|
/**
|
||||||
* delete an icon
|
* delete an icon
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param string $icon
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function delete($icon)
|
public function delete(string $icon)
|
||||||
{
|
{
|
||||||
Storage::disk('icons')->delete($icon);
|
Storage::disk('icons')->delete($icon);
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ class QrCodeController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Show a QR code image
|
* Show a QR code image
|
||||||
*
|
*
|
||||||
* @param App\Models\TwoFAccount $twofaccount
|
* @param \App\Models\TwoFAccount $twofaccount
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function show(TwoFAccount $twofaccount)
|
public function show(TwoFAccount $twofaccount)
|
||||||
|
@ -77,7 +77,7 @@ public function store(SettingStoreRequest $request)
|
|||||||
* @param \App\Api\v1\Requests\SettingUpdateRequest $request
|
* @param \App\Api\v1\Requests\SettingUpdateRequest $request
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function update(SettingUpdateRequest $request, $settingName)
|
public function update(SettingUpdateRequest $request, string $settingName)
|
||||||
{
|
{
|
||||||
$validated = $request->validated();
|
$validated = $request->validated();
|
||||||
|
|
||||||
@ -94,10 +94,10 @@ public function update(SettingUpdateRequest $request, $settingName)
|
|||||||
/**
|
/**
|
||||||
* Delete a setting
|
* Delete a setting
|
||||||
*
|
*
|
||||||
* @param \App\Api\v1\Requests\SettingUpdateRequest $request
|
* @param string $settingName
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function destroy($settingName)
|
public function destroy(string $settingName)
|
||||||
{
|
{
|
||||||
$setting = Settings::get($settingName);
|
$setting = Settings::get($settingName);
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ public function preview(TwoFAccountUriRequest $request)
|
|||||||
* Get a One-Time Password
|
* Get a One-Time Password
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @param int $id
|
* @param string|null $id
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function otp(Request $request, $id = null)
|
public function otp(Request $request, $id = null)
|
||||||
|
@ -12,7 +12,7 @@ class UserController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Get detailed information about a user
|
* Get detailed information about a user
|
||||||
*
|
*
|
||||||
* @return \App\Api\v1\Resources\UserResource
|
* @return \App\Api\v1\Resources\UserResource|\Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function show(Request $request)
|
public function show(Request $request)
|
||||||
{
|
{
|
||||||
|
@ -18,7 +18,7 @@ class TwoFAccountCollection extends ResourceCollection
|
|||||||
* Transform the resource collection into an array.
|
* Transform the resource collection into an array.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return array
|
* @return \Illuminate\Support\Collection
|
||||||
*/
|
*/
|
||||||
public function toArray($request)
|
public function toArray($request)
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,8 @@
|
|||||||
|
|
||||||
class IconGenerator
|
class IconGenerator
|
||||||
{
|
{
|
||||||
public static function generateIcon($serviceName, $base64icon) {
|
public static function generateIcon(string $serviceName, string $base64icon) : void
|
||||||
|
{
|
||||||
Storage::disk('icons')->put($serviceName . '.png', base64_decode($base64icon));
|
Storage::disk('icons')->put($serviceName . '.png', base64_decode($base64icon));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,6 +11,9 @@ class GroupDeleting
|
|||||||
{
|
{
|
||||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \App\Models\Group
|
||||||
|
*/
|
||||||
public $group;
|
public $group;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,6 +12,9 @@ class TwoFAccountDeleted
|
|||||||
{
|
{
|
||||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \App\Models\TwoFAccount
|
||||||
|
*/
|
||||||
public $twofaccount;
|
public $twofaccount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -85,13 +85,13 @@ protected function sendLoginResponse(Request $request)
|
|||||||
{
|
{
|
||||||
$this->clearLoginAttempts($request);
|
$this->clearLoginAttempts($request);
|
||||||
|
|
||||||
$success['name'] = $this->guard()->user()->name;
|
$name = $this->guard()->user()?->name;
|
||||||
|
|
||||||
$this->authenticated($request, $this->guard()->user());
|
$this->authenticated($request, $this->guard()->user());
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'authenticated',
|
'message' => 'authenticated',
|
||||||
'name' => $success['name']
|
'name' => $name
|
||||||
], Response::HTTP_OK);
|
], Response::HTTP_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ protected function credentials(Request $request)
|
|||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @param mixed $user
|
* @param mixed $user
|
||||||
* @return mixed
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function authenticated(Request $request, $user)
|
protected function authenticated(Request $request, $user)
|
||||||
{
|
{
|
||||||
|
@ -12,7 +12,7 @@ class PasswordController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Update the user's password.
|
* Update the user's password.
|
||||||
*
|
*
|
||||||
* @param \App\Api\v1\Requests\UserPatchPwdRequest $request
|
* @param \App\Http\Requests\UserPatchPwdRequest $request
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function update(UserPatchPwdRequest $request)
|
public function update(UserPatchPwdRequest $request)
|
||||||
|
@ -28,7 +28,7 @@ class RegisterController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Handle a registration request for the application.
|
* Handle a registration request for the application.
|
||||||
*
|
*
|
||||||
* @param \App\Api\v1\Requests\UserStoreRequest $request
|
* @param \App\Http\Requests\UserStoreRequest $request
|
||||||
* @return \Illuminate\Http\JsonResponse
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function register(UserStoreRequest $request)
|
public function register(UserStoreRequest $request)
|
||||||
|
@ -17,7 +17,7 @@ class UserController extends Controller
|
|||||||
* Update the user's profile information.
|
* Update the user's profile information.
|
||||||
*
|
*
|
||||||
* @param \App\Http\Requests\UserUpdateRequest $request
|
* @param \App\Http\Requests\UserUpdateRequest $request
|
||||||
* @return \App\Api\v1\Resources\UserResource
|
* @return \App\Api\v1\Resources\UserResource|\Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function update(UserUpdateRequest $request)
|
public function update(UserUpdateRequest $request)
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,9 @@ class WebAuthnLoginController extends Controller
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Http\JsonResponse|\Webauthn\PublicKeyCredentialRequestOptions
|
||||||
|
*/
|
||||||
public function options(Request $request)
|
public function options(Request $request)
|
||||||
{
|
{
|
||||||
// Since 2FAuth is single user designed we fetch the user instance
|
// Since 2FAuth is single user designed we fetch the user instance
|
||||||
|
@ -28,6 +28,8 @@ public function __construct()
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* List all WebAuthn registered credentials
|
* List all WebAuthn registered credentials
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
|
@ -73,7 +73,7 @@ protected function sendRecoveryResponse(Request $request, string $response): Jso
|
|||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @param string $response
|
* @param string $response
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\JsonResponse|void
|
* @return \Illuminate\Http\JsonResponse
|
||||||
* @throws \Illuminate\Validation\ValidationException
|
* @throws \Illuminate\Validation\ValidationException
|
||||||
*
|
*
|
||||||
* @codeCoverageIgnore - already covered by larapass test
|
* @codeCoverageIgnore - already covered by larapass test
|
||||||
|
@ -11,7 +11,7 @@ class SinglePageController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* return the main view
|
* return the main view
|
||||||
* @return view
|
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
@ -16,6 +16,7 @@ class SystemController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function infos(Request $request)
|
public function infos(Request $request)
|
||||||
{
|
{
|
||||||
|
$infos = array();
|
||||||
$infos['Date'] = date(DATE_RFC2822);
|
$infos['Date'] = date(DATE_RFC2822);
|
||||||
$infos['userAgent'] = $request->header('user-agent');
|
$infos['userAgent'] = $request->header('user-agent');
|
||||||
// App info
|
// App info
|
||||||
|
@ -83,7 +83,7 @@ class Kernel extends HttpKernel
|
|||||||
*
|
*
|
||||||
* This forces non-global middleware to always be in the given order.
|
* This forces non-global middleware to always be in the given order.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var string[]
|
||||||
*/
|
*/
|
||||||
protected $middlewarePriority = [
|
protected $middlewarePriority = [
|
||||||
\Illuminate\Session\Middleware\StartSession::class,
|
\Illuminate\Session\Middleware\StartSession::class,
|
||||||
|
@ -13,7 +13,7 @@ class LogUserLastSeen
|
|||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @param \Closure $next
|
* @param \Closure $next
|
||||||
* @param string|null $guard
|
* @param string|null $guards
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function handle($request, Closure $next, ...$guards)
|
public function handle($request, Closure $next, ...$guards)
|
||||||
|
@ -15,7 +15,7 @@ class Group extends Model
|
|||||||
/**
|
/**
|
||||||
* model's array form.
|
* model's array form.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var string[]
|
||||||
*/
|
*/
|
||||||
protected $fillable = ['name'];
|
protected $fillable = ['name'];
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ protected static function boot()
|
|||||||
{
|
{
|
||||||
parent::boot();
|
parent::boot();
|
||||||
|
|
||||||
static::deleted(function ($model) {
|
static::deleted(function (object $model) {
|
||||||
// @codeCoverageIgnoreStart
|
// @codeCoverageIgnoreStart
|
||||||
Log::info(sprintf('Group %s deleted', var_export($model->name, true)));
|
Log::info(sprintf('Group %s deleted', var_export($model->name, true)));
|
||||||
// @codeCoverageIgnoreEnd
|
// @codeCoverageIgnoreEnd
|
||||||
@ -75,9 +75,11 @@ protected static function boot()
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the TwoFAccounts of the group.
|
* Get the TwoFAccounts of the group.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
*/
|
*/
|
||||||
public function twofaccounts()
|
public function twofaccounts()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\TwoFAccount');
|
return $this->hasMany(\App\Models\TwoFAccount::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ class Option extends Model
|
|||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*
|
*
|
||||||
* @var [type]
|
* @var string[]
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'key',
|
'key',
|
||||||
|
@ -64,7 +64,7 @@ class TwoFAccount extends Model implements Sortable
|
|||||||
/**
|
/**
|
||||||
* model's array form.
|
* model's array form.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var string[]
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
// 'service',
|
// 'service',
|
||||||
@ -141,7 +141,7 @@ protected static function boot()
|
|||||||
{
|
{
|
||||||
parent::boot();
|
parent::boot();
|
||||||
|
|
||||||
static::saving(function ($twofaccount) {
|
static::saving(function (TwoFAccount $twofaccount) {
|
||||||
if (!$twofaccount->legacy_uri) $twofaccount->legacy_uri = $twofaccount->getURI();
|
if (!$twofaccount->legacy_uri) $twofaccount->legacy_uri = $twofaccount->getURI();
|
||||||
if ($twofaccount->otp_type == TwoFAccount::TOTP && !$twofaccount->period) $twofaccount->period = TwoFAccount::DEFAULT_PERIOD;
|
if ($twofaccount->otp_type == TwoFAccount::TOTP && !$twofaccount->period) $twofaccount->period = TwoFAccount::DEFAULT_PERIOD;
|
||||||
if ($twofaccount->otp_type == TwoFAccount::HOTP && !$twofaccount->counter) $twofaccount->counter = TwoFAccount::DEFAULT_COUNTER;
|
if ($twofaccount->otp_type == TwoFAccount::HOTP && !$twofaccount->counter) $twofaccount->counter = TwoFAccount::DEFAULT_COUNTER;
|
||||||
@ -186,7 +186,7 @@ protected static function boot()
|
|||||||
* The OTP generator.
|
* The OTP generator.
|
||||||
* Instanciated as null to keep the model light
|
* Instanciated as null to keep the model light
|
||||||
*
|
*
|
||||||
* @var
|
* @var \OTPHP\OTPInterface|null
|
||||||
*/
|
*/
|
||||||
protected $generator = null;
|
protected $generator = null;
|
||||||
|
|
||||||
@ -462,7 +462,7 @@ public function fillWithURI(string $uri, bool $isSteamTotp = false, bool $skipIc
|
|||||||
/**
|
/**
|
||||||
* Sets model attributes to STEAM values
|
* Sets model attributes to STEAM values
|
||||||
*/
|
*/
|
||||||
private function enforceAsSteam()
|
private function enforceAsSteam() : void
|
||||||
{
|
{
|
||||||
$this->otp_type = self::STEAM_TOTP;
|
$this->otp_type = self::STEAM_TOTP;
|
||||||
$this->digits = 5;
|
$this->digits = 5;
|
||||||
@ -495,7 +495,7 @@ public function getURI() : string
|
|||||||
/**
|
/**
|
||||||
* Instanciates the OTP generator with model attribute values
|
* Instanciates the OTP generator with model attribute values
|
||||||
*/
|
*/
|
||||||
private function initGenerator()
|
private function initGenerator() : void
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
switch ($this->otp_type) {
|
switch ($this->otp_type) {
|
||||||
|
@ -62,7 +62,7 @@ public function sendPasswordResetNotification($token)
|
|||||||
* set Email attribute
|
* set Email attribute
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setEmailAttribute($value)
|
public function setEmailAttribute($value) : void
|
||||||
{
|
{
|
||||||
$this->attributes['email'] = strtolower($value);
|
$this->attributes['email'] = strtolower($value);
|
||||||
}
|
}
|
||||||
@ -79,7 +79,7 @@ public function sendCredentialRecoveryNotification(string $token): void
|
|||||||
$accountRecoveryNotification = new AccountRecoveryNotification($token);
|
$accountRecoveryNotification = new AccountRecoveryNotification($token);
|
||||||
$accountRecoveryNotification->toMailUsing(null);
|
$accountRecoveryNotification->toMailUsing(null);
|
||||||
|
|
||||||
$accountRecoveryNotification->createUrlUsing(function($notifiable, $token) {
|
$accountRecoveryNotification->createUrlUsing(function(mixed $notifiable, string $token) {
|
||||||
$url = url(
|
$url = url(
|
||||||
route(
|
route(
|
||||||
'webauthn.recover',
|
'webauthn.recover',
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Event;
|
|
||||||
use Illuminate\Auth\Events\Registered;
|
use Illuminate\Auth\Events\Registered;
|
||||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||||
|
@ -60,7 +60,7 @@ public function boot()
|
|||||||
*
|
*
|
||||||
* @return string The Api namespace
|
* @return string The Api namespace
|
||||||
*/
|
*/
|
||||||
private function getApiNamespace($version)
|
private function getApiNamespace(string $version)
|
||||||
{
|
{
|
||||||
return 'App\Api\v' . $version . '\Controllers';
|
return 'App\Api\v' . $version . '\Controllers';
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ public function passes($attribute, $value)
|
|||||||
/**
|
/**
|
||||||
* Get the validation error message.
|
* Get the validation error message.
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @return string
|
* @return array|string
|
||||||
*/
|
*/
|
||||||
public function message()
|
public function message()
|
||||||
{
|
{
|
||||||
|
@ -32,7 +32,7 @@ public function passes($attribute, $value)
|
|||||||
/**
|
/**
|
||||||
* Get the validation error message.
|
* Get the validation error message.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return array|string
|
||||||
*/
|
*/
|
||||||
public function message()
|
public function message()
|
||||||
{
|
{
|
||||||
|
@ -38,7 +38,7 @@ public function passes($attribute, $value)
|
|||||||
/**
|
/**
|
||||||
* Get the validation error message.
|
* Get the validation error message.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return array|string
|
||||||
*/
|
*/
|
||||||
public function message()
|
public function message()
|
||||||
{
|
{
|
||||||
|
@ -30,7 +30,7 @@ class ReverseProxyGuard implements Guard
|
|||||||
/**
|
/**
|
||||||
* Create a new authentication guard.
|
* Create a new authentication guard.
|
||||||
*
|
*
|
||||||
* @param Illuminate\Contracts\Auth\UserProvider $provider
|
* @param \Illuminate\Contracts\Auth\UserProvider $provider
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function __construct(UserProvider $provider)
|
public function __construct(UserProvider $provider)
|
||||||
@ -71,6 +71,7 @@ public function user()
|
|||||||
// Get the user identifier from $_SERVER or apache filtered headers
|
// Get the user identifier from $_SERVER or apache filtered headers
|
||||||
$remoteUserHeader = config('auth.auth_proxy_headers.user');
|
$remoteUserHeader = config('auth.auth_proxy_headers.user');
|
||||||
$remoteUserHeader = $remoteUserHeader ?: 'REMOTE_USER';
|
$remoteUserHeader = $remoteUserHeader ?: 'REMOTE_USER';
|
||||||
|
$identifier = array();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$identifier['user'] = request()->server($remoteUserHeader) ?? apache_request_headers()[$remoteUserHeader] ?? null;
|
$identifier['user'] = request()->server($remoteUserHeader) ?? apache_request_headers()[$remoteUserHeader] ?? null;
|
||||||
|
@ -34,6 +34,7 @@ public static function encode(string $data)
|
|||||||
* Decode an uploaded QR code image
|
* Decode an uploaded QR code image
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\UploadedFile $file
|
* @param \Illuminate\Http\UploadedFile $file
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function decode(\Illuminate\Http\UploadedFile $file)
|
public static function decode(\Illuminate\Http\UploadedFile $file)
|
||||||
{
|
{
|
||||||
|
@ -39,7 +39,7 @@ public function __construct()
|
|||||||
* @param string|array $setting A single setting name or an associative array of name:value settings
|
* @param string|array $setting A single setting name or an associative array of name:value settings
|
||||||
* @return mixed string|int|boolean|null
|
* @return mixed string|int|boolean|null
|
||||||
*/
|
*/
|
||||||
public function get(string $setting)
|
public function get($setting)
|
||||||
{
|
{
|
||||||
return $this->settings->get($setting);
|
return $this->settings->get($setting);
|
||||||
}
|
}
|
||||||
@ -110,6 +110,8 @@ public function isUserDefined($key) : bool
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the settings collection
|
* Set the settings collection
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
private function build()
|
private function build()
|
||||||
{
|
{
|
||||||
@ -133,10 +135,10 @@ private function build()
|
|||||||
/**
|
/**
|
||||||
* Replaces boolean by a patterned string as appstrack/laravel-options package does not support var type
|
* Replaces boolean by a patterned string as appstrack/laravel-options package does not support var type
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Support\Collection $settings
|
* @param mixed $settings
|
||||||
* @return \Illuminate\Support\Collection
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function replaceBoolean($value)
|
private function replaceBoolean(mixed $value)
|
||||||
{
|
{
|
||||||
return is_bool($value) ? '{{' . $value . '}}' : $value;
|
return is_bool($value) ? '{{' . $value . '}}' : $value;
|
||||||
}
|
}
|
||||||
@ -145,10 +147,10 @@ private function replaceBoolean($value)
|
|||||||
/**
|
/**
|
||||||
* Replaces patterned string that represent booleans with real booleans
|
* Replaces patterned string that represent booleans with real booleans
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Support\Collection $settings
|
* @param mixed $settings
|
||||||
* @return \Illuminate\Support\Collection
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
private function restoreType($value)
|
private function restoreType(mixed $value)
|
||||||
{
|
{
|
||||||
$value = is_numeric($value) ? (int) $value : $value;
|
$value = is_numeric($value) ? (int) $value : $value;
|
||||||
|
|
||||||
|
@ -85,6 +85,7 @@ public static function convertMigrationFromGA($migrationUri) : Collection
|
|||||||
foreach ($otpParameters->getIterator() as $key => $otp_parameters) {
|
foreach ($otpParameters->getIterator() as $key => $otp_parameters) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
$parameters = array();
|
||||||
$parameters['otp_type'] = GAuthValueMapping::OTP_TYPE[OtpType::name($otp_parameters->getType())];
|
$parameters['otp_type'] = GAuthValueMapping::OTP_TYPE[OtpType::name($otp_parameters->getType())];
|
||||||
$parameters['service'] = $otp_parameters->getIssuer();
|
$parameters['service'] = $otp_parameters->getIssuer();
|
||||||
$parameters['account'] = str_replace($parameters['service'].':', '', $otp_parameters->getName());
|
$parameters['account'] = str_replace($parameters['service'].':', '', $otp_parameters->getName());
|
||||||
@ -96,8 +97,8 @@ public static function convertMigrationFromGA($migrationUri) : Collection
|
|||||||
|
|
||||||
$twofaccounts[$key] = new TwoFAccount;
|
$twofaccounts[$key] = new TwoFAccount;
|
||||||
$twofaccounts[$key]->fillWithOtpParameters($parameters);
|
$twofaccounts[$key]->fillWithOtpParameters($parameters);
|
||||||
}
|
}
|
||||||
catch (Exception $exception) {
|
catch (Exception $exception) {
|
||||||
|
|
||||||
Log::error(sprintf('Cannot instanciate a TwoFAccount object with OTP parameters from imported item #%s', $key));
|
Log::error(sprintf('Cannot instanciate a TwoFAccount object with OTP parameters from imported item #%s', $key));
|
||||||
Log::error($exception->getMessage());
|
Log::error($exception->getMessage());
|
||||||
@ -113,7 +114,7 @@ public static function convertMigrationFromGA($migrationUri) : Collection
|
|||||||
$fakeAccount->secret = $exception->getMessage();
|
$fakeAccount->secret = $exception->getMessage();
|
||||||
|
|
||||||
$twofaccounts[$key] = $fakeAccount;
|
$twofaccounts[$key] = $fakeAccount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return self::markAsDuplicate(collect($twofaccounts));
|
return self::markAsDuplicate(collect($twofaccounts));
|
||||||
|
Loading…
Reference in New Issue
Block a user