Documentation ¶
Index ¶
- Constants
- Variables
- func APIContexter() func(http.Handler) http.Handler
- func AccessLogger() func(http.Handler) http.Handler
- func CanEnableEditor() func(ctx *Context)
- func CheckRepoScopedToken(ctx *Context, repo *repo_model.Repository, ...)
- func ComposeGoGetImport(owner, repo string) string
- func Contexter() func(next http.Handler) http.Handler
- func EarlyResponseForGoGetMeta(ctx *Context)
- func GenerateCsrfToken(key, userID, actionID string, now time.Time) string
- func GetImageCaptcha() *captcha.Captcha
- func GetOrganizationByParams(ctx *Context)
- func GetQueryBeforeSince(ctx *Base) (before, since int64, err error)
- func GitHookService() func(ctx *Context)
- func HandleOrgAssignment(ctx *Context, args ...bool)
- func OrgAssignment(args ...bool) func(ctx *Context)
- func OverrideContext(ctx *PrivateContext) (cancel context.CancelFunc)
- func PackageAssignment() func(ctx *Context)
- func PackageAssignmentAPI() func(ctx *APIContext)
- func PackageContexter() func(next http.Handler) http.Handler
- func ParseCsrfToken(token string) (issueTime time.Time, ok bool)
- func PrivateContexter() func(http.Handler) http.Handler
- func RedirectToRepo(ctx *Base, redirectRepoID int64)
- func RedirectToUser(ctx *Base, userName string, redirectUserID int64)
- func ReferencesGitRepo(allowEmpty ...bool) func(ctx *APIContext) (cancel context.CancelFunc)
- func RepoAssignment(ctx *Context) context.CancelFunc
- func RepoMustNotBeArchived() func(ctx *Context)
- func RepoRef() func(*Context) context.CancelFunc
- func RepoRefByType(refType RepoRefType, ignoreNotExistErr ...bool) func(*Context) context.CancelFunc
- func RepoRefForAPI(next http.Handler) http.Handler
- func RequireRepoAdmin() func(ctx *Context)
- func RequireRepoReader(unitType unit.Type) func(ctx *Context)
- func RequireRepoReaderOr(unitTypes ...unit.Type) func(ctx *Context)
- func RequireRepoWriter(unitType unit.Type) func(ctx *Context)
- func RequireRepoWriterOr(unitTypes ...unit.Type) func(ctx *Context)
- func RetrieveBaseRepo(ctx *Context, repo *repo_model.Repository)
- func RetrieveTemplateRepo(ctx *Context, repo *repo_model.Repository)
- func SetCaptchaData(ctx *Context)
- func UnitTypes() func(ctx *Context)
- func UserAssignmentAPI() func(ctx *APIContext)
- func UserAssignmentWeb() func(ctx *Context)
- func UserIDAssignmentAPI() func(ctx *APIContext)
- func ValidCsrfToken(token, key, userID, actionID string, now time.Time) bool
- func VerifyCaptcha(ctx *Context, tpl base.TplName, form any)
- type APIConflict
- type APIContext
- func (ctx *APIContext) Error(status int, title string, obj any)
- func (ctx *APIContext) GetErrMsg() string
- func (ctx *APIContext) HasAPIError() bool
- func (ctx *APIContext) InternalServerError(err error)
- func (ctx *APIContext) IsUserRepoAdmin() bool
- func (ctx *APIContext) IsUserRepoWriter(unitTypes []unit.Type) bool
- func (ctx *APIContext) IsUserSiteAdmin() bool
- func (ctx *APIContext) NotFound(objs ...any)
- func (ctx *APIContext) NotFoundOrServerError(logMsg string, errCheck func(error) bool, logErr error)
- func (ctx *APIContext) ServerError(title string, err error)
- func (ctx *APIContext) SetLinkHeader(total, pageSize int)
- type APIEmpty
- type APIError
- type APIForbiddenError
- type APIInvalidTopicsError
- type APINotFound
- type APIOrganization
- type APIRedirect
- type APIRepoArchivedError
- type APIString
- type APIValidationError
- type Base
- func (b *Base) AppendAccessControlExposeHeaders(names ...string)
- func (b *Base) AppendContextValue(key, value any) any
- func (b *Base) AppendContextValueFunc(key any, valueFn func() any) any
- func (b *Base) Deadline() (deadline time.Time, ok bool)
- func (b *Base) Done() <-chan struct{}
- func (b *Base) Err() error
- func (b *Base) Error(status int, contents ...string)
- func (b *Base) FormBool(key string) bool
- func (b *Base) FormInt(key string) int
- func (b *Base) FormInt64(key string) int64
- func (b *Base) FormOptionalBool(key string) optional.Option[bool]
- func (b *Base) FormString(key string) string
- func (b *Base) FormStrings(key string) []string
- func (b *Base) FormTrim(key string) string
- func (b *Base) GetData() middleware.ContextData
- func (b *Base) JSON(status int, content any)
- func (b *Base) Params(p string) string
- func (b *Base) ParamsInt64(p string) int64
- func (b *Base) PathParamRaw(p string) string
- func (b *Base) PlainText(status int, text string)
- func (b *Base) PlainTextBytes(status int, bs []byte)
- func (b *Base) Redirect(location string, status ...int)
- func (b *Base) RemoteAddr() string
- func (b *Base) RespHeader() http.Header
- func (b *Base) ServeContent(r io.ReadSeeker, opts *ServeHeaderOptions)
- func (b *Base) SetFormString(key, value string)
- func (b *Base) SetParams(k, v string)
- func (b *Base) SetServeHeaders(opt *ServeHeaderOptions)
- func (b *Base) SetTotalCountHeader(total int64)
- func (b *Base) Status(status int)
- func (b *Base) Tr(msg string, args ...any) template.HTML
- func (b *Base) TrN(cnt any, key1, keyN string, args ...any) template.HTML
- func (b *Base) Value(key any) any
- func (b *Base) Write(bs []byte) (int, error)
- func (b *Base) Written() bool
- func (b *Base) WrittenStatus() int
- type CSRFProtector
- type CanCommitToBranchResults
- type Context
- func (ctx *Context) DeleteSiteCookie(name string)
- func (ctx *Context) GetErrMsg() string
- func (ctx *Context) GetSiteCookie(name string) string
- func (ctx *Context) HTML(status int, name base.TplName)
- func (ctx *Context) HasError() bool
- func (ctx *Context) IsUserRepoAdmin() bool
- func (ctx *Context) IsUserRepoWriter(unitTypes []unit.Type) bool
- func (ctx *Context) IsUserSiteAdmin() bool
- func (ctx *Context) JSONError(msg any)
- func (ctx *Context) JSONOK()
- func (ctx *Context) JSONRedirect(redirect string)
- func (ctx *Context) JSONTemplate(tmpl base.TplName)
- func (ctx *Context) NotFound(logMsg string, logErr error)
- func (ctx *Context) NotFoundOrServerError(logMsg string, errCheck func(error) bool, logErr error)
- func (ctx *Context) RedirectToCurrentSite(location ...string)
- func (ctx *Context) RenderToHTML(name base.TplName, data map[string]any) (template.HTML, error)
- func (ctx *Context) RenderWithErr(msg any, tpl base.TplName, form any)
- func (ctx *Context) ServerError(logMsg string, logErr error)
- func (ctx *Context) SetSiteCookie(name, value string, maxAge int)
- func (ctx *Context) UploadStream() (rd io.ReadCloser, needToClose bool, err error)
- type CsrfOptions
- type Organization
- type Package
- type Pagination
- type PrivateContext
- type PullRequest
- type Render
- type RepoRefType
- type Repository
- func (r *Repository) BranchNameSubURL() string
- func (r *Repository) CanCommitToBranch(ctx context.Context, doer *user_model.User) (CanCommitToBranchResults, error)
- func (r *Repository) CanCreateBranch() bool
- func (r *Repository) CanCreateIssueDependencies(ctx context.Context, user *user_model.User, isPull bool) bool
- func (r *Repository) CanEnableEditor(ctx context.Context, user *user_model.User) bool
- func (r *Repository) CanUseTimetracker(ctx context.Context, issue *issues_model.Issue, user *user_model.User) bool
- func (r *Repository) CanWriteToBranch(ctx context.Context, user *user_model.User, branch string) bool
- func (r *Repository) FileExists(path, branch string) (bool, error)
- func (r *Repository) GetCommitGraphsCount(ctx context.Context, hidePRRefs bool, branches, files []string) (int64, error)
- func (r *Repository) GetCommitsCount() (int64, error)
- func (r *Repository) GetEditorconfig(optCommit ...*git.Commit) (cfg *editorconfig.Editorconfig, warning, err error)
- func (r *Repository) GetObjectFormat() git.ObjectFormat
- type Response
- type ResponseWriter
- type ServeHeaderOptions
- type TemplateContext
- type ValidateContext
Constants ¶
const CookieNameFlash = "gitea_flash"
const CsrfTokenTimeout = 24 * time.Hour
CsrfTokenTimeout represents the duration that XSRF tokens are valid. It is exported so clients may set cookie timeouts that match generated tokens.
Variables ¶
var CsrfTokenRegenerationInterval = 10 * time.Minute
CsrfTokenRegenerationInterval is the interval between token generations, old tokens are still valid before CsrfTokenTimeout
var WebContextKey = webContextKeyType{}
Functions ¶
func APIContexter ¶ added in v1.22.0
APIContexter returns apicontext as middleware
func AccessLogger ¶ added in v1.22.0
AccessLogger returns a middleware to log access logger
func CanEnableEditor ¶ added in v1.22.0
func CanEnableEditor() func(ctx *Context)
CanEnableEditor checks if the user is allowed to write to the branch of the repo
func CheckRepoScopedToken ¶ added in v1.22.0
func CheckRepoScopedToken(ctx *Context, repo *repo_model.Repository, level auth_model.AccessTokenScopeLevel)
CheckRepoScopedToken check whether personal access token has repo scope
func ComposeGoGetImport ¶ added in v1.22.0
ComposeGoGetImport returns go-get-import meta content.
func EarlyResponseForGoGetMeta ¶ added in v1.22.0
func EarlyResponseForGoGetMeta(ctx *Context)
EarlyResponseForGoGetMeta responses appropriate go-get meta with status 200 if user does not have actual access to the requested repository, or the owner or repository does not exist at all. This is particular a workaround for "go get" command which does not respect .netrc file.
func GenerateCsrfToken ¶ added in v1.22.0
GenerateCsrfToken returns a URL-safe secure XSRF token that expires in CsrfTokenTimeout hours. key is a secret key for your application. userID is a unique identifier for the user. actionID is the action the user is taking (e.g. POSTing to a particular path).
func GetImageCaptcha ¶ added in v1.22.0
GetImageCaptcha returns global image captcha
func GetOrganizationByParams ¶ added in v1.22.0
func GetOrganizationByParams(ctx *Context)
func GetQueryBeforeSince ¶ added in v1.22.0
GetQueryBeforeSince return parsed time (unix format) from URL query's before and since
func GitHookService ¶ added in v1.22.0
func GitHookService() func(ctx *Context)
GitHookService checks if repository Git hooks service has been enabled.
func HandleOrgAssignment ¶ added in v1.22.0
HandleOrgAssignment handles organization assignment
func OrgAssignment ¶ added in v1.22.0
OrgAssignment returns a middleware to handle organization assignment
func OverrideContext ¶ added in v1.22.0
func OverrideContext(ctx *PrivateContext) (cancel context.CancelFunc)
OverrideContext overrides the underlying request context for Done() etc. This function should be used when there is a need for work to continue even if the request has been cancelled. Primarily this affects hook/post-receive and hook/proc-receive both of which need to continue working even if the underlying request has timed out from the ssh/http push
func PackageAssignment ¶ added in v1.22.0
func PackageAssignment() func(ctx *Context)
PackageAssignment returns a middleware to handle Context.Package assignment
func PackageAssignmentAPI ¶ added in v1.22.0
func PackageAssignmentAPI() func(ctx *APIContext)
PackageAssignmentAPI returns a middleware to handle Context.Package assignment
func PackageContexter ¶ added in v1.22.0
PackageContexter initializes a package context for a request.
func ParseCsrfToken ¶ added in v1.22.0
func PrivateContexter ¶ added in v1.22.0
PrivateContexter returns apicontext as middleware
func RedirectToRepo ¶ added in v1.22.0
RedirectToRepo redirect to a differently-named repository
func RedirectToUser ¶ added in v1.22.0
RedirectToUser redirect to a differently-named user
func ReferencesGitRepo ¶ added in v1.22.0
func ReferencesGitRepo(allowEmpty ...bool) func(ctx *APIContext) (cancel context.CancelFunc)
ReferencesGitRepo injects the GitRepo into the Context you can optional skip the IsEmpty check
func RepoAssignment ¶ added in v1.22.0
func RepoAssignment(ctx *Context) context.CancelFunc
RepoAssignment returns a middleware to handle repository assignment
func RepoMustNotBeArchived ¶ added in v1.22.0
func RepoMustNotBeArchived() func(ctx *Context)
RepoMustNotBeArchived checks if a repo is archived
func RepoRef ¶ added in v1.22.0
func RepoRef() func(*Context) context.CancelFunc
RepoRef handles repository reference names when the ref name is not explicitly given
func RepoRefByType ¶ added in v1.22.0
func RepoRefByType(refType RepoRefType, ignoreNotExistErr ...bool) func(*Context) context.CancelFunc
RepoRefByType handles repository reference name for a specific type of repository reference
func RepoRefForAPI ¶ added in v1.22.0
RepoRefForAPI handles repository reference names when the ref name is not explicitly given
func RequireRepoAdmin ¶ added in v1.22.0
func RequireRepoAdmin() func(ctx *Context)
RequireRepoAdmin returns a middleware for requiring repository admin permission
func RequireRepoReader ¶ added in v1.22.0
RequireRepoReader returns a middleware for requiring repository read to the specify unitType
func RequireRepoReaderOr ¶ added in v1.22.0
RequireRepoReaderOr returns a middleware for requiring repository write to one of the unit permission
func RequireRepoWriter ¶ added in v1.22.0
RequireRepoWriter returns a middleware for requiring repository write to the specify unitType
func RequireRepoWriterOr ¶ added in v1.22.0
RequireRepoWriterOr returns a middleware for requiring repository write to one of the unit permission
func RetrieveBaseRepo ¶ added in v1.22.0
func RetrieveBaseRepo(ctx *Context, repo *repo_model.Repository)
RetrieveBaseRepo retrieves base repository
func RetrieveTemplateRepo ¶ added in v1.22.0
func RetrieveTemplateRepo(ctx *Context, repo *repo_model.Repository)
RetrieveTemplateRepo retrieves template repository used to generate this repository
func SetCaptchaData ¶ added in v1.22.0
func SetCaptchaData(ctx *Context)
SetCaptchaData sets common captcha data
func UnitTypes ¶
func UnitTypes() func(ctx *Context)
UnitTypes returns a middleware to set unit types to context variables.
func UserAssignmentAPI ¶
func UserAssignmentAPI() func(ctx *APIContext)
UserAssignmentAPI returns a middleware to handle context-user assignment for api routes
func UserAssignmentWeb ¶
func UserAssignmentWeb() func(ctx *Context)
UserAssignmentWeb returns a middleware to handle context-user assignment for web routes
func UserIDAssignmentAPI ¶ added in v1.19.1
func UserIDAssignmentAPI() func(ctx *APIContext)
UserIDAssignmentAPI returns a middleware to handle context-user assignment for api routes
func ValidCsrfToken ¶ added in v1.22.0
ValidCsrfToken returns true if token is a valid and unexpired token returned by Generate.
Types ¶
type APIConflict ¶ added in v1.22.0
type APIConflict struct{}
APIConflict is a conflict empty response swagger:response conflict
type APIContext ¶ added in v1.22.0
type APIContext struct { *Base Cache cache.Cache Doer *user_model.User // current signed-in user IsSigned bool IsBasicAuth bool ContextUser *user_model.User // the user which is being visited, in most cases it differs from Doer Repo *Repository Org *APIOrganization Package *Package }
APIContext is a specific context for API service
func GetAPIContext ¶ added in v1.22.0
func GetAPIContext(req *http.Request) *APIContext
GetAPIContext returns a context for API routes
func (*APIContext) Error ¶ added in v1.22.0
func (ctx *APIContext) Error(status int, title string, obj any)
Error responds with an error message to client with given obj as the message. If status is 500, also it prints error to log.
func (*APIContext) GetErrMsg ¶ added in v1.22.0
func (ctx *APIContext) GetErrMsg() string
GetErrMsg returns error message in form validation.
func (*APIContext) HasAPIError ¶ added in v1.22.0
func (ctx *APIContext) HasAPIError() bool
HasAPIError returns true if error occurs in form validation.
func (*APIContext) InternalServerError ¶ added in v1.22.0
func (ctx *APIContext) InternalServerError(err error)
InternalServerError responds with an error message to the client with the error as a message and the file and line of the caller.
func (*APIContext) IsUserRepoAdmin ¶ added in v1.22.0
func (ctx *APIContext) IsUserRepoAdmin() bool
IsUserRepoAdmin returns true if current user is admin in current repo
func (*APIContext) IsUserRepoWriter ¶ added in v1.22.0
func (ctx *APIContext) IsUserRepoWriter(unitTypes []unit.Type) bool
IsUserRepoWriter returns true if current user has write privilege in current repo
func (*APIContext) IsUserSiteAdmin ¶ added in v1.22.0
func (ctx *APIContext) IsUserSiteAdmin() bool
IsUserSiteAdmin returns true if current user is a site admin
func (*APIContext) NotFound ¶ added in v1.22.0
func (ctx *APIContext) NotFound(objs ...any)
NotFound handles 404s for APIContext String will replace message, errors will be added to a slice
func (*APIContext) NotFoundOrServerError ¶ added in v1.22.0
func (ctx *APIContext) NotFoundOrServerError(logMsg string, errCheck func(error) bool, logErr error)
NotFoundOrServerError use error check function to determine if the error is about not found. It responds with 404 status code for not found error, or error context description for logging purpose of 500 server error.
func (*APIContext) ServerError ¶ added in v1.22.0
func (ctx *APIContext) ServerError(title string, err error)
ServerError responds with error message, status is 500
func (*APIContext) SetLinkHeader ¶ added in v1.22.0
func (ctx *APIContext) SetLinkHeader(total, pageSize int)
SetLinkHeader sets pagination link header by given total number and page size.
type APIEmpty ¶ added in v1.22.0
type APIEmpty struct{}
APIEmpty is an empty response swagger:response empty
type APIForbiddenError ¶ added in v1.22.0
type APIForbiddenError struct {
APIError
}
APIForbiddenError is a forbidden error response swagger:response forbidden
type APIInvalidTopicsError ¶ added in v1.22.0
type APIInvalidTopicsError struct { Message string `json:"message"` InvalidTopics []string `json:"invalidTopics"` }
APIInvalidTopicsError is error format response to invalid topics swagger:response invalidTopicsError
type APINotFound ¶ added in v1.22.0
type APINotFound struct{}
APINotFound is a not found empty response swagger:response notFound
type APIOrganization ¶ added in v1.22.0
type APIOrganization struct { Organization *organization.Organization Team *organization.Team }
APIOrganization contains organization and team
type APIRedirect ¶ added in v1.22.0
type APIRedirect struct{}
APIRedirect is a redirect response swagger:response redirect
type APIRepoArchivedError ¶ added in v1.22.0
type APIRepoArchivedError struct {
APIError
}
APIRepoArchivedError is an error that is raised when an archived repo should be modified swagger:response repoArchivedError
type APIString ¶ added in v1.22.0
type APIString string
APIString is a string response swagger:response string
type APIValidationError ¶ added in v1.22.0
APIValidationError is error format response related to input validation swagger:response validationError
type Base ¶ added in v1.22.0
type Base struct { Resp ResponseWriter Req *http.Request // Data is prepared by ContextDataStore middleware, this field only refers to the pre-created/prepared ContextData. // Although it's mainly used for MVC templates, sometimes it's also used to pass data between middlewares/handler Data middleware.ContextData // Locale is mainly for Web context, although the API context also uses it in some cases: message response, form validation Locale translation.Locale // contains filtered or unexported fields }
func NewBaseContext ¶ added in v1.22.0
func NewBaseContext(resp http.ResponseWriter, req *http.Request) (b *Base, closeFunc func())
func (*Base) AppendAccessControlExposeHeaders ¶ added in v1.22.0
AppendAccessControlExposeHeaders append headers by name to "Access-Control-Expose-Headers" header
func (*Base) AppendContextValue ¶ added in v1.22.0
func (*Base) AppendContextValueFunc ¶ added in v1.22.0
func (*Base) FormBool ¶ added in v1.22.0
FormBool returns true if the value for the provided key in the form is "1", "true" or "on"
func (*Base) FormInt ¶ added in v1.22.0
FormInt returns the first value for the provided key in the form as an int
func (*Base) FormInt64 ¶ added in v1.22.0
FormInt64 returns the first value for the provided key in the form as an int64
func (*Base) FormOptionalBool ¶ added in v1.22.0
FormOptionalBool returns an optional.Some(true) or optional.Some(false) if the value for the provided key exists in the form else it returns optional.None[bool]()
func (*Base) FormString ¶ added in v1.22.0
FormString returns the first value matching the provided key in the form as a string
func (*Base) FormStrings ¶ added in v1.22.0
FormStrings returns a string slice for the provided key from the form
func (*Base) FormTrim ¶ added in v1.22.0
FormTrim returns the first value for the provided key in the form as a space trimmed string
func (*Base) GetData ¶ added in v1.22.0
func (b *Base) GetData() middleware.ContextData
func (*Base) ParamsInt64 ¶ added in v1.22.0
ParamsInt64 returns the param on route as int64
func (*Base) PathParamRaw ¶ added in v1.22.0
func (*Base) PlainTextBytes ¶ added in v1.22.0
PlainTextBytes renders bytes as plain text
func (*Base) RemoteAddr ¶ added in v1.22.0
RemoteAddr returns the client machine ip address
func (*Base) RespHeader ¶ added in v1.22.0
RespHeader returns the response header
func (*Base) ServeContent ¶ added in v1.22.0
func (b *Base) ServeContent(r io.ReadSeeker, opts *ServeHeaderOptions)
ServeContent serves content to http request
func (*Base) SetFormString ¶ added in v1.22.0
func (*Base) SetServeHeaders ¶ added in v1.22.0
func (b *Base) SetServeHeaders(opt *ServeHeaderOptions)
func (*Base) SetTotalCountHeader ¶ added in v1.22.0
SetTotalCountHeader set "X-Total-Count" header
func (*Base) Written ¶ added in v1.22.0
Written returns true if there are something sent to web browser
func (*Base) WrittenStatus ¶ added in v1.22.0
type CSRFProtector ¶ added in v1.22.0
type CSRFProtector interface { // GetHeaderName returns HTTP header to search for token. GetHeaderName() string // GetFormName returns form value to search for token. GetFormName() string // GetToken returns the token. GetToken() string // Validate validates the token in http context. Validate(ctx *Context) // DeleteCookie deletes the cookie DeleteCookie(ctx *Context) }
CSRFProtector represents a CSRF protector and is used to get the current token and validate the token.
func PrepareCSRFProtector ¶ added in v1.22.0
func PrepareCSRFProtector(opt CsrfOptions, ctx *Context) CSRFProtector
PrepareCSRFProtector returns a CSRFProtector to be used for every request. Additionally, depending on options set, generated tokens will be sent via Header and/or Cookie.
type CanCommitToBranchResults ¶ added in v1.22.0
type CanCommitToBranchResults struct { CanCommitToBranch bool EditorEnabled bool UserCanPush bool RequireSigned bool WillSign bool SigningKey string WontSignReason string }
CanCommitToBranchResults represents the results of CanCommitToBranch
type Context ¶ added in v1.22.0
type Context struct { *Base TemplateContext TemplateContext Render Render PageData map[string]any // data used by JavaScript modules in one page, it's `window.config.pageData` Cache cache.Cache Csrf CSRFProtector Flash *middleware.Flash Session session.Store Link string // current request URL (without query string) Doer *user_model.User // current signed-in user IsSigned bool IsBasicAuth bool ContextUser *user_model.User // the user which is being visited, in most cases it differs from Doer Repo *Repository Org *Organization Package *Package }
Context represents context of a request.
func GetWebContext ¶ added in v1.22.0
func NewWebContext ¶ added in v1.22.0
func (*Context) DeleteSiteCookie ¶ added in v1.22.0
DeleteSiteCookie convenience function to delete most cookies consistently CSRF and a few others are the exception here
func (*Context) GetSiteCookie ¶ added in v1.22.0
GetSiteCookie returns given cookie value from request header.
func (*Context) HTML ¶ added in v1.22.0
HTML calls Context.HTML and renders the template to HTTP response
func (*Context) HasError ¶ added in v1.22.0
HasError returns true if error occurs in form validation. Attention: this function changes ctx.Data and ctx.Flash
func (*Context) IsUserRepoAdmin ¶ added in v1.22.0
IsUserRepoAdmin returns true if current user is admin in current repo
func (*Context) IsUserRepoWriter ¶ added in v1.22.0
IsUserRepoWriter returns true if current user has write privilege in current repo
func (*Context) IsUserSiteAdmin ¶ added in v1.22.0
IsUserSiteAdmin returns true if current user is a site admin
func (*Context) JSONRedirect ¶ added in v1.22.0
func (*Context) JSONTemplate ¶ added in v1.22.0
JSONTemplate renders the template as JSON response keep in mind that the template is processed in HTML context, so JSON-things should be handled carefully, eg: by JSEscape
func (*Context) NotFound ¶ added in v1.22.0
NotFound displays a 404 (Not Found) page and prints the given error, if any.
func (*Context) NotFoundOrServerError ¶ added in v1.22.0
NotFoundOrServerError use error check function to determine if the error is about not found. It responds with 404 status code for not found error, or error context description for logging purpose of 500 server error. TODO: remove the "errCheck" and use util.ErrNotFound to check
func (*Context) RedirectToCurrentSite ¶ added in v1.22.0
RedirectToCurrentSite redirects to first not empty URL which belongs to current site
func (*Context) RenderToHTML ¶ added in v1.22.0
RenderToHTML renders the template content to a HTML string
func (*Context) RenderWithErr ¶ added in v1.22.0
RenderWithErr used for page has form validation but need to prompt error to users.
func (*Context) ServerError ¶ added in v1.22.0
ServerError displays a 500 (Internal Server Error) page and prints the given error, if any.
func (*Context) SetSiteCookie ¶ added in v1.22.0
SetSiteCookie convenience function to set most cookies consistently CSRF and a few others are the exception here
func (*Context) UploadStream ¶ added in v1.22.0
func (ctx *Context) UploadStream() (rd io.ReadCloser, needToClose bool, err error)
UploadStream returns the request body or the first form file Only form files need to get closed.
type CsrfOptions ¶ added in v1.22.0
type CsrfOptions struct { // The global secret value used to generate Tokens. Secret string // HTTP header used to set and get token. Header string // Form value used to set and get token. Form string // Cookie value used to set and get token. Cookie string // Cookie domain. CookieDomain string // Cookie path. CookiePath string CookieHTTPOnly bool // SameSite set the cookie SameSite type SameSite http.SameSite // Key used for getting the unique ID per user. SessionKey string // If true, send token via X-Csrf-Token header. SetHeader bool // If true, send token via _csrf cookie. SetCookie bool // Set the Secure flag to true on the cookie. Secure bool // Disallow Origin appear in request header. Origin bool // Cookie lifetime. Default is 0 CookieLifeTime int // contains filtered or unexported fields }
CsrfOptions maintains options to manage behavior of Generate.
type Organization ¶ added in v1.22.0
type Organization struct { IsOwner bool IsMember bool IsTeamMember bool // Is member of team. IsTeamAdmin bool // In owner team or team that has admin permission level. Organization *organization.Organization OrgLink string CanCreateOrgRepo bool PublicMemberOnly bool // Only display public members Team *organization.Team Teams []*organization.Team }
Organization contains organization context
func (*Organization) CanReadUnit ¶ added in v1.22.0
func (org *Organization) CanReadUnit(ctx *Context, unitType unit.Type) bool
func (*Organization) CanWriteUnit ¶ added in v1.22.0
func (org *Organization) CanWriteUnit(ctx *Context, unitType unit.Type) bool
type Package ¶ added in v1.22.0
type Package struct { Owner *user_model.User AccessMode perm.AccessMode Descriptor *packages_model.PackageDescriptor }
Package contains owner, access mode and optional the package descriptor
type Pagination ¶ added in v1.22.0
Pagination provides a pagination via paginator.Paginator and additional configurations for the link params used in rendering
func NewPagination ¶ added in v1.22.0
func NewPagination(total, pagingNum, current, numPages int) *Pagination
NewPagination creates a new instance of the Pagination struct. "pagingNum" is "page size" or "limit", "current" is "page"
func (*Pagination) AddParamString ¶ added in v1.22.0
func (p *Pagination) AddParamString(key, value string)
AddParamString adds a string parameter directly
func (*Pagination) GetParams ¶ added in v1.22.0
func (p *Pagination) GetParams() template.URL
GetParams returns the configured URL params
func (*Pagination) SetDefaultParams ¶ added in v1.22.0
func (p *Pagination) SetDefaultParams(ctx *Context)
SetDefaultParams sets common pagination params that are often used
type PrivateContext ¶ added in v1.22.0
type PrivateContext struct { *Base Override context.Context Repo *Repository }
PrivateContext represents a context for private routes
func GetPrivateContext ¶ added in v1.22.0
func GetPrivateContext(req *http.Request) *PrivateContext
GetPrivateContext returns a context for Private routes
func (*PrivateContext) Deadline ¶ added in v1.22.0
func (ctx *PrivateContext) Deadline() (deadline time.Time, ok bool)
Deadline is part of the interface for context.Context and we pass this to the request context
func (*PrivateContext) Done ¶ added in v1.22.0
func (ctx *PrivateContext) Done() <-chan struct{}
Done is part of the interface for context.Context and we pass this to the request context
func (*PrivateContext) Err ¶ added in v1.22.0
func (ctx *PrivateContext) Err() error
Err is part of the interface for context.Context and we pass this to the request context
type PullRequest ¶ added in v1.22.0
type PullRequest struct { BaseRepo *repo_model.Repository Allowed bool SameRepo bool HeadInfoSubURL string // [<user>:]<branch> url segment }
PullRequest contains information to make a pull request
type Render ¶ added in v1.22.0
type Render interface { TemplateLookup(tmpl string, templateCtx context.Context) (templates.TemplateExecutor, error) HTML(w io.Writer, status int, name string, data any, templateCtx context.Context) error }
Render represents a template render
type RepoRefType ¶ added in v1.22.0
type RepoRefType int
RepoRefType type of repo reference
const ( // RepoRefLegacy unknown type, make educated guess and redirect. // for backward compatibility with previous URL scheme RepoRefLegacy RepoRefType = iota // RepoRefAny is for usage where educated guess is needed // but redirect can not be made RepoRefAny // RepoRefBranch branch RepoRefBranch // RepoRefTag tag RepoRefTag // RepoRefCommit commit RepoRefCommit // RepoRefBlob blob RepoRefBlob )
func (RepoRefType) RefTypeIncludesBranches ¶ added in v1.22.0
func (rt RepoRefType) RefTypeIncludesBranches() bool
RefTypeIncludesBranches returns true if ref type can be a branch
func (RepoRefType) RefTypeIncludesTags ¶ added in v1.22.0
func (rt RepoRefType) RefTypeIncludesTags() bool
RefTypeIncludesTags returns true if ref type can be a tag
type Repository ¶ added in v1.22.0
type Repository struct { access_model.Permission IsWatching bool IsViewBranch bool IsViewTag bool IsViewCommit bool Repository *repo_model.Repository Owner *user_model.User Commit *git.Commit Tag *git.Tag GitRepo *git.Repository RefName string BranchName string TagName string TreePath string CommitID string RepoLink string CloneLink repo_model.CloneLink CommitsCount int64 PullRequest *PullRequest }
Repository contains information to operate a repository
func (*Repository) BranchNameSubURL ¶ added in v1.22.0
func (r *Repository) BranchNameSubURL() string
BranchNameSubURL sub-URL for the BranchName field
func (*Repository) CanCommitToBranch ¶ added in v1.22.0
func (r *Repository) CanCommitToBranch(ctx context.Context, doer *user_model.User) (CanCommitToBranchResults, error)
CanCommitToBranch returns true if repository is editable and user has proper access level
and branch is not protected for push
func (*Repository) CanCreateBranch ¶ added in v1.22.0
func (r *Repository) CanCreateBranch() bool
CanCreateBranch returns true if repository is editable and user has proper access level.
func (*Repository) CanCreateIssueDependencies ¶ added in v1.22.0
func (r *Repository) CanCreateIssueDependencies(ctx context.Context, user *user_model.User, isPull bool) bool
CanCreateIssueDependencies returns whether or not a user can create dependencies.
func (*Repository) CanEnableEditor ¶ added in v1.22.0
func (r *Repository) CanEnableEditor(ctx context.Context, user *user_model.User) bool
CanEnableEditor returns true if repository is editable and user has proper access level.
func (*Repository) CanUseTimetracker ¶ added in v1.22.0
func (r *Repository) CanUseTimetracker(ctx context.Context, issue *issues_model.Issue, user *user_model.User) bool
CanUseTimetracker returns whether or not a user can use the timetracker.
func (*Repository) CanWriteToBranch ¶ added in v1.22.0
func (r *Repository) CanWriteToBranch(ctx context.Context, user *user_model.User, branch string) bool
CanWriteToBranch checks if the branch is writable by the user
func (*Repository) FileExists ¶ added in v1.22.0
func (r *Repository) FileExists(path, branch string) (bool, error)
FileExists returns true if a file exists in the given repo branch
func (*Repository) GetCommitGraphsCount ¶ added in v1.22.0
func (r *Repository) GetCommitGraphsCount(ctx context.Context, hidePRRefs bool, branches, files []string) (int64, error)
GetCommitGraphsCount returns cached commit count for current view
func (*Repository) GetCommitsCount ¶ added in v1.22.0
func (r *Repository) GetCommitsCount() (int64, error)
GetCommitsCount returns cached commit count for current view
func (*Repository) GetEditorconfig ¶ added in v1.22.0
func (r *Repository) GetEditorconfig(optCommit ...*git.Commit) (cfg *editorconfig.Editorconfig, warning, err error)
GetEditorconfig returns the .editorconfig definition if found in the HEAD of the default repo branch.
func (*Repository) GetObjectFormat ¶ added in v1.22.0
func (r *Repository) GetObjectFormat() git.ObjectFormat
type Response ¶ added in v1.22.0
type Response struct { http.ResponseWriter // contains filtered or unexported fields }
Response represents a response
func WrapResponseWriter ¶ added in v1.22.0
func WrapResponseWriter(resp http.ResponseWriter) *Response
func (*Response) Before ¶ added in v1.22.0
func (r *Response) Before(f func(ResponseWriter))
Before allows for a function to be called before the ResponseWriter has been written to. This is useful for setting headers or any other operations that must happen before a response has been written.
func (*Response) WriteHeader ¶ added in v1.22.0
WriteHeader write status code
func (*Response) WrittenStatus ¶ added in v1.22.0
WrittenStatus returned status code written
type ResponseWriter ¶ added in v1.22.0
type ResponseWriter interface { http.ResponseWriter http.Flusher web_types.ResponseStatusProvider Before(func(ResponseWriter)) Status() int // used by access logger template Size() int // used by access logger template }
ResponseWriter represents a response writer for HTTP
type ServeHeaderOptions ¶ added in v1.22.0
type ServeHeaderOptions httplib.ServeHeaderOptions
type TemplateContext ¶ added in v1.22.0
func NewTemplateContext ¶ added in v1.22.0
func NewTemplateContext(ctx context.Context) TemplateContext
func NewTemplateContextForWeb ¶ added in v1.22.0
func NewTemplateContextForWeb(ctx *Context) TemplateContext
func (TemplateContext) Deadline ¶ added in v1.22.0
func (c TemplateContext) Deadline() (deadline time.Time, ok bool)
func (TemplateContext) Done ¶ added in v1.22.0
func (c TemplateContext) Done() <-chan struct{}
func (TemplateContext) Err ¶ added in v1.22.0
func (c TemplateContext) Err() error
func (TemplateContext) Value ¶ added in v1.22.0
func (c TemplateContext) Value(key any) any
type ValidateContext ¶ added in v1.22.0
type ValidateContext struct {
*Base
}
ValidateContext is a special context for form validation middleware. It may be different from other contexts.
func GetValidateContext ¶ added in v1.22.0
func GetValidateContext(req *http.Request) (ctx *ValidateContext)
GetValidateContext gets a context for middleware form validation