Even more static analysis!

This commit is contained in:
Lance Pioch
2024-03-17 13:16:39 -04:00
parent c7bf124a15
commit e9ea5b1cae
18 changed files with 31 additions and 55 deletions

View File

@ -20,20 +20,20 @@ class Fractal extends SpatieFractal
public function createData(): Scope
{
// Set the serializer by default.
if (is_null($this->serializer)) {
if (empty($this->serializer)) {
$this->serializer = new PanelSerializer();
}
// Automatically set the paginator on the response object if the
// data being provided implements a paginator.
if (is_null($this->paginator) && $this->data instanceof LengthAwarePaginator) {
if ($this->data instanceof LengthAwarePaginator) {
$this->paginator = new IlluminatePaginatorAdapter($this->data);
}
// If the resource name is not set attempt to pull it off the transformer
// itself and set it automatically.
if (
is_null($this->resourceName)
empty($this->resourceName)
&& $this->transformer instanceof TransformerAbstract
&& method_exists($this->transformer, 'getResourceName')
) {

View File

@ -22,7 +22,6 @@ class ApiController extends Controller
public function __construct(
private AlertsMessageBag $alert,
private KeyCreationService $keyCreationService,
private ViewFactory $view,
) {
}

View File

@ -3,7 +3,6 @@
namespace App\Http\Controllers\Admin;
use Illuminate\View\View;
use Illuminate\View\Factory as ViewFactory;
use App\Http\Controllers\Controller;
use App\Services\Helpers\SoftwareVersionService;
@ -12,7 +11,7 @@ class BaseController extends Controller
/**
* BaseController constructor.
*/
public function __construct(private SoftwareVersionService $version, private ViewFactory $view)
public function __construct(private SoftwareVersionService $version)
{
}

View File

@ -24,7 +24,6 @@ class DatabaseController extends Controller
private HostCreationService $creationService,
private HostDeletionService $deletionService,
private HostUpdateService $updateService,
private ViewFactory $view
) {
}

View File

@ -20,7 +20,6 @@ class CreateServerController extends Controller
public function __construct(
private AlertsMessageBag $alert,
private ServerCreationService $creationService,
private ViewFactory $view
) {
}

View File

@ -21,7 +21,6 @@ class AdvancedController extends Controller
private AlertsMessageBag $alert,
private ConfigRepository $config,
private Kernel $kernel,
private ViewFactory $view
) {
}

View File

@ -24,7 +24,6 @@ class IndexController extends Controller
private AlertsMessageBag $alert,
private Kernel $kernel,
private SoftwareVersionService $versionService,
private ViewFactory $view
) {
}

View File

@ -26,7 +26,6 @@ class MailController extends Controller
private ConfigRepository $config,
private Encrypter $encrypter,
private Kernel $kernel,
private ViewFactory $view
) {
}

View File

