diff options
author | Cirno the Strongest <1447794+CirnoT@users.noreply.github.com> | 2020-06-07 02:45:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-06 20:45:12 -0400 |
commit | 94f60e199bc504c6cfb7b853889e3ceb2a837adc (patch) | |
tree | 4bfcb10071d6b8356863f11370d91b91b19894bc /routers/org/setting.go | |
parent | 594db7fb433a386603c09676542bb0ec2e700935 (diff) | |
download | gitea-94f60e199bc504c6cfb7b853889e3ceb2a837adc.tar.gz gitea-94f60e199bc504c6cfb7b853889e3ceb2a837adc.zip |
Fix visibility of forked public repos from private orgs (#11717)
* Fix visibility of forked public repos from private orgs
* update forks visibility when org visibility is changed
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'routers/org/setting.go')
-rw-r--r-- | routers/org/setting.go | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/routers/org/setting.go b/routers/org/setting.go index 348d8cc8d8..79a99295a8 100644 --- a/routers/org/setting.go +++ b/routers/org/setting.go @@ -85,12 +85,30 @@ func SettingsPost(ctx *context.Context, form auth.UpdateOrgSettingForm) { org.Description = form.Description org.Website = form.Website org.Location = form.Location - org.Visibility = form.Visibility org.RepoAdminChangeTeamAccess = form.RepoAdminChangeTeamAccess + + visibilityChanged := form.Visibility != org.Visibility + org.Visibility = form.Visibility + if err := models.UpdateUser(org); err != nil { ctx.ServerError("UpdateUser", err) return } + + // update forks visibility + if visibilityChanged { + if err := org.GetRepositories(models.ListOptions{Page: 1, PageSize: org.NumRepos}); err != nil { + ctx.ServerError("GetRepositories", err) + return + } + for _, repo := range org.Repos { + if err := models.UpdateRepository(repo, true); err != nil { + ctx.ServerError("UpdateRepository", err) + return + } + } + } + log.Trace("Organization setting updated: %s", org.Name) ctx.Flash.Success(ctx.Tr("org.settings.update_setting_success")) ctx.Redirect(ctx.Org.OrgLink + "/settings") |