loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request 'fix: correct permission loading for limited organisation' (#6144) from gusted/forgejo-org-limited into forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6144
Reviewed-by: Otto <otto@codeberg.org>

Gusted 5a7a8784 91e4cf37

+35 -1
+1 -1
models/organization/org.go
··· 264 264 } 265 265 } 266 266 267 - if org.Visibility.IsPublic() { 267 + if org.Visibility.IsPublic() || (org.Visibility.IsLimited() && doer != nil) { 268 268 return perm.AccessModeRead 269 269 } 270 270
+34
models/organization/org_test.go
··· 9 9 10 10 "code.gitea.io/gitea/models/db" 11 11 "code.gitea.io/gitea/models/organization" 12 + "code.gitea.io/gitea/models/perm" 12 13 repo_model "code.gitea.io/gitea/models/repo" 14 + "code.gitea.io/gitea/models/unit" 13 15 "code.gitea.io/gitea/models/unittest" 14 16 user_model "code.gitea.io/gitea/models/user" 15 17 "code.gitea.io/gitea/modules/structs" ··· 482 484 assert.True(t, db.IsErrNameReserved(err)) 483 485 unittest.CheckConsistencyFor(t, &organization.Organization{}, &organization.Team{}) 484 486 } 487 + 488 + func TestUnitPermission(t *testing.T) { 489 + require.NoError(t, unittest.PrepareTestDatabase()) 490 + 491 + publicOrg := &organization.Organization{ID: 1001, Visibility: structs.VisibleTypePublic} 492 + limitedOrg := &organization.Organization{ID: 1001, Visibility: structs.VisibleTypeLimited} 493 + privateOrg := &organization.Organization{ID: 1001, Visibility: structs.VisibleTypePrivate} 494 + user := &user_model.User{ID: 1001} 495 + t.Run("Anonymous", func(t *testing.T) { 496 + t.Run("Public", func(t *testing.T) { 497 + assert.EqualValues(t, perm.AccessModeRead, publicOrg.UnitPermission(db.DefaultContext, nil, unit.TypeCode)) 498 + }) 499 + t.Run("Limited", func(t *testing.T) { 500 + assert.EqualValues(t, perm.AccessModeNone, limitedOrg.UnitPermission(db.DefaultContext, nil, unit.TypeCode)) 501 + }) 502 + t.Run("Private", func(t *testing.T) { 503 + assert.EqualValues(t, perm.AccessModeNone, privateOrg.UnitPermission(db.DefaultContext, nil, unit.TypeCode)) 504 + }) 505 + }) 506 + 507 + t.Run("Logged in", func(t *testing.T) { 508 + t.Run("Public", func(t *testing.T) { 509 + assert.EqualValues(t, perm.AccessModeRead, publicOrg.UnitPermission(db.DefaultContext, user, unit.TypeCode)) 510 + }) 511 + t.Run("Limited", func(t *testing.T) { 512 + assert.EqualValues(t, perm.AccessModeRead, limitedOrg.UnitPermission(db.DefaultContext, user, unit.TypeCode)) 513 + }) 514 + t.Run("Private", func(t *testing.T) { 515 + assert.EqualValues(t, perm.AccessModeNone, privateOrg.UnitPermission(db.DefaultContext, user, unit.TypeCode)) 516 + }) 517 + }) 518 + }