fix: system-wide GitHub apps (#5114)
- fix(ui): system-wide GitHub Apps are not shown in the create a new Application dialog - fix: query logic error that shows all system-wide apps, regardless of whether they are public or private. - fix: clicking on a system-wide GitHub app from a team other than the one that created it resulted in a 404 error.
This commit is contained in:
parent
9c04834dab
commit
e73c9b5f98
2 changed files with 24 additions and 9 deletions
|
|
@ -33,17 +33,30 @@ protected static function booted(): void
|
|||
|
||||
public static function ownedByCurrentTeam()
|
||||
{
|
||||
return GithubApp::whereTeamId(currentTeam()->id);
|
||||
return GithubApp::where(function ($query) {
|
||||
$query->where('team_id', currentTeam()->id)
|
||||
->orWhere('is_system_wide', true);
|
||||
});
|
||||
}
|
||||
|
||||
public static function public()
|
||||
{
|
||||
return GithubApp::whereTeamId(currentTeam()->id)->whereisPublic(true)->whereNotNull('app_id')->get();
|
||||
return GithubApp::where(function ($query) {
|
||||
$query->where(function ($q) {
|
||||
$q->where('team_id', currentTeam()->id)
|
||||
->orWhere('is_system_wide', true);
|
||||
})->where('is_public', true);
|
||||
})->whereNotNull('app_id')->get();
|
||||
}
|
||||
|
||||
public static function private()
|
||||
{
|
||||
return GithubApp::whereTeamId(currentTeam()->id)->whereisPublic(false)->whereNotNull('app_id')->get();
|
||||
return GithubApp::where(function ($query) {
|
||||
$query->where(function ($q) {
|
||||
$q->where('team_id', currentTeam()->id)
|
||||
->orWhere('is_system_wide', true);
|
||||
})->where('is_public', false);
|
||||
})->whereNotNull('app_id')->get();
|
||||
}
|
||||
|
||||
public function team()
|
||||
|
|
|
|||
|
|
@ -248,15 +248,17 @@ public function sources()
|
|||
{
|
||||
$sources = collect([]);
|
||||
$github_apps = GithubApp::where(function ($query) {
|
||||
$query->where('team_id', $this->id)
|
||||
->Where('is_public', false)
|
||||
->orWhere('is_system_wide', true);
|
||||
$query->where(function ($q) {
|
||||
$q->where('team_id', $this->id)
|
||||
->orWhere('is_system_wide', true);
|
||||
})->where('is_public', false);
|
||||
})->get();
|
||||
|
||||
$gitlab_apps = GitlabApp::where(function ($query) {
|
||||
$query->where('team_id', $this->id)
|
||||
->Where('is_public', false)
|
||||
->orWhere('is_system_wide', true);
|
||||
$query->where(function ($q) {
|
||||
$q->where('team_id', $this->id)
|
||||
->orWhere('is_system_wide', true);
|
||||
})->where('is_public', false);
|
||||
})->get();
|
||||
|
||||
return $sources->merge($github_apps)->merge($gitlab_apps);
|
||||
|
|
|
|||
Loading…
Reference in a new issue