You can not select more than 25 topics
Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- package controllers
-
- type Response struct {
- Status string `json:"status"`
- Msg string `json:"msg"`
- Data interface{} `json:"data"`
- Data2 interface{} `json:"data2"`
- }
-
- func (c *ApiController) ResponseOk(data ...interface{}) {
- resp := Response{Status: "ok"}
- switch len(data) {
- case 2:
- resp.Data2 = data[1]
- fallthrough
- case 1:
- resp.Data = data[0]
- }
- c.Data["json"] = resp
- c.ServeJSON()
- }
-
- func (c *ApiController) ResponseError(error string, data ...interface{}) {
- resp := Response{Status: "error", Msg: error}
- switch len(data) {
- case 2:
- resp.Data2 = data[1]
- fallthrough
- case 1:
- resp.Data = data[0]
- }
- c.Data["json"] = resp
- c.ServeJSON()
- }
-
- func (c *ApiController) RequireSignedIn() bool {
- if c.GetSessionUser() == nil {
- c.ResponseError("please sign in first")
- return true
- }
-
- return false
- }
-
- func (c *ApiController) RequireAdmin() bool {
- user := c.GetSessionUser()
- if user == nil || !user.IsAdmin {
- c.ResponseError("this operation requires admin privilege")
- return true
- }
-
- return false
- }
|