@ -50,10 +50,9 @@ class StartupController extends ClientApiController
*/
public function update(UpdateStartupVariableRequest $request, Server $server): array
{
/** @var \App\Models\EggVariable $variable */
$variable = $server->variables()->where('env_variable', $request->input('key'))->first();
if (is_null($variable) || !$variable->user_viewable) {
if (!$variable || !$variable->user_viewable) {
throw new BadRequestHttpException('The environment variable you are trying to edit does not exist.');
} elseif (!$variable->user_editable) {
throw new BadRequestHttpException('The environment variable you are trying to edit is read-only.');

View File

@ -69,7 +69,7 @@ class LoginCheckpointController extends AbstractLoginController
} else {
$decrypted = $this->encrypter->decrypt($user->totp_secret);
if ($this->google2FA->verifyKey($decrypted, (string) $request->input('authentication_code') ?? '', config('panel.auth.2fa.window'))) {
if ($this->google2FA->verifyKey($decrypted, (string) $request->input('authentication_code'), config('panel.auth.2fa.window'))) {
Event::dispatch(new ProvidedAuthenticationToken($user));
return $this->sendLoginResponse($user, $request);

View File

@ -27,7 +27,9 @@ class ResourceBelongsToServer
public function handle(Request $request, \Closure $next): mixed
{
$params = $request->route()->parameters();
if (is_null($params) || !$params['server'] instanceof Server) {
$server = $params['server'] ?? null;
if (!$server instanceof Server) {
throw new \InvalidArgumentException('This middleware cannot be used in a context that is missing a server in the parameters.');
}

View File

@ -35,7 +35,6 @@ class RequireTwoFactorAuthentication
*/
public function handle(Request $request, \Closure $next): mixed
{
/** @var \App\Models\User $user */
$user = $request->user();
$uri = rtrim($request->getRequestUri(), '/') . '/';
$current = $request->route()->getName();
@ -44,6 +43,8 @@ class RequireTwoFactorAuthentication
return $next($request);
}
/** @var \App\Models\User $user */
$level = (int) config('panel.auth.2fa_required');
// If this setting is not configured, or the user is already using 2FA then we can just
// send them right through, nothing else needs to be checked.

View File

@ -37,12 +37,12 @@ abstract class ApplicationApiRequest extends FormRequest
throw new PanelException('An ACL resource must be defined on API requests.');
}
/** @var ApiKey $token */
$token = $this->user()->currentAccessToken();
if ($token instanceof TransientToken) {
return true;
}
/** @var ApiKey $token */
if ($token->key_type === ApiKey::TYPE_ACCOUNT) {
return true;
}

View File

@ -146,7 +146,7 @@ class Egg extends Model
*/
public function getCopyScriptInstallAttribute(): ?string
{
if (!is_null($this->script_install) || is_null($this->copy_script_from)) {
if (!empty($this->script_install) || empty($this->copy_script_from)) {
return $this->script_install;
}
@ -159,7 +159,7 @@ class Egg extends Model
*/
public function getCopyScriptEntryAttribute(): string
{
if (!is_null($this->script_entry) || is_null($this->copy_script_from)) {
if (!empty($this->script_entry) || empty($this->copy_script_from)) {
return $this->script_entry;
}
@ -172,7 +172,7 @@ class Egg extends Model
*/
public function getCopyScriptContainerAttribute(): string
{
if (!is_null($this->script_container) || is_null($this->copy_script_from)) {
if (!empty($this->script_container) || empty($this->copy_script_from)) {
return $this->script_container;
}

View File

@ -96,7 +96,6 @@ class InitiateBackupService
// Get the oldest backup the server has that is not "locked" (indicating a backup that should
// never be automatically purged). If we find a backup we will delete it and then continue with
// this process. If no backup is found that can be used an exception is thrown.
/** @var \App\Models\Backup $oldest */
$oldest = $successful->where('is_locked', false)->orderBy('created_at')->first();
if (!$oldest) {
throw new TooManyBackupsException($server->backup_limit);

View File

@ -94,40 +94,23 @@ class DatabaseManagementService
),
]);
$database = null;
return $this->connection->transaction(function () use ($data, &$database) {
$database = $this->createModel($data);
try {
return $this->connection->transaction(function () use ($data, &$database) {
$database = $this->createModel($data);
$this->dynamic->set('dynamic', $data['database_host_id']);
$this->dynamic->set('dynamic', $data['database_host_id']);
$database->createDatabase($database->database);
$database->createUser(
$database->username,
$database->remote,
$this->encrypter->decrypt($database->password),
$database->max_connections
);
$database->assignUserToDatabase($database->database, $database->username, $database->remote);
$database->flush();
$database->createDatabase($database->database);
$database->createUser(
$database->username,
$database->remote,
$this->encrypter->decrypt($database->password),
$database->max_connections
);
$database->assignUserToDatabase($database->database, $database->username, $database->remote);
$database->flush();
return $database;
});
} catch (Exception $exception) {
try {
if ($database instanceof Database) {
$database->dropDatabase($database->database);
$database->dropUser($database->username, $database->remote);
$database->flush();
}
} catch (Exception) {
// Do nothing here. We've already encountered an issue before this point so no
// reason to prioritize this error over the initial one.
}
throw $exception;
}
return $database;
});
}
/**

View File

@ -27,10 +27,9 @@ class ProcessScheduleService
*/
public function handle(Schedule $schedule, bool $now = false): void
{
/** @var \App\Models\Task $task */
$task = $schedule->tasks()->orderBy('sequence_id')->first();
if (is_null($task)) {
if (!$task) {
throw new DisplayException('Cannot process schedule for task execution: no tasks are registered.');
}

View File

@ -7,7 +7,7 @@ parameters:
- app/
# Level 9 is the highest level
level: 3
level: 4
ignoreErrors:
# Prologue\Alerts defines its methods from its configuration file dynamically