@@ -17,6 +17,7 @@ import (
1717 "code.gitea.io/gitea/modules/optional"
1818 repo_module "code.gitea.io/gitea/modules/repository"
1919 "code.gitea.io/gitea/modules/setting"
20+ "code.gitea.io/gitea/modules/structs"
2021 "code.gitea.io/gitea/modules/templates"
2122 "code.gitea.io/gitea/modules/util"
2223 "code.gitea.io/gitea/modules/web"
@@ -25,7 +26,6 @@ import (
2526 "code.gitea.io/gitea/services/context"
2627 "code.gitea.io/gitea/services/forms"
2728 org_service "code.gitea.io/gitea/services/org"
28- repo_service "code.gitea.io/gitea/services/repository"
2929 user_service "code.gitea.io/gitea/services/user"
3030)
3131
@@ -83,38 +83,17 @@ func SettingsPost(ctx *context.Context) {
8383 Description : optional .Some (form .Description ),
8484 Website : optional .Some (form .Website ),
8585 Location : optional .Some (form .Location ),
86- Visibility : optional .Some (form .Visibility ),
8786 RepoAdminChangeTeamAccess : optional .Some (form .RepoAdminChangeTeamAccess ),
8887 }
8988 if ctx .Doer .IsAdmin {
9089 opts .MaxRepoCreation = optional .Some (form .MaxRepoCreation )
9190 }
9291
93- visibilityChanged := org .Visibility != form .Visibility
94-
9592 if err := user_service .UpdateUser (ctx , org .AsUser (), opts ); err != nil {
9693 ctx .ServerError ("UpdateUser" , err )
9794 return
9895 }
9996
100- // update forks visibility
101- if visibilityChanged {
102- repos , _ , err := repo_model .GetUserRepositories (ctx , repo_model.SearchRepoOptions {
103- Actor : org .AsUser (), Private : true , ListOptions : db.ListOptions {Page : 1 , PageSize : org .NumRepos },
104- })
105- if err != nil {
106- ctx .ServerError ("GetRepositories" , err )
107- return
108- }
109- for _ , repo := range repos {
110- repo .OwnerName = org .Name
111- if err := repo_service .UpdateRepository (ctx , repo , true ); err != nil {
112- ctx .ServerError ("UpdateRepository" , err )
113- return
114- }
115- }
116- }
117-
11897 log .Trace ("Organization setting updated: %s" , org .Name )
11998 ctx .Flash .Success (ctx .Tr ("org.settings.update_setting_success" ))
12099 ctx .Redirect (ctx .Org .OrgLink + "/settings" )
@@ -251,3 +230,28 @@ func SettingsRenamePost(ctx *context.Context) {
251230 ctx .Flash .Success (ctx .Tr ("org.settings.rename_success" , oldOrgName , newOrgName ))
252231 ctx .JSONRedirect (setting .AppSubURL + "/org/" + url .PathEscape (newOrgName ) + "/settings" )
253232}
233+
234+ // SettingsChangeVisibilityPost response for change organization visibility
235+ func SettingsChangeVisibilityPost (ctx * context.Context ) {
236+ visibility , ok := structs .VisibilityModes [ctx .FormString ("visibility" )]
237+ if ! ok {
238+ ctx .Flash .Error (ctx .Tr ("invalid_data" , visibility ))
239+ ctx .JSONRedirect (setting .AppSubURL + "/org/" + url .PathEscape (ctx .Org .Organization .Name ) + "/settings" )
240+ return
241+ }
242+
243+ if ctx .Org .Organization .Visibility == visibility {
244+ ctx .Flash .Info (ctx .Tr ("nothing_has_been_changed" ))
245+ ctx .JSONRedirect (setting .AppSubURL + "/org/" + url .PathEscape (ctx .Org .Organization .Name ) + "/settings" )
246+ return
247+ }
248+
249+ if err := org_service .ChangeOrganizationVisibility (ctx , ctx .Org .Organization , visibility ); err != nil {
250+ log .Error ("ChangeOrganizationVisibility: %v" , err )
251+ ctx .JSONError (ctx .Tr ("error.occurred" ))
252+ return
253+ }
254+
255+ ctx .Flash .Success (ctx .Tr ("org.settings.change_visibility_success" , ctx .Org .Organization .Name ))
256+ ctx .JSONRedirect (setting .AppSubURL + "/org/" + url .PathEscape (ctx .Org .Organization .Name ) + "/settings" )
257+ }
0 commit comments