Apply fixes from StyleCI
This commit is contained in:
@@ -1,40 +1,54 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright © 2020 Miguel Nogueira
|
||||
*
|
||||
* This file is part of Raspberry Staff Manager.
|
||||
*
|
||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace App\Traits;
|
||||
|
||||
use Google2FA;
|
||||
use App\Http\Requests\Add2FASecretRequest;
|
||||
use Google2FA;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
|
||||
trait AuthenticatesTwoFactor
|
||||
{
|
||||
|
||||
public function verify2FA(Add2FASecretRequest $request)
|
||||
{
|
||||
$isValid = Google2FA::verifyKey($request->user()->twofa_secret, $request->otp);
|
||||
|
||||
if ($isValid)
|
||||
{
|
||||
Google2FA::login();
|
||||
if ($isValid) {
|
||||
Google2FA::login();
|
||||
|
||||
Log::info('SECURITY (postauth): One-time password verification succeeded', [
|
||||
'initiator' => $request->user()->email,
|
||||
'ip' => $request->ip()
|
||||
]);
|
||||
Log::info('SECURITY (postauth): One-time password verification succeeded', [
|
||||
'initiator' => $request->user()->email,
|
||||
'ip' => $request->ip(),
|
||||
]);
|
||||
|
||||
return redirect()->to($this->redirectTo);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::warning('SECURITY (preauth): One-time password verification failed', [
|
||||
'initiator' => $request->user()->email,
|
||||
'ip' => $request->ip()
|
||||
]);
|
||||
return redirect()->to($this->redirectTo);
|
||||
} else {
|
||||
Log::warning('SECURITY (preauth): One-time password verification failed', [
|
||||
'initiator' => $request->user()->email,
|
||||
'ip' => $request->ip(),
|
||||
]);
|
||||
|
||||
$request->session()->flash('error', 'Your one time password is invalid.');
|
||||
return redirect()->back();
|
||||
$request->session()->flash('error', 'Your one time password is invalid.');
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,24 +1,37 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright © 2020 Miguel Nogueira
|
||||
*
|
||||
* This file is part of Raspberry Staff Manager.
|
||||
*
|
||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace App\Traits;
|
||||
|
||||
|
||||
use App\Facades\Options;
|
||||
|
||||
trait Cancellable
|
||||
{
|
||||
|
||||
public function chooseChannelsViaOptions()
|
||||
{
|
||||
$channels = [];
|
||||
|
||||
if (Options::getOption('enable_slack_notifications') == 1)
|
||||
{
|
||||
if (Options::getOption('enable_slack_notifications') == 1) {
|
||||
array_push($channels, 'slack');
|
||||
}
|
||||
elseif(Options::getOption('enable_email_notifications') == 1)
|
||||
{
|
||||
} elseif (Options::getOption('enable_email_notifications') == 1) {
|
||||
array_push($channels, 'email');
|
||||
}
|
||||
|
||||
@@ -32,18 +45,15 @@ trait Cancellable
|
||||
|
||||
public function via($notifiable)
|
||||
{
|
||||
if ($this->optOut($notifiable))
|
||||
{
|
||||
if ($this->optOut($notifiable)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $this->channels();
|
||||
}
|
||||
|
||||
|
||||
public function optOut($notifiable)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,13 +1,30 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright © 2020 Miguel Nogueira
|
||||
*
|
||||
* This file is part of Raspberry Staff Manager.
|
||||
*
|
||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace App\Traits;
|
||||
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
trait HandlesAccountTokens
|
||||
{
|
||||
|
||||
|
||||
public function generateAccountTokens()
|
||||
{
|
||||
$deleteToken = bin2hex(openssl_random_pseudo_bytes(32));
|
||||
@@ -16,7 +33,7 @@ trait HandlesAccountTokens
|
||||
$tokens = [
|
||||
|
||||
'delete' => Hash::make($deleteToken),
|
||||
'cancel' => Hash::make($cancelToken)
|
||||
'cancel' => Hash::make($cancelToken),
|
||||
|
||||
];
|
||||
|
||||
@@ -26,26 +43,20 @@ trait HandlesAccountTokens
|
||||
return [
|
||||
|
||||
'delete' => $deleteToken,
|
||||
'cancel' => $cancelToken
|
||||
'cancel' => $cancelToken,
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
public function verifyAccountToken(string $token, string $type): bool
|
||||
{
|
||||
$tokens = json_decode($this->account_tokens);
|
||||
|
||||
if ($type == 'deleteToken')
|
||||
{
|
||||
if ($type == 'deleteToken') {
|
||||
return Hash::check($token, $tokens->delete);
|
||||
}
|
||||
elseif ($type == 'cancelToken')
|
||||
{
|
||||
} elseif ($type == 'cancelToken') {
|
||||
return Hash::check($token, $tokens->cancel);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,18 +1,33 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright © 2020 Miguel Nogueira
|
||||
*
|
||||
* This file is part of Raspberry Staff Manager.
|
||||
*
|
||||
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Raspberry Staff Manager is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace App\Traits;
|
||||
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
|
||||
use App\Http\Requests\UserDeleteRequest;
|
||||
use App\Mail\UserAccountDeleteConfirmation;
|
||||
use App\User;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
trait ReceivesAccountTokens
|
||||
{
|
||||
@@ -28,10 +43,10 @@ trait ReceivesAccountTokens
|
||||
Auth::logout();
|
||||
|
||||
$request->session()->flash('success', 'Please check your email to finish deleting your account.');
|
||||
|
||||
return redirect()->to('/');
|
||||
}
|
||||
|
||||
|
||||
public function processDeleteConfirmation(Request $request, $ID, $action, $token)
|
||||
{
|
||||
// We can't rely on Laravel's route model injection, because it'll ignore soft-deleted models,
|
||||
@@ -39,34 +54,30 @@ trait ReceivesAccountTokens
|
||||
$user = User::withTrashed()->findOrFail($ID);
|
||||
$email = $user->email;
|
||||
|
||||
switch($action)
|
||||
{
|
||||
switch ($action) {
|
||||
case 'confirm':
|
||||
|
||||
if ($user->verifyAccountToken($token, 'deleteToken'))
|
||||
{
|
||||
if ($user->verifyAccountToken($token, 'deleteToken')) {
|
||||
Log::info('SECURITY: User deleted account!', [
|
||||
|
||||
'confirmDeleteToken' => $token,
|
||||
'ipAddress' => $request->ip(),
|
||||
'email' => $user->email
|
||||
'email' => $user->email,
|
||||
|
||||
]);
|
||||
|
||||
|
||||
|
||||
|
||||
$user->forceDelete();
|
||||
|
||||
$request->session()->flash('success', 'Account permanently deleted. Thank you for using our service.');
|
||||
|
||||
return redirect()->to('/');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 'cancel':
|
||||
|
||||
if ($user->verifyAccountToken($token, 'cancelToken'))
|
||||
{
|
||||
if ($user->verifyAccountToken($token, 'cancelToken')) {
|
||||
$user->restore();
|
||||
$request->session()->flash('success', 'Account deletion cancelled! You may now login.');
|
||||
|
||||
@@ -74,11 +85,10 @@ trait ReceivesAccountTokens
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
|
||||
|
||||
abort(404, 'The page you were trying to access may not exist or may be expired.');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user