mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Clarify permission "HasAccess" behavior (#30585)
Follow #30495 "HasAccess" behavior wasn't clear, to make it clear: * Use a new name `HasAnyUnitAccess`, it will be easier to review related code and permission problems. * Separate everyone access mode to a separate field, then all calls to HasAccess are reverted to old behavior before #30495. * Add new tests. --------- Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
		| @@ -374,7 +374,7 @@ func removeRepositoryFromTeam(ctx context.Context, t *organization.Team, repo *r | ||||
| 		return fmt.Errorf("GetTeamMembers: %w", err) | ||||
| 	} | ||||
| 	for _, member := range teamMembers { | ||||
| 		has, err := access_model.HasAccess(ctx, member.ID, repo) | ||||
| 		has, err := access_model.HasAnyUnitAccess(ctx, member.ID, repo) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} else if has { | ||||
|   | ||||
| @@ -387,7 +387,7 @@ func StartRepositoryTransfer(ctx context.Context, doer, newOwner *user_model.Use | ||||
| 	} | ||||
|  | ||||
| 	// In case the new owner would not have sufficient access to the repo, give access rights for read | ||||
| 	hasAccess, err := access_model.HasAccess(ctx, newOwner.ID, repo) | ||||
| 	hasAccess, err := access_model.HasAnyUnitAccess(ctx, newOwner.ID, repo) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|   | ||||
| @@ -67,13 +67,13 @@ func TestStartRepositoryTransferSetPermission(t *testing.T) { | ||||
| 	repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3}) | ||||
| 	repo.Owner = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) | ||||
|  | ||||
| 	hasAccess, err := access_model.HasAccess(db.DefaultContext, recipient.ID, repo) | ||||
| 	hasAccess, err := access_model.HasAnyUnitAccess(db.DefaultContext, recipient.ID, repo) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.False(t, hasAccess) | ||||
|  | ||||
| 	assert.NoError(t, StartRepositoryTransfer(db.DefaultContext, doer, recipient, repo, nil)) | ||||
|  | ||||
| 	hasAccess, err = access_model.HasAccess(db.DefaultContext, recipient.ID, repo) | ||||
| 	hasAccess, err = access_model.HasAnyUnitAccess(db.DefaultContext, recipient.ID, repo) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.True(t, hasAccess) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user