|
- 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() (string, bool) {
- userId := c.GetSessionUsername()
- if userId == "" {
- c.ResponseError("Please sign in first")
- return "", false
- }
- return userId, true
- }
-
- func (c *ApiController) RequireAdmin() bool {
- user := c.GetSessionUser()
- if user == nil || !user.IsAdmin {
- c.ResponseError("this operation requires admin privilege")
- return true
- }
-
- return false
- }
|