mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Use User.ID instead of User.Name in ActivityPub API for Person IRI (#23823)
Thanks to @trwnh Close #23802 The ActivityPub id is an HTTPS URI that should remain constant, even if the user changes their name.
This commit is contained in:
		@@ -29,6 +29,27 @@ func UserAssignmentWeb() func(ctx *context.Context) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UserIDAssignmentAPI returns a middleware to handle context-user assignment for api routes
 | 
			
		||||
func UserIDAssignmentAPI() func(ctx *context.APIContext) {
 | 
			
		||||
	return func(ctx *context.APIContext) {
 | 
			
		||||
		userID := ctx.ParamsInt64(":user-id")
 | 
			
		||||
 | 
			
		||||
		if ctx.IsSigned && ctx.Doer.ID == userID {
 | 
			
		||||
			ctx.ContextUser = ctx.Doer
 | 
			
		||||
		} else {
 | 
			
		||||
			var err error
 | 
			
		||||
			ctx.ContextUser, err = user_model.GetUserByID(ctx, userID)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				if user_model.IsErrUserNotExist(err) {
 | 
			
		||||
					ctx.Error(http.StatusNotFound, "GetUserByID", err)
 | 
			
		||||
				} else {
 | 
			
		||||
					ctx.Error(http.StatusInternalServerError, "GetUserByID", err)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UserAssignmentAPI returns a middleware to handle context-user assignment for api routes
 | 
			
		||||
func UserAssignmentAPI() func(ctx *context.APIContext) {
 | 
			
		||||
	return func(ctx *context.APIContext) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user