mirror of
				https://github.com/bolucat/Archive.git
				synced 2025-11-01 04:13:16 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package http
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"net/http"
 | |
| 
 | |
| 	"github.com/filebrowser/filebrowser/v2/rules"
 | |
| 	"github.com/filebrowser/filebrowser/v2/settings"
 | |
| )
 | |
| 
 | |
| type settingsData struct {
 | |
| 	Signup           bool                  `json:"signup"`
 | |
| 	CreateUserDir    bool                  `json:"createUserDir"`
 | |
| 	UserHomeBasePath string                `json:"userHomeBasePath"`
 | |
| 	Defaults         settings.UserDefaults `json:"defaults"`
 | |
| 	Rules            []rules.Rule          `json:"rules"`
 | |
| 	Branding         settings.Branding     `json:"branding"`
 | |
| 	Tus              settings.Tus          `json:"tus"`
 | |
| 	Shell            []string              `json:"shell"`
 | |
| 	Commands         map[string][]string   `json:"commands"`
 | |
| }
 | |
| 
 | |
| var settingsGetHandler = withAdmin(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) {
 | |
| 	data := &settingsData{
 | |
| 		Signup:           d.settings.Signup,
 | |
| 		CreateUserDir:    d.settings.CreateUserDir,
 | |
| 		UserHomeBasePath: d.settings.UserHomeBasePath,
 | |
| 		Defaults:         d.settings.Defaults,
 | |
| 		Rules:            d.settings.Rules,
 | |
| 		Branding:         d.settings.Branding,
 | |
| 		Tus:              d.settings.Tus,
 | |
| 		Shell:            d.settings.Shell,
 | |
| 		Commands:         d.settings.Commands,
 | |
| 	}
 | |
| 
 | |
| 	return renderJSON(w, r, data)
 | |
| })
 | |
| 
 | |
| var settingsPutHandler = withAdmin(func(_ http.ResponseWriter, r *http.Request, d *data) (int, error) {
 | |
| 	req := &settingsData{}
 | |
| 	err := json.NewDecoder(r.Body).Decode(req)
 | |
| 	if err != nil {
 | |
| 		return http.StatusBadRequest, err
 | |
| 	}
 | |
| 
 | |
| 	d.settings.Signup = req.Signup
 | |
| 	d.settings.CreateUserDir = req.CreateUserDir
 | |
| 	d.settings.UserHomeBasePath = req.UserHomeBasePath
 | |
| 	d.settings.Defaults = req.Defaults
 | |
| 	d.settings.Rules = req.Rules
 | |
| 	d.settings.Branding = req.Branding
 | |
| 	d.settings.Tus = req.Tus
 | |
| 	d.settings.Shell = req.Shell
 | |
| 	d.settings.Commands = req.Commands
 | |
| 
 | |
| 	err = d.store.Settings.Save(d.settings)
 | |
| 	return errToStatus(err), err
 | |
| })
 | 
![github-action[bot]](/assets/img/avatar_default.png)