12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package www
- import (
- "encoding/json"
- "errors"
- "net/http"
- )
- func (h *Handler) CheckUserHomePageEnabled(username string) bool {
- result := false
- currentHomePageMode := "false"
- err := h.Options.Database.Read("www", username+"_enable", ¤tHomePageMode)
- if err != nil {
- //Not exists. Assume false
- result = false
- } else {
- result = (currentHomePageMode == "true")
- }
- return result
- }
- func (h *Handler) GetUserWebRoot(username string) (string, error) {
- webRoot := ""
- if h.Options.Database.KeyExists("www", username+"_webroot") {
- err := h.Options.Database.Read("www", username+"_webroot", &webRoot)
- if err != nil {
- return "", err
- }
- return webRoot, nil
- } else {
- return "", errors.New("Webroot not defined")
- }
- }
- func (h *Handler) HandleToggleHomepage(w http.ResponseWriter, r *http.Request) {
- userinfo, err := h.Options.UserHandler.GetUserInfoFromRequest(w, r)
- if err != nil {
- sendErrorResponse(w, "User not logged in")
- return
- }
- set, _ := mv(r, "set", true)
- if set == "" {
- //Read mode
- result := h.CheckUserHomePageEnabled(userinfo.Username)
- js, _ := json.Marshal(result)
- sendJSONResponse(w, string(js))
- } else {
- //Set mode
- if set == "true" {
- //Enable homepage
- h.Options.Database.Write("www", userinfo.Username+"_enable", "true")
- } else {
- //Disable homepage
- h.Options.Database.Write("www", userinfo.Username+"_enable", "false")
- }
- sendOK(w)
- }
- }
- func (h *Handler) HandleSetWebRoot(w http.ResponseWriter, r *http.Request) {
- userinfo, err := h.Options.UserHandler.GetUserInfoFromRequest(w, r)
- if err != nil {
- sendErrorResponse(w, "User not logged in")
- return
- }
- set, _ := mv(r, "set", true)
- if set == "" {
- //Read mode
- webroot, err := h.GetUserWebRoot(userinfo.Username)
- if err != nil {
- sendErrorResponse(w, err.Error())
- return
- }
- js, _ := json.Marshal(webroot)
- sendJSONResponse(w, string(js))
- } else {
- //Set mode
- h.Options.Database.Write("www", userinfo.Username+"_webroot", set)
- sendOK(w)
- }
- }
|