Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

protonemedia/eddy-server-management

507 stars
2 code files
View protonemedia/eddy-server-management on GitHub

app/Models/Credentials.php

Open in GitHub
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Casts\AsEncryptedArrayObject;
use Illuminate\Database\Eloquent\Model;
 
class Credentials extends Model
{
// ...
 
public function scopeCanBeUsedByTeam(Builder $query, Team $team)
{
$query->where(function (Builder $credentialsQuery) use ($team) {
$credentialsQuery->whereNull('team_id')->orWhere('team_id', $team->id);
});
 
$query->where(function (Builder $credentialsQuery) use ($team) {
$credentialsQuery->whereHas('user.ownedTeams', fn (Builder $ownedTeams) => $ownedTeams->where($ownedTeams->qualifyColumn('id'), $team->id));
$credentialsQuery->orWhereHas('user.teams', fn (Builder $teams) => $teams->where($teams->qualifyColumn('id'), $team->id));
});
 
}
 
// ...
}

app/Http/Controllers/ServerController.php

Open in GitHub
use App\Models\Credentials;
use App\Provider;
use Illuminate\Http\Request;
 
class ServerController extends Controller
{
public function create(Request $request)
{
// ...
$credentials = $this->user()
->credentials()
->provider(Provider::forServers())
->canBeUsedByTeam($this->team())
->select('id', 'name', 'provider')
->get()
->mapWithKeys(fn (Credentials $credentials) => [$credentials->id => $credentials->nameWithProvider]);
// ...
}
 
// ...
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.