7940786ce9
Make sure to update your local config files when upgrading as the name of some config values has changed. The default config path has changed from "settings" to "config".
65 lines
1.3 KiB
Go
65 lines
1.3 KiB
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/photoprism/photoprism/internal/acl"
|
|
"github.com/photoprism/photoprism/internal/i18n"
|
|
"github.com/photoprism/photoprism/internal/service"
|
|
)
|
|
|
|
// GET /api/v1/settings
|
|
func GetSettings(router *gin.RouterGroup) {
|
|
router.GET("/settings", func(c *gin.Context) {
|
|
s := Auth(SessionID(c), acl.ResourceSettings, acl.ActionRead)
|
|
|
|
if s.Invalid() {
|
|
AbortUnauthorized(c)
|
|
return
|
|
}
|
|
|
|
if settings := service.Config().Settings(); settings != nil {
|
|
c.JSON(http.StatusOK, settings)
|
|
} else {
|
|
Abort(c, http.StatusNotFound, i18n.ErrNotFound)
|
|
}
|
|
})
|
|
}
|
|
|
|
// POST /api/v1/settings
|
|
func SaveSettings(router *gin.RouterGroup) {
|
|
router.POST("/settings", func(c *gin.Context) {
|
|
s := Auth(SessionID(c), acl.ResourceSettings, acl.ActionUpdate)
|
|
|
|
if s.Invalid() {
|
|
AbortUnauthorized(c)
|
|
return
|
|
}
|
|
|
|
conf := service.Config()
|
|
|
|
if conf.DisableSettings() {
|
|
AbortUnauthorized(c)
|
|
return
|
|
}
|
|
|
|
settings := conf.Settings()
|
|
|
|
if err := c.BindJSON(settings); err != nil {
|
|
AbortBadRequest(c)
|
|
return
|
|
}
|
|
|
|
if err := settings.Save(conf.SettingsFile()); err != nil {
|
|
c.AbortWithStatusJSON(http.StatusInternalServerError, err)
|
|
return
|
|
}
|
|
|
|
UpdateClientConfig()
|
|
|
|
log.Infof(i18n.Msg(i18n.MsgSettingsSaved))
|
|
|
|
c.JSON(http.StatusOK, settings)
|
|
})
|
|
}
|