return nil
}
+func UserIsAdmin(c *gin.Context) *Error {
+ user, exists := c.Get("user")
+
+ if !exists {
+ return &Error{NotAuthorized, "not authorized", fmt.Errorf("no user key in context")}
+ }
+
+ if user.(db.User).Role != db.RoleAdmin {
+ return &Error{NotAuthorized, "not authorized", fmt.Errorf("user '%v' is not admin", user)}
+ }
+
+ return nil
+}
+
func GetUser(c *gin.Context) db.User {
user, _ := c.Get("user")
}
type SignResult struct {
- Token string `json:"token"`
+ Token string `json:"token"`
+ IsAdmin bool `json:"isAdmin"`
}
func (s SignParams) Validate() *Error {
}
}
- return SignResult{token}, nil
+ return SignResult{token, newUser.Role == db.RoleAdmin}, nil
}
type SigninQuery struct {
return nil, NewInternalError(err)
}
- return SignResult{token}, nil
+ return SignResult{token, user.Role == db.RoleAdmin}, nil
}
type ConfirmEmailQuery struct {