fix bug when update owner team then visit team's repo return 404 (#6119)

tokarchuk/v1.17
Lunny Xiao 6 years ago committed by techknowlogick
parent df30010dbd
commit 134e55510e
  1. 9
      models/repo_permission.go
  2. 11
      models/repo_permission_test.go
  3. 2
      routers/org/teams.go

@ -151,6 +151,15 @@ func getUserRepoPermission(e Engine, repo *Repository, user *User) (perm Permiss
return return
} }
// if user in an owner team
for _, team := range teams {
if team.Authorize >= AccessModeOwner {
perm.AccessMode = AccessModeOwner
perm.UnitsMode = nil
return
}
}
for _, u := range repo.Units { for _, u := range repo.Units {
var found bool var found bool
for _, team := range teams { for _, team := range teams {

@ -219,6 +219,17 @@ func TestRepoPermissionPrivateOrgRepo(t *testing.T) {
assert.True(t, perm.CanWrite(unit.Type)) assert.True(t, perm.CanWrite(unit.Type))
} }
// update team information and then check permission
team := AssertExistsAndLoadBean(t, &Team{ID: 5}).(*Team)
err = UpdateTeamUnits(team, nil)
assert.NoError(t, err)
perm, err = GetUserRepoPermission(repo, owner)
assert.NoError(t, err)
for _, unit := range repo.Units {
assert.True(t, perm.CanRead(unit.Type))
assert.True(t, perm.CanWrite(unit.Type))
}
// org member team tester // org member team tester
tester := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User) tester := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
perm, err = GetUserRepoPermission(repo, tester) perm, err = GetUserRepoPermission(repo, tester)

@ -288,8 +288,6 @@ func EditTeamPost(ctx *context.Context, form auth.CreateTeamForm) {
}) })
} }
models.UpdateTeamUnits(t, units) models.UpdateTeamUnits(t, units)
} else {
models.UpdateTeamUnits(t, nil)
} }
if ctx.HasError() { if ctx.HasError() {

Loading…
Cancel
Save