package context import ( "net/http" "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/log" "gitea.com/macaron/macaron" ) func RequireRepoReaderJson(unitType models.UnitType) macaron.Handler { return func(ctx *Context) { if !ctx.Repo.CanRead(unitType) { if log.IsTrace() { if ctx.IsSigned { log.Trace("Permission Denied: User %-v cannot read %-v in Repo %-v\n"+ "User in Repo has Permissions: %-+v", ctx.User, unitType, ctx.Repo.Repository, ctx.Repo.Permission) } else { log.Trace("Permission Denied: Anonymous user cannot read %-v in Repo %-v\n"+ "Anonymous user in Repo has Permissions: %-+v", unitType, ctx.Repo.Repository, ctx.Repo.Permission) } } ctx.JSON(http.StatusOK, models.BaseErrorMessage(ctx.Tr("error.no_right"))) return } } } func RequireRepoWriterJson(unitType models.UnitType) macaron.Handler { return func(ctx *Context) { if !ctx.Repo.CanWrite(unitType) { ctx.JSON(http.StatusOK, models.BaseErrorMessage(ctx.Tr("error.no_right"))) return } } }