fix(org,team): guard the owner team rename, show permission-only team access and tidy member lookups

Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
bircni committed 2026-10-18 20:02:11 +02:00
1 parent dd9e05c6b9
commit dfb56eae67
10 files changed
+124 -12

No files matched your search

+32
View File
@@ -108,6 +108,38 @@ func TestOrganizationCreateSendsSuppliedPreferences(t *testing.T) {
require.Equal(t, Organization{ID: 5, Name: "acme", Visibility: "limited", RepoAdminChangeTeamAccess: true}, item)
}
func TestOrganizationMembershipChecksReportWhatGiteaRefuses(t *testing.T) {
client := newTestClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case "/api/v1/orgs/acme/members/bob":
http.Redirect(w, r, "/org/acme/public_members", http.StatusSeeOther)
case "/api/v1/orgs/acme/members/bbo":
w.WriteHeader(http.StatusNotFound)
_, _ = w.Write([]byte(`{"message":"user does not exist [uid: 0, name: bbo]"}`))
default:
w.WriteHeader(http.StatusNotFound)
}
}))
service := Organizations{Client: client}
_, err := service.IsMember(context.Background(), "acme", "bob")
require.True(t, IsForbidden(err), "%v", err)
_, err = service.IsMember(context.Background(), "acme", "bbo")
require.EqualError(t, err, `user "bbo" not found`)
member, err := service.IsMember(context.Background(), "acme", "carol")
require.NoError(t, err)
require.False(t, member)
}
func TestOrganizationCreateNamesTheTakenName(t *testing.T) {
client := newTestClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusUnprocessableEntity)
_, _ = w.Write([]byte(`{"message":"user already exists [name: bob]"}`))
}))
name := "bob"
_, err := (Organizations{Client: client}).Create(context.Background(), OrganizationOptions{Name: &name})
require.EqualError(t, err, `name "bob" already exists`)
}
func TestOrganizationMembershipRequests(t *testing.T) {
var requests []string
client := newTestClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {