Add support for DEFAULT_ORG_MEMBER_VISIBLE (#7669)
* Add support for DEFAULT_ORG_MEMBER_VISIBLE * Correct formatting * Improved description in cheat sheet. * Add test for DefaultOrgMemberVisible * Remove dead code
This commit is contained in:
		
							parent
							
								
									f83db078f0
								
							
						
					
					
						commit
						e3115cc019
					
				
					 5 changed files with 24 additions and 7 deletions
				
			
		|  | @ -405,6 +405,9 @@ DEFAULT_ALLOW_CREATE_ORGANIZATION = true | ||||||
| ; Private is only for member of the organization | ; Private is only for member of the organization | ||||||
| ; Public is for everyone | ; Public is for everyone | ||||||
| DEFAULT_ORG_VISIBILITY = public | DEFAULT_ORG_VISIBILITY = public | ||||||
|  | ; Default value for DefaultOrgMemberVisible | ||||||
|  | ; True will make the membership of the users visible when added to the organisation   | ||||||
|  | DEFAULT_ORG_MEMBER_VISIBLE = false | ||||||
| ; Default value for EnableDependencies | ; Default value for EnableDependencies | ||||||
| ; Repositories will use dependencies by default depending on this setting | ; Repositories will use dependencies by default depending on this setting | ||||||
| DEFAULT_ENABLE_DEPENDENCIES = true | DEFAULT_ENABLE_DEPENDENCIES = true | ||||||
|  |  | ||||||
|  | @ -246,6 +246,7 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`. | ||||||
| - `SHOW_REGISTRATION_BUTTON`: **! DISABLE\_REGISTRATION**: Show Registration Button | - `SHOW_REGISTRATION_BUTTON`: **! DISABLE\_REGISTRATION**: Show Registration Button | ||||||
| - `AUTO_WATCH_NEW_REPOS`: **true**: Enable this to let all organisation users watch new repos when they are created | - `AUTO_WATCH_NEW_REPOS`: **true**: Enable this to let all organisation users watch new repos when they are created | ||||||
| - `DEFAULT_ORG_VISIBILITY`: **public**: Set default visibility mode for organisations, either "public", "limited" or "private". | - `DEFAULT_ORG_VISIBILITY`: **public**: Set default visibility mode for organisations, either "public", "limited" or "private". | ||||||
|  | - `DEFAULT_ORG_MEMBER_VISIBLE`: **false** True will make the membership of the users visible when added to the organisation. | ||||||
| 
 | 
 | ||||||
| ## Webhook (`webhook`) | ## Webhook (`webhook`) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ import ( | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"code.gitea.io/gitea/modules/log" | 	"code.gitea.io/gitea/modules/log" | ||||||
|  | 	"code.gitea.io/gitea/modules/setting" | ||||||
| 	"code.gitea.io/gitea/modules/structs" | 	"code.gitea.io/gitea/modules/structs" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-xorm/xorm" | 	"github.com/go-xorm/xorm" | ||||||
|  | @ -480,8 +481,9 @@ func AddOrgUser(orgID, uid int64) error { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ou := &OrgUser{ | 	ou := &OrgUser{ | ||||||
| 		UID:   uid, | 		UID:      uid, | ||||||
| 		OrgID: orgID, | 		OrgID:    orgID, | ||||||
|  | 		IsPublic: setting.Service.DefaultOrgMemberVisible, | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if _, err := sess.Insert(ou); err != nil { | 	if _, err := sess.Insert(ou); err != nil { | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ package models | ||||||
| import ( | import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
|  | 	"code.gitea.io/gitea/modules/setting" | ||||||
| 	"code.gitea.io/gitea/modules/structs" | 	"code.gitea.io/gitea/modules/structs" | ||||||
| 
 | 
 | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
|  | @ -429,20 +430,28 @@ func TestChangeOrgUserStatus(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| func TestAddOrgUser(t *testing.T) { | func TestAddOrgUser(t *testing.T) { | ||||||
| 	assert.NoError(t, PrepareTestDatabase()) | 	assert.NoError(t, PrepareTestDatabase()) | ||||||
| 	testSuccess := func(orgID, userID int64) { | 	testSuccess := func(orgID, userID int64, isPublic bool) { | ||||||
| 		org := AssertExistsAndLoadBean(t, &User{ID: orgID}).(*User) | 		org := AssertExistsAndLoadBean(t, &User{ID: orgID}).(*User) | ||||||
| 		expectedNumMembers := org.NumMembers | 		expectedNumMembers := org.NumMembers | ||||||
| 		if !BeanExists(t, &OrgUser{OrgID: orgID, UID: userID}) { | 		if !BeanExists(t, &OrgUser{OrgID: orgID, UID: userID}) { | ||||||
| 			expectedNumMembers++ | 			expectedNumMembers++ | ||||||
| 		} | 		} | ||||||
| 		assert.NoError(t, AddOrgUser(orgID, userID)) | 		assert.NoError(t, AddOrgUser(orgID, userID)) | ||||||
| 		AssertExistsAndLoadBean(t, &OrgUser{OrgID: orgID, UID: userID}) | 		ou := &OrgUser{OrgID: orgID, UID: userID} | ||||||
|  | 		AssertExistsAndLoadBean(t, ou) | ||||||
|  | 		assert.Equal(t, ou.IsPublic, isPublic) | ||||||
| 		org = AssertExistsAndLoadBean(t, &User{ID: orgID}).(*User) | 		org = AssertExistsAndLoadBean(t, &User{ID: orgID}).(*User) | ||||||
| 		assert.EqualValues(t, expectedNumMembers, org.NumMembers) | 		assert.EqualValues(t, expectedNumMembers, org.NumMembers) | ||||||
| 	} | 	} | ||||||
| 	testSuccess(3, 5) | 
 | ||||||
| 	testSuccess(3, 5) | 	setting.Service.DefaultOrgMemberVisible = false | ||||||
| 	testSuccess(6, 2) | 	testSuccess(3, 5, false) | ||||||
|  | 	testSuccess(3, 5, false) | ||||||
|  | 	testSuccess(6, 2, false) | ||||||
|  | 
 | ||||||
|  | 	setting.Service.DefaultOrgMemberVisible = true | ||||||
|  | 	testSuccess(6, 3, true) | ||||||
|  | 
 | ||||||
| 	CheckConsistencyFor(t, &User{}, &Team{}) | 	CheckConsistencyFor(t, &User{}, &Team{}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -42,6 +42,7 @@ var Service struct { | ||||||
| 	NoReplyAddress                          string | 	NoReplyAddress                          string | ||||||
| 	EnableUserHeatmap                       bool | 	EnableUserHeatmap                       bool | ||||||
| 	AutoWatchNewRepos                       bool | 	AutoWatchNewRepos                       bool | ||||||
|  | 	DefaultOrgMemberVisible                 bool | ||||||
| 
 | 
 | ||||||
| 	// OpenID settings
 | 	// OpenID settings
 | ||||||
| 	EnableOpenIDSignIn bool | 	EnableOpenIDSignIn bool | ||||||
|  | @ -82,6 +83,7 @@ func newService() { | ||||||
| 	Service.AutoWatchNewRepos = sec.Key("AUTO_WATCH_NEW_REPOS").MustBool(true) | 	Service.AutoWatchNewRepos = sec.Key("AUTO_WATCH_NEW_REPOS").MustBool(true) | ||||||
| 	Service.DefaultOrgVisibility = sec.Key("DEFAULT_ORG_VISIBILITY").In("public", structs.ExtractKeysFromMapString(structs.VisibilityModes)) | 	Service.DefaultOrgVisibility = sec.Key("DEFAULT_ORG_VISIBILITY").In("public", structs.ExtractKeysFromMapString(structs.VisibilityModes)) | ||||||
| 	Service.DefaultOrgVisibilityMode = structs.VisibilityModes[Service.DefaultOrgVisibility] | 	Service.DefaultOrgVisibilityMode = structs.VisibilityModes[Service.DefaultOrgVisibility] | ||||||
|  | 	Service.DefaultOrgMemberVisible = sec.Key("DEFAULT_ORG_MEMBER_VISIBLE").MustBool() | ||||||
| 
 | 
 | ||||||
| 	sec = Cfg.Section("openid") | 	sec = Cfg.Section("openid") | ||||||
| 	Service.EnableOpenIDSignIn = sec.Key("ENABLE_OPENID_SIGNIN").MustBool(!InstallLock) | 	Service.EnableOpenIDSignIn = sec.Key("ENABLE_OPENID_SIGNIN").MustBool(!InstallLock) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue