controller

package
v0.0.0-...-3120d8b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2024 License: MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AdjustLocaleMiddleware

func AdjustLocaleMiddleware(inner http.Handler) http.Handler

AdjustLocaleMiddleware 调整用户的语言设置

func AdminHome

func AdminHome(w http.ResponseWriter, r *http.Request)

ArticleHomeList 文章主页

func FlarumAPICreateDiscussion

func FlarumAPICreateDiscussion(w http.ResponseWriter, r *http.Request)

FlarumAPICreateDiscussion 用户创建一条话题

func FlarumAPICreatePost

func FlarumAPICreatePost(w http.ResponseWriter, r *http.Request)

FlarumAPICreatePost flarum进行评论的接口

func FlarumAPIDiscussions

func FlarumAPIDiscussions(w http.ResponseWriter, r *http.Request)

FlarumAPIDiscussions flarum文章api

func FlarumConfirmUserAndPost

func FlarumConfirmUserAndPost(w http.ResponseWriter, r *http.Request)

FlarumConfirmUserAndPost 确认当前的用户的评论信息 FIXME: 这个函数我只知道是在评论时, @其他用户时会调用这个接口, 但是接口具体的行为还不太了解

func FlarumDiscussionDetail

func FlarumDiscussionDetail(w http.ResponseWriter, r *http.Request)

FlarumDiscussionDetail 获取flarum中的某篇帖子 TODO: #12

func FlarumDiscussionEdit

func FlarumDiscussionEdit(w http.ResponseWriter, r *http.Request)

func FlarumIndex

func FlarumIndex(w http.ResponseWriter, r *http.Request)

FlarumIndex flarum主页

func FlarumPosts

func FlarumPosts(w http.ResponseWriter, r *http.Request)

FlarumPosts 获取评论

func FlarumPostsUtils

func FlarumPostsUtils(w http.ResponseWriter, r *http.Request)

FlarumPostsUtils 对于评论的一些操作

func FlarumTagAll

func FlarumTagAll(w http.ResponseWriter, r *http.Request)

FlarumIndex flarum主页

func FlarumUser

func FlarumUser(w http.ResponseWriter, r *http.Request)

FlarumUser flarum用户查询

func FlarumUserLogin

func FlarumUserLogin(w http.ResponseWriter, r *http.Request)

FlarumUserLogin flarum用户登录

func FlarumUserLogout

func FlarumUserLogout(w http.ResponseWriter, r *http.Request)

FlarumUserLogout flarum用户注销

func FlarumUserPage

func FlarumUserPage(w http.ResponseWriter, r *http.Request)

FlarumUserPage flarum用户查询

func FlarumUserRegister

func FlarumUserRegister(w http.ResponseWriter, r *http.Request)

FlarumUserRegister 用户注册

func FlarumUserSettings

func FlarumUserSettings(w http.ResponseWriter, r *http.Request)

FlarumUserSettings flarum用户查询

func FlarumUserUpdate

func FlarumUserUpdate(w http.ResponseWriter, r *http.Request)

FlarumUserUpdate flarum用户更新配置信息

func GithubOauthCallbackHandler

func GithubOauthCallbackHandler(w http.ResponseWriter, r *http.Request)

GithubOauthCallbackHandler github用户登录回调

func GithubOauthHandler

func GithubOauthHandler(w http.ResponseWriter, r *http.Request)

GithubOauthHandler github用户登录

func InAPIMiddleware

func InAPIMiddleware(inner http.Handler) http.Handler

InAPIMiddleware 被此装饰器修饰表明当前请求为API请求

func InAdminMiddleware

func InAdminMiddleware(inner http.Handler) http.Handler

InAdminMiddleware 被此装饰器修饰表明当前请求为API请求

func NewCaptcha

func NewCaptcha(w http.ResponseWriter, r *http.Request)

NewCaptcha 获取新的验证码

func RealIPMiddleware

func RealIPMiddleware(inner http.Handler) http.Handler

RealIPMiddleware 获取用户的真实ip

func TrackerMiddleware

func TrackerMiddleware(inner http.Handler) http.Handler

TrackerMiddleware 记录请求时间

Types

type BaseHandler

type BaseHandler struct {
	App *system.Application
}

BaseHandler 基础handler

func (*BaseHandler) AuthMiddleware

func (h *BaseHandler) AuthMiddleware(inner http.Handler) http.Handler

AuthMiddleware 校验用户

func (*BaseHandler) CurrentTpl

func (h *BaseHandler) CurrentTpl(r *http.Request) string

CurrentTpl 当前使用的模板类型

func (*BaseHandler) CurrentUser

func (h *BaseHandler) CurrentUser(w http.ResponseWriter, r *http.Request) (user model.User, err error)

CurrentUser 当前用户 原有的策略是保存用户到文件中, 现在经过重新改写, 将从数据库中获取用户,

func (*BaseHandler) DelCookie

func (h *BaseHandler) DelCookie(w http.ResponseWriter, name string)

DelCookie 删除Cookie, 用户下线

func (*BaseHandler) GetCookie

func (h *BaseHandler) GetCookie(r *http.Request, name string) string

GetCookie 根据name获取当前所存的cookie值

func (*BaseHandler) GetLocaleData

func (h *BaseHandler) GetLocaleData(w http.ResponseWriter, r *http.Request)

GetLocaleData 获取地区对应的语言包

func (*BaseHandler) InitMiddlewareContext

func (h *BaseHandler) InitMiddlewareContext(inner http.Handler) http.Handler

InitMiddlewareContext 初始化的中间件需要的数据结构

中间件中传递数据依赖于context设计, 当前的context作为结构体而存在, 每次请求时新建一个对应的结构体, 并存储相关信息, 在真正处理请求时, 获取该结构体, 并获得中间件传递的信息.

func (*BaseHandler) OriginMiddleware

func (h *BaseHandler) OriginMiddleware(inner http.Handler) http.Handler

OriginMiddleware 有关跨域问题的处理

func (*BaseHandler) Render

func (h *BaseHandler) Render(w http.ResponseWriter, tpl string, data interface{}, tplPath ...string) error

Render 渲染html *

  • .. version_changed: 2020-05-28 增加了对flaru主题的支持, 将会渲染不同的模板

func (*BaseHandler) Robots

func (h *BaseHandler) Robots(w http.ResponseWriter, r *http.Request)

func (*BaseHandler) SetCookie

func (h *BaseHandler) SetCookie(w http.ResponseWriter, name, value string, days int) error

SetCookie 浏览器设置cookie

func (*BaseHandler) UserLogin

func (h *BaseHandler) UserLogin(w http.ResponseWriter, r *http.Request)

UserLogin 用户登录与注册页面

type BasePageData

type BasePageData struct {
	SiteCf        *model.SiteConf
	Title         string
	Keywords      string
	Description   string
	IsMobile      bool
	IsInAdmin     bool       // 是否在admin页面中
	CurrentUser   model.User // 历史原因: 这里切换成指针有太多的报错, 暂时不处理
	PageName      string     // index/post_add/post_detail/...
	ShowPostTopAd bool
	ShowPostBotAd bool
	ShowSideAd    bool
	NewestNodes   []model.Tag
	SiteInfo      model.SiteInfo
	PrimaryColor  string
}

BasePageData 每个页面中的基础信息

type ContextKey

type ContextKey int64

ContextKey 记录context的value

type FlarumErrorResponse

type FlarumErrorResponse struct {
	Errors []flarumError `json:"errors"`
}

FlarumErrorResponse flarum API调用时出现的错误

type HTTPHandleFunc

type HTTPHandleFunc func(w http.ResponseWriter, r *http.Request)

HTTPHandleFunc 用于处理http请求的函数

func ActionRecordsMiddleware

func ActionRecordsMiddleware(inner HTTPHandleFunc) HTTPHandleFunc

Record user actions If you want to make records, here is an example:

ctx.actionRecords = "Create a new discussion"

func IsInAdmin

func IsInAdmin(inner HTTPHandleFunc) HTTPHandleFunc

IsInAdmin 在admin页面中

func MiddlewareArrayToChains

func MiddlewareArrayToChains(reqProcessFuncs []HTTPMiddleWareFunc, req HTTPHandleFunc) (rp HTTPHandleFunc)

MiddlewareArrayToChains 中间件整理成链式的函数调用形式

当我们某个使用了多个中间件时, 可以方便的进行整合:

sp.HandleFunc(pat.Get("/"), controller.ArrayToChains(

[]controller.ReqMiddle{
controller.TestMiddleware,
controller.TestMiddleware2,
},
h.FlarumIndex,

))

将会返回被中间件包裹的如下形式的函数: controller.TestMiddleware(controller.TestMiddleware2(h.FlarumIndex))

func MustAdminUser

func MustAdminUser(inner HTTPHandleFunc) HTTPHandleFunc

MustAdminUser 必须为管理员才能操作

func MustAuthMiddleware

func MustAuthMiddleware(inner HTTPHandleFunc) HTTPHandleFunc

MustAuthMiddleware 要求用户必须登录

func MustCSRFMiddleware

func MustCSRFMiddleware(inner HTTPHandleFunc) HTTPHandleFunc

MustCSRFMiddleware 检查csrf token

type HTTPMiddleWareFunc

type HTTPMiddleWareFunc func(inner HTTPHandleFunc) HTTPHandleFunc

HTTPMiddleWareFunc 中间件函数

type PageData

type PageData struct {
	BasePageData

	PageInfo   model.ArticlePageInfo
	Cobj       model.Tag
	Aobj       model.Topic
	FlarumInfo interface{}

	FlarumJSPrefix string

	PluginHTML map[string]string
}

PageData 每个页面中的全部信息

func InitPageData

func InitPageData(r *http.Request) *PageData

InitPageData 初始化返回页面

type ReqContext

type ReqContext struct {
	// contains filtered or unexported fields
}

ReqContext 请求时将会携带的contex信息

func GetRetContext

func GetRetContext(r *http.Request) *ReqContext

GetRetContext 获取当前上线信息中的自有的context

func (*ReqContext) GetLogger

func (ctx *ReqContext) GetLogger() *logging.Logger

GetLogger 获取当前的logger TODO: 期望未来能按照用户进行日志打印

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL