You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

helper.go 972B

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright 2021 The Gitea Authors.
  2. // SPDX-License-Identifier: MIT
  3. package user
  4. import (
  5. "net/http"
  6. user_model "code.gitea.io/gitea/models/user"
  7. "code.gitea.io/gitea/modules/context"
  8. )
  9. // GetUserByParamsName get user by name
  10. func GetUserByParamsName(ctx *context.APIContext, name string) *user_model.User {
  11. username := ctx.Params(name)
  12. user, err := user_model.GetUserByName(ctx, username)
  13. if err != nil {
  14. if user_model.IsErrUserNotExist(err) {
  15. if redirectUserID, err2 := user_model.LookupUserRedirect(ctx, username); err2 == nil {
  16. context.RedirectToUser(ctx.Base, username, redirectUserID)
  17. } else {
  18. ctx.NotFound("GetUserByName", err)
  19. }
  20. } else {
  21. ctx.Error(http.StatusInternalServerError, "GetUserByName", err)
  22. }
  23. return nil
  24. }
  25. return user
  26. }
  27. // GetUserByParams returns user whose name is presented in URL (":username").
  28. func GetUserByParams(ctx *context.APIContext) *user_model.User {
  29. return GetUserByParamsName(ctx, ":username")
  30. }