mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-19 22:14:45 +02:00
Yet more static analysis
This commit is contained in:
parent
e9ea5b1cae
commit
7c0a46deaa
@ -2,11 +2,10 @@
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\View\View;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
use App\Models\Model;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Prologue\Alerts\AlertsMessageBag;
|
||||
use Spatie\QueryBuilder\QueryBuilder;
|
||||
@ -129,22 +128,25 @@ class UserController extends Controller
|
||||
/**
|
||||
* Get a JSON response of users on the system.
|
||||
*/
|
||||
public function json(Request $request): Model|Collection
|
||||
public function json(Request $request): JsonResponse
|
||||
{
|
||||
$users = QueryBuilder::for(User::query())->allowedFilters(['email'])->paginate(25);
|
||||
$userPaginator = QueryBuilder::for(User::query())->allowedFilters(['email'])->paginate(25);
|
||||
|
||||
/** @var User[] $users */
|
||||
$users = $userPaginator->items();
|
||||
|
||||
// Handle single user requests.
|
||||
if ($request->query('user_id')) {
|
||||
$user = User::query()->findOrFail($request->input('user_id'));
|
||||
$user['md5'] = md5(strtolower($user->email));
|
||||
|
||||
return $user;
|
||||
return response()->json($user);
|
||||
}
|
||||
|
||||
return $users->map(function (User $item) {
|
||||
$item['md5'] = md5(strtolower($item->email));
|
||||
return response()->json(collect($users)->map(function (User $user) {
|
||||
$user['md5'] = md5(strtolower($user->email));
|
||||
|
||||
return $item;
|
||||
});
|
||||
return $user;
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ class NodeDeploymentController extends ApplicationApiController
|
||||
$nodes = $this->viableNodesService
|
||||
->setMemory($data['memory'])
|
||||
->setDisk($data['disk'])
|
||||
->handle($request->query('per_page'), $request->query('page'));
|
||||
->handle((int) $request->query('per_page'), (int) $request->query('page'));
|
||||
|
||||
return $this->fractal->collection($nodes)
|
||||
->transformWith($this->getTransformer(NodeTransformer::class))
|
||||
|
@ -20,7 +20,7 @@ class ActivityLogController extends ClientApiController
|
||||
->allowedSorts(['timestamp'])
|
||||
->with('actor')
|
||||
->whereNotIn('activity_logs.event', ActivityLog::DISABLED_EVENTS)
|
||||
->paginate(min($request->query('per_page', 25), 100))
|
||||
->paginate(min($request->query('per_page', '25'), 100))
|
||||
->appends($request->query());
|
||||
|
||||
return $this->fractal->collection($activity)
|
||||
|
@ -61,7 +61,7 @@ class ClientController extends ClientApiController
|
||||
$builder = $builder->whereIn('servers.id', $user->accessibleServers()->pluck('id')->all());
|
||||
}
|
||||
|
||||
$servers = $builder->paginate(min($request->query('per_page', 50), 100))->appends($request->query());
|
||||
$servers = $builder->paginate(min($request->query('per_page', '50'), 100))->appends($request->query());
|
||||
|
||||
return $this->fractal->transformWith($transformer)->collection($servers)->toArray();
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ class ActivityLogController extends ClientApiController
|
||||
->when(config('activity.hide_admin_activity'), function (Builder $builder) use ($server) {
|
||||
// We could do this with a query and a lot of joins, but that gets pretty
|
||||
// painful so for now we'll execute a simpler query.
|
||||
$subusers = $server->subusers()->pluck('user_id')->merge($server->owner_id);
|
||||
$subusers = $server->subusers()->pluck('user_id')->merge([$server->owner_id]);
|
||||
|
||||
$builder->select('activity_logs.*')
|
||||
->leftJoin('users', function (JoinClause $join) {
|
||||
@ -44,7 +44,7 @@ class ActivityLogController extends ClientApiController
|
||||
->orWhereIn('users.id', $subusers);
|
||||
});
|
||||
})
|
||||
->paginate(min($request->query('per_page', 25), 100))
|
||||
->paginate(min($request->query('per_page', '25'), 100))
|
||||
->appends($request->query());
|
||||
|
||||
return $this->fractal->collection($activity)
|
||||
|
@ -50,7 +50,7 @@ class BackupController extends ClientApiController
|
||||
return $this->fractal->collection($server->backups()->paginate($limit))
|
||||
->transformWith($this->getTransformer(BackupTransformer::class))
|
||||
->addMeta([
|
||||
'backup_count' => $server->getNonFailedBackups()->count(),
|
||||
'backup_count' => $server->backups()->nonFailed()->count(),
|
||||
])
|
||||
->toArray();
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
@ -73,4 +74,12 @@ class Backup extends Model
|
||||
{
|
||||
return $this->belongsTo(Server::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a query filtering only non-failed backups for a specific server.
|
||||
*/
|
||||
public function scopeNonFailed(Builder $query): void
|
||||
{
|
||||
$query->whereNull('completed_at')->orWhere('is_successful', true);
|
||||
}
|
||||
}
|
||||
|
@ -400,14 +400,4 @@ class Server extends Model
|
||||
->withTrashed()
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a query filtering only non-failed backups for a specific server.
|
||||
*/
|
||||
public function getNonFailedBackups(): HasMany
|
||||
{
|
||||
return $this->backups()->where(
|
||||
fn ($query) => $query->whereNull('completed_at')->orWhere('is_successful', true)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ class InitiateBackupService
|
||||
|
||||
// Check if the server has reached or exceeded its backup limit.
|
||||
// completed_at == null will cover any ongoing backups, while is_successful == true will cover any completed backups.
|
||||
$successful = $server->getNonFailedBackups();
|
||||
$successful = $server->backups()->nonFailed();
|
||||
if (!$server->backup_limit || $successful->count() >= $server->backup_limit) {
|
||||
// Do not allow the user to continue if this server is already at its limit and can't override.
|
||||
if (!$override || $server->backup_limit <= 0) {
|
||||
|
@ -34,7 +34,7 @@ class DatabasePasswordService
|
||||
$this->connection->transaction(function () use ($database, $password) {
|
||||
$this->dynamic->set('dynamic', $database->database_host_id);
|
||||
|
||||
$database->update($database->id, [
|
||||
$database->update([
|
||||
'password' => $this->encrypter->encrypt($password),
|
||||
]);
|
||||
|
||||
|
@ -45,11 +45,10 @@ class EggExporterService
|
||||
'entrypoint' => $egg->copy_script_entry,
|
||||
],
|
||||
],
|
||||
'variables' => $egg->variables->transform(function (EggVariable $item) {
|
||||
return Collection::make($item->toArray())
|
||||
'variables' => $egg->variables->map(function (EggVariable $eggVariable) {
|
||||
return Collection::make($eggVariable->toArray())
|
||||
->except(['id', 'egg_id', 'created_at', 'updated_at'])
|
||||
->merge(['field_type' => 'text'])
|
||||
->toArray();
|
||||
->merge(['field_type' => 'text']);
|
||||
}),
|
||||
];
|
||||
|
||||
|
@ -36,7 +36,7 @@ class EggUpdateImporterService
|
||||
EggVariable::unguarded(function () use ($egg, $variable) {
|
||||
$egg->variables()->updateOrCreate([
|
||||
'env_variable' => $variable['env_variable'],
|
||||
], Collection::make($variable)->except('egg_id', 'env_variable')->toArray());
|
||||
], Collection::make($variable)->except(['egg_id', 'env_variable'])->toArray());
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ class ActivityLogTransformer extends BaseClientTransformer
|
||||
// This is not for security, it is only to provide a unique identifier to
|
||||
// the front-end for each entry to improve rendering performance since there
|
||||
// is nothing else sufficiently unique to key off at this point.
|
||||
'id' => sha1($model->id),
|
||||
'id' => sha1((string) $model->id),
|
||||
'batch' => $model->batch,
|
||||
'event' => $model->event,
|
||||
'is_api' => !is_null($model->api_key_id),
|
||||
@ -73,7 +73,7 @@ class ActivityLogTransformer extends BaseClientTransformer
|
||||
|
||||
$keys = $properties->keys()->filter(fn ($key) => Str::endsWith($key, '_count'))->values();
|
||||
if ($keys->containsOneItem()) {
|
||||
$properties = $properties->merge(['count' => $properties->get($keys[0])])->except($keys[0]);
|
||||
$properties = $properties->merge(['count' => $properties->get($keys[0])])->except([$keys[0]]);
|
||||
}
|
||||
|
||||
return (object) $properties->toArray();
|
||||
|
@ -7,7 +7,7 @@ parameters:
|
||||
- app/
|
||||
|
||||
# Level 9 is the highest level
|
||||
level: 4
|
||||
level: 5
|
||||
|
||||
ignoreErrors:
|
||||
# Prologue\Alerts defines its methods from its configuration file dynamically
|
||||
|
Loading…
x
Reference in New Issue
Block a user