mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 13:51:35 +01:00 
			
		
		
		
	[API] Add Restricted Field to User (#14630)
* Expose Restricted field for User * Add Option to Change Restricted on User via adminEditUser API * Add test who change restricted & test if it changed it ... * make generate-swagger Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
							parent
							
								
									ce0346448f
								
							
						
					
					
						commit
						8d5c795cc4
					
				| @ -192,4 +192,18 @@ func TestAPIEditUser(t *testing.T) { | ||||
| 	errMap := make(map[string]interface{}) | ||||
| 	json.Unmarshal(resp.Body.Bytes(), &errMap) | ||||
| 	assert.EqualValues(t, "email is not allowed to be empty string", errMap["message"].(string)) | ||||
| 
 | ||||
| 	user2 := models.AssertExistsAndLoadBean(t, &models.User{LoginName: "user2"}).(*models.User) | ||||
| 	assert.Equal(t, false, user2.IsRestricted) | ||||
| 	bTrue := true | ||||
| 	req = NewRequestWithJSON(t, "PATCH", urlStr, api.EditUserOption{ | ||||
| 		// required | ||||
| 		LoginName: "user2", | ||||
| 		SourceID:  0, | ||||
| 		// to change | ||||
| 		Restricted: &bTrue, | ||||
| 	}) | ||||
| 	session.MakeRequest(t, req, http.StatusOK) | ||||
| 	user2 = models.AssertExistsAndLoadBean(t, &models.User{LoginName: "user2"}).(*models.User) | ||||
| 	assert.Equal(t, true, user2.IsRestricted) | ||||
| } | ||||
|  | ||||
| @ -17,12 +17,13 @@ func ToUser(user *models.User, signed, authed bool) *api.User { | ||||
| 		return nil | ||||
| 	} | ||||
| 	result := &api.User{ | ||||
| 		ID:        user.ID, | ||||
| 		UserName:  user.Name, | ||||
| 		FullName:  markup.Sanitize(user.FullName), | ||||
| 		Email:     user.GetEmail(), | ||||
| 		AvatarURL: user.AvatarLink(), | ||||
| 		Created:   user.CreatedUnix.AsTime(), | ||||
| 		ID:         user.ID, | ||||
| 		UserName:   user.Name, | ||||
| 		FullName:   markup.Sanitize(user.FullName), | ||||
| 		Email:      user.GetEmail(), | ||||
| 		AvatarURL:  user.AvatarLink(), | ||||
| 		Created:    user.CreatedUnix.AsTime(), | ||||
| 		Restricted: user.IsRestricted, | ||||
| 	} | ||||
| 	// hide primary email if API caller is anonymous or user keep email private | ||||
| 	if signed && (!user.KeepEmailPrivate || authed) { | ||||
|  | ||||
| @ -41,4 +41,5 @@ type EditUserOption struct { | ||||
| 	MaxRepoCreation         *int    `json:"max_repo_creation"` | ||||
| 	ProhibitLogin           *bool   `json:"prohibit_login"` | ||||
| 	AllowCreateOrganization *bool   `json:"allow_create_organization"` | ||||
| 	Restricted              *bool   `json:"restricted"` | ||||
| } | ||||
|  | ||||
| @ -30,6 +30,8 @@ type User struct { | ||||
| 	LastLogin time.Time `json:"last_login,omitempty"` | ||||
| 	// swagger:strfmt date-time | ||||
| 	Created time.Time `json:"created,omitempty"` | ||||
| 	// Is user restricted | ||||
| 	Restricted bool `json:"restricted"` | ||||
| } | ||||
| 
 | ||||
| // MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility | ||||
|  | ||||
| @ -224,6 +224,9 @@ func EditUser(ctx *context.APIContext) { | ||||
| 	if form.ProhibitLogin != nil { | ||||
| 		u.ProhibitLogin = *form.ProhibitLogin | ||||
| 	} | ||||
| 	if form.Restricted != nil { | ||||
| 		u.IsRestricted = *form.Restricted | ||||
| 	} | ||||
| 
 | ||||
| 	if err := models.UpdateUser(u); err != nil { | ||||
| 		if models.IsErrEmailAlreadyUsed(err) || models.IsErrEmailInvalid(err) { | ||||
|  | ||||
| @ -13796,6 +13796,10 @@ | ||||
|           "type": "boolean", | ||||
|           "x-go-name": "ProhibitLogin" | ||||
|         }, | ||||
|         "restricted": { | ||||
|           "type": "boolean", | ||||
|           "x-go-name": "Restricted" | ||||
|         }, | ||||
|         "source_id": { | ||||
|           "type": "integer", | ||||
|           "format": "int64", | ||||
| @ -16209,6 +16213,11 @@ | ||||
|           "description": "the user's username", | ||||
|           "type": "string", | ||||
|           "x-go-name": "UserName" | ||||
|         }, | ||||
|         "restricted": { | ||||
|           "description": "Is user restricted", | ||||
|           "type": "boolean", | ||||
|           "x-go-name": "Restricted" | ||||
|         } | ||||
|       }, | ||||
|       "x-go-package": "code.gitea.io/gitea/modules/structs" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user