mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 05:25:15 +01:00 
			
		
		
		
	Fix: https://github.com/go-gitea/gitea/issues/33519 As discussed in [PR #33614](https://github.com/go-gitea/gitea/pull/33614), the ScopedAccessTokenSelector Vue component is not particularly useful. This PR removes the component and reverts to using HTML templates. It also introduces some (hopefully) useful refactoring. The Vue component was causing the UX bug reported in the linked issue. Required form fields are now properly working, as expected (see screenshot).  --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2019 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package integration
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
	"net/url"
 | 
						|
	"strings"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	auth_model "code.gitea.io/gitea/models/auth"
 | 
						|
	"code.gitea.io/gitea/models/unittest"
 | 
						|
	user_model "code.gitea.io/gitea/models/user"
 | 
						|
	api "code.gitea.io/gitea/modules/structs"
 | 
						|
	"code.gitea.io/gitea/tests"
 | 
						|
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
)
 | 
						|
 | 
						|
func TestAPIAdminOrgCreate(t *testing.T) {
 | 
						|
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
						|
		session := loginUser(t, "user1")
 | 
						|
		token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteAdmin)
 | 
						|
 | 
						|
		org := api.CreateOrgOption{
 | 
						|
			UserName:    "user2_org",
 | 
						|
			FullName:    "User2's organization",
 | 
						|
			Description: "This organization created by admin for user2",
 | 
						|
			Website:     "https://try.gitea.io",
 | 
						|
			Location:    "Shanghai",
 | 
						|
			Visibility:  "private",
 | 
						|
		}
 | 
						|
		req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org).
 | 
						|
			AddTokenAuth(token)
 | 
						|
		resp := MakeRequest(t, req, http.StatusCreated)
 | 
						|
 | 
						|
		var apiOrg api.Organization
 | 
						|
		DecodeJSON(t, resp, &apiOrg)
 | 
						|
 | 
						|
		assert.Equal(t, org.UserName, apiOrg.Name)
 | 
						|
		assert.Equal(t, org.FullName, apiOrg.FullName)
 | 
						|
		assert.Equal(t, org.Description, apiOrg.Description)
 | 
						|
		assert.Equal(t, org.Website, apiOrg.Website)
 | 
						|
		assert.Equal(t, org.Location, apiOrg.Location)
 | 
						|
		assert.Equal(t, org.Visibility, apiOrg.Visibility)
 | 
						|
 | 
						|
		unittest.AssertExistsAndLoadBean(t, &user_model.User{
 | 
						|
			Name:      org.UserName,
 | 
						|
			LowerName: strings.ToLower(org.UserName),
 | 
						|
			FullName:  org.FullName,
 | 
						|
		})
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
func TestAPIAdminOrgCreateBadVisibility(t *testing.T) {
 | 
						|
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
						|
		session := loginUser(t, "user1")
 | 
						|
		token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteAdmin)
 | 
						|
 | 
						|
		org := api.CreateOrgOption{
 | 
						|
			UserName:    "user2_org",
 | 
						|
			FullName:    "User2's organization",
 | 
						|
			Description: "This organization created by admin for user2",
 | 
						|
			Website:     "https://try.gitea.io",
 | 
						|
			Location:    "Shanghai",
 | 
						|
			Visibility:  "notvalid",
 | 
						|
		}
 | 
						|
		req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org).
 | 
						|
			AddTokenAuth(token)
 | 
						|
		MakeRequest(t, req, http.StatusUnprocessableEntity)
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
func TestAPIAdminOrgCreateNotAdmin(t *testing.T) {
 | 
						|
	defer tests.PrepareTestEnv(t)()
 | 
						|
	nonAdminUsername := "user2"
 | 
						|
	session := loginUser(t, nonAdminUsername)
 | 
						|
	token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeAll)
 | 
						|
	org := api.CreateOrgOption{
 | 
						|
		UserName:    "user2_org",
 | 
						|
		FullName:    "User2's organization",
 | 
						|
		Description: "This organization created by admin for user2",
 | 
						|
		Website:     "https://try.gitea.io",
 | 
						|
		Location:    "Shanghai",
 | 
						|
		Visibility:  "public",
 | 
						|
	}
 | 
						|
	req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org).
 | 
						|
		AddTokenAuth(token)
 | 
						|
	MakeRequest(t, req, http.StatusForbidden)
 | 
						|
}
 |