mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-20 02:17:09 +00:00
fix(sources): prevent 500 when deleting GitLab/GitHub apps
After delete, Livewire still re-renders the source change view (modal $refresh / morph). Policy @can checks then call isAdminOfTeam() with a null team_id and throw a TypeError (HTTP 500) before the redirect. Guard null team_id in GitlabAppPolicy and GithubAppPolicy, clear the Livewire model after delete, and skip @can when the model is gone.
This commit is contained in:
1 parent
f06bacc8e0
commit
5b370713c3
9 files changed
+150
-41
No files matched your search
@@ -144,6 +144,26 @@ it('denies team member to delete non-system-wide github app', function () {
|
||||
expect($policy->delete($user, $model))->toBeFalse();
|
||||
});
|
||||
|
||||
it('denies update when team_id is null without type error', function () {
|
||||
$user = Mockery::mock(User::class)->makePartial();
|
||||
$user->shouldNotReceive('isAdminOfTeam');
|
||||
|
||||
$model = mockGithubApp(teamId: null, isSystemWide: false);
|
||||
|
||||
$policy = new GithubAppPolicy;
|
||||
expect($policy->update($user, $model))->toBeFalse();
|
||||
});
|
||||
|
||||
it('denies delete when team_id is null without type error', function () {
|
||||
$user = Mockery::mock(User::class)->makePartial();
|
||||
$user->shouldNotReceive('isAdminOfTeam');
|
||||
|
||||
$model = mockGithubApp(teamId: null, isSystemWide: false);
|
||||
|
||||
$policy = new GithubAppPolicy;
|
||||
expect($policy->delete($user, $model))->toBeFalse();
|
||||
});
|
||||
|
||||
it('denies restore of github app', function () {
|
||||
$user = Mockery::mock(User::class)->makePartial();
|
||||
|
||||
@@ -162,7 +182,7 @@ it('denies force delete of github app', function () {
|
||||
expect($policy->forceDelete($user, $model))->toBeFalse();
|
||||
});
|
||||
|
||||
function mockGithubApp(int $teamId, bool $isSystemWide): GithubApp
|
||||
function mockGithubApp(?int $teamId, bool $isSystemWide): GithubApp
|
||||
{
|
||||
$githubApp = Mockery::mock(GithubApp::class)->makePartial();
|
||||
$githubApp->team_id = $teamId;
|
||||
|
||||
Reference in new issue
Block a user