mirror of
https://github.com/ershisan99/coolify.git
synced 2025-12-16 20:49:28 +00:00
woah
This commit is contained in:
@@ -3,11 +3,14 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\ApplicationDeploymentQueue;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Http\Request;
|
||||
use Spatie\Activitylog\Models\Activity;
|
||||
|
||||
class ApplicationController extends Controller
|
||||
{
|
||||
use AuthorizesRequests, ValidatesRequests;
|
||||
public function configuration()
|
||||
{
|
||||
$project = session('currentTeam')->load(['projects'])->projects->where('uuid', request()->route('project_uuid'))->first();
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\InstanceSettings;
|
||||
use App\Models\Project;
|
||||
use App\Models\Server;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
@@ -9,4 +12,32 @@ use Illuminate\Routing\Controller as BaseController;
|
||||
class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests, ValidatesRequests;
|
||||
|
||||
public function dashboard()
|
||||
{
|
||||
$projects = Project::ownedByCurrentTeam()->get();
|
||||
$servers = Server::ownedByCurrentTeam()->get();
|
||||
|
||||
$resources = 0;
|
||||
foreach ($projects as $project) {
|
||||
$resources += $project->applications->count();
|
||||
}
|
||||
|
||||
return view('dashboard', [
|
||||
'servers' => $servers->count(),
|
||||
'projects' => $projects->count(),
|
||||
'resources' => $resources,
|
||||
]);
|
||||
}
|
||||
public function settings()
|
||||
{
|
||||
if (auth()->user()->isAdmin()) {
|
||||
$settings = InstanceSettings::get();
|
||||
return view('settings', [
|
||||
'settings' => $settings
|
||||
]);
|
||||
} else {
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
57
app/Http/Controllers/MagicController.php
Normal file
57
app/Http/Controllers/MagicController.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Livewire\Server\PrivateKey;
|
||||
use App\Models\Environment;
|
||||
use App\Models\Project;
|
||||
use App\Models\Server;
|
||||
|
||||
class MagicController extends Controller
|
||||
{
|
||||
public function servers()
|
||||
{
|
||||
return response()->json([
|
||||
'servers' => Server::validated()->get()
|
||||
]);
|
||||
}
|
||||
public function destinations()
|
||||
{
|
||||
return response()->json([
|
||||
'destinations' => Server::destinationsByServer(request()->query('server_id'))->sortBy('name')
|
||||
]);
|
||||
}
|
||||
public function projects()
|
||||
{
|
||||
return response()->json([
|
||||
'projects' => Project::ownedByCurrentTeam()->get()
|
||||
]);
|
||||
}
|
||||
public function environments()
|
||||
{
|
||||
return response()->json([
|
||||
'environments' => Project::ownedByCurrentTeam()->whereUuid(request()->query('project_uuid'))->first()->environments
|
||||
]);
|
||||
}
|
||||
public function new_project()
|
||||
{
|
||||
$project = Project::firstOrCreate(
|
||||
['name' => request()->query('name') ?? generate_random_name()],
|
||||
['team_id' => session('currentTeam')->id]
|
||||
);
|
||||
ray($project);
|
||||
return response()->json([
|
||||
'project_uuid' => $project->uuid
|
||||
]);
|
||||
}
|
||||
public function new_environment()
|
||||
{
|
||||
$environment = Environment::firstOrCreate(
|
||||
['name' => request()->query('name') ?? generate_random_name()],
|
||||
['project_id' => Project::ownedByCurrentTeam()->whereUuid(request()->query('project_uuid'))->firstOrFail()->id]
|
||||
);
|
||||
return response()->json([
|
||||
'environment_name' => $environment->name,
|
||||
]);
|
||||
}
|
||||
}
|
||||
34
app/Http/Controllers/ServerController.php
Normal file
34
app/Http/Controllers/ServerController.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\PrivateKey;
|
||||
use App\Models\Server;
|
||||
|
||||
class ServerController extends Controller
|
||||
{
|
||||
public function all()
|
||||
{
|
||||
return view('server.all', [
|
||||
'servers' => Server::ownedByCurrentTeam()->get()
|
||||
]);
|
||||
}
|
||||
public function create()
|
||||
{
|
||||
return view('server.create', [
|
||||
'private_keys' => PrivateKey::ownedByCurrentTeam()->get(),
|
||||
]);
|
||||
}
|
||||
public function show()
|
||||
{
|
||||
return view('server.show', [
|
||||
'server' => Server::ownedByCurrentTeam()->whereUuid(request()->server_uuid)->firstOrFail(),
|
||||
]);
|
||||
}
|
||||
public function proxy()
|
||||
{
|
||||
return view('server.proxy', [
|
||||
'server' => Server::ownedByCurrentTeam()->whereUuid(request()->server_uuid)->firstOrFail(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ class Create extends Component
|
||||
'team_id' => session('currentTeam')->id
|
||||
]);
|
||||
if ($this->from === 'server') {
|
||||
return redirect()->route('server.new');
|
||||
return redirect()->route('server.create');
|
||||
}
|
||||
return redirect()->route('private-key.show', ['private_key_uuid' => $private_key->uuid]);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
|
||||
class PrivateKey extends BaseModel
|
||||
{
|
||||
protected $fillable = [
|
||||
@@ -10,6 +11,10 @@ class PrivateKey extends BaseModel
|
||||
'private_key',
|
||||
'team_id',
|
||||
];
|
||||
static public function ownedByCurrentTeam()
|
||||
{
|
||||
return PrivateKey::whereTeamId(session('currentTeam')->id);
|
||||
}
|
||||
public function servers()
|
||||
{
|
||||
return $this->hasMany(Server::class);
|
||||
|
||||
@@ -22,6 +22,11 @@ class Project extends BaseModel
|
||||
'team_id',
|
||||
'project_id'
|
||||
];
|
||||
static public function ownedByCurrentTeam()
|
||||
{
|
||||
return Project::whereTeamId(session('currentTeam')->id);
|
||||
}
|
||||
|
||||
public function environments()
|
||||
{
|
||||
return $this->hasMany(Environment::class);
|
||||
|
||||
@@ -53,28 +53,21 @@ class Server extends BaseModel
|
||||
{
|
||||
return $this->hasOne(ServerSetting::class);
|
||||
}
|
||||
static public function ownedByCurrentTeam()
|
||||
{
|
||||
return Server::whereTeamId(session('currentTeam')->id);
|
||||
}
|
||||
|
||||
static public function validated()
|
||||
{
|
||||
return Server::where('team_id', session('currentTeam')->id)->whereRelation('settings', 'is_validated', true)->get();
|
||||
return Server::ownedByCurrentTeam()->whereRelation('settings', 'is_validated', true);
|
||||
}
|
||||
|
||||
static public function destinations(string|null $server_id = null)
|
||||
static public function destinationsByServer(string $server_id)
|
||||
{
|
||||
if ($server_id) {
|
||||
$server = Server::where('team_id', session('currentTeam')->id)->where('id', $server_id)->firstOrFail();
|
||||
$standaloneDocker = collect($server->standaloneDockers->all());
|
||||
$swarmDocker = collect($server->swarmDockers->all());
|
||||
return $standaloneDocker->concat($swarmDocker);
|
||||
} else {
|
||||
$servers = Server::where('team_id', session('currentTeam')->id)->get();
|
||||
$standaloneDocker = $servers->map(function ($server) {
|
||||
return $server->standaloneDockers;
|
||||
})->flatten();
|
||||
$swarmDocker = $servers->map(function ($server) {
|
||||
return $server->swarmDockers;
|
||||
})->flatten();
|
||||
return $standaloneDocker->concat($swarmDocker);
|
||||
}
|
||||
$server = Server::ownedByCurrentTeam()->get()->where('id', $server_id)->firstOrFail();
|
||||
$standaloneDocker = collect($server->standaloneDockers->all());
|
||||
$swarmDocker = collect($server->swarmDockers->all());
|
||||
return $standaloneDocker->concat($swarmDocker);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ class User extends Authenticatable
|
||||
$model->uuid = (string) new Cuid2(7);
|
||||
});
|
||||
}
|
||||
public function isPartOfRootTeam()
|
||||
public function isAdmin()
|
||||
{
|
||||
$found_root_team = auth()->user()->teams->filter(function ($team) {
|
||||
if ($team->id == 0) {
|
||||
|
||||
Reference in New Issue
Block a user