Added client default settings page

Added client default settings page, where you can set Allowed IPs, Extra Allowed IPs, use server dns, enable after creation.
This commit is contained in:
Arminas 2023-02-10 07:22:24 +02:00 committed by GitHub
parent fdb36e4711
commit 5fff577c60
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 293 additions and 7 deletions

View file

@ -42,6 +42,7 @@ func (o *JsonDB) Init() error {
var serverInterfacePath string = path.Join(serverPath, "interfaces.json")
var serverKeyPairPath string = path.Join(serverPath, "keypair.json")
var globalSettingPath string = path.Join(serverPath, "global_settings.json")
var clientDefaultSettingsPath string = path.Join(serverPath, "client_default_settings.json")
var userPath string = path.Join(serverPath, "users.json")
// create directories if they do not exist
if _, err := os.Stat(clientPath); os.IsNotExist(err) {
@ -102,6 +103,12 @@ func (o *JsonDB) Init() error {
o.conn.Write("server", "global_settings", globalSetting)
}
// client default settings
if _, err := os.Stat(clientDefaultSettingsPath); os.IsNotExist(err) {
clientDefaultSetting := util.ClientDefaultsFromEnv()
o.conn.Write("server", "client_default_settings", clientDefaultSetting)
}
// user info
if _, err := os.Stat(userPath); os.IsNotExist(err) {
user := new(model.User)
@ -138,6 +145,12 @@ func (o *JsonDB) GetGlobalSettings() (model.GlobalSetting, error) {
return settings, o.conn.Read("server", "global_settings", &settings)
}
// GetClientDefaultSettings func to query client default settings from the database
func (o *JsonDB) GetClientDefaultSettings() (model.ClientDefaults, error) {
settings := model.ClientDefaults{}
return settings, o.conn.Read("server", "client_default_settings", &settings)
}
// GetServer func to query Server settings from the database
func (o *JsonDB) GetServer() (model.Server, error) {
server := model.Server{}
@ -213,7 +226,7 @@ func (o *JsonDB) GetClientByID(clientID string, qrCodeSettings model.QRCodeSetti
server, _ := o.GetServer()
globalSettings, _ := o.GetGlobalSettings()
client := client
if !qrCodeSettings.IncludeDNS{
if !qrCodeSettings.IncludeDNS {
globalSettings.DNSServers = []string{}
}
if !qrCodeSettings.IncludeMTU {
@ -255,3 +268,7 @@ func (o *JsonDB) SaveServerKeyPair(serverKeyPair model.ServerKeypair) error {
func (o *JsonDB) SaveGlobalSettings(globalSettings model.GlobalSetting) error {
return o.conn.Write("server", "global_settings", globalSettings)
}
func (o *JsonDB) SaveClientDefaultSettings(clientDefaults model.ClientDefaults) error {
return o.conn.Write("server", "client_default_settings", clientDefaults)
}

View file

@ -9,6 +9,7 @@ type IStore interface {
GetUser() (model.User, error)
SaveUser(user model.User) error
GetGlobalSettings() (model.GlobalSetting, error)
GetClientDefaultSettings() (model.ClientDefaults, error)
GetServer() (model.Server, error)
GetClients(hasQRCode bool) ([]model.ClientData, error)
GetClientByID(clientID string, qrCode model.QRCodeSettings) (model.ClientData, error)
@ -17,6 +18,7 @@ type IStore interface {
SaveServerInterface(serverInterface model.ServerInterface) error
SaveServerKeyPair(serverKeyPair model.ServerKeypair) error
SaveGlobalSettings(globalSettings model.GlobalSetting) error
SaveClientDefaultSettings(clientDefaults model.ClientDefaults) error
GetWakeOnLanHosts() ([]model.WakeOnLanHost, error)
GetWakeOnLanHost(macAddress string) (*model.WakeOnLanHost, error)
DeleteWakeOnHostLanHost(macAddress string) error