mirror of
https://github.com/ngoduykhanh/wireguard-ui.git
synced 2025-07-01 16:35:37 +03:00
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:
parent
fdb36e4711
commit
5fff577c60
9 changed files with 293 additions and 7 deletions
|
@ -596,6 +596,22 @@ func GlobalSettings(db store.IStore) echo.HandlerFunc {
|
|||
}
|
||||
}
|
||||
|
||||
// ClientDefaultSettings handler
|
||||
func ClientDefaultSettings(db store.IStore) echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
|
||||
clientDefaultSettings, err := db.GetClientDefaultSettings()
|
||||
if err != nil {
|
||||
log.Error("Cannot get client default settings: ", err)
|
||||
}
|
||||
|
||||
return c.Render(http.StatusOK, "client_default_settings.html", map[string]interface{}{
|
||||
"baseData": model.BaseData{Active: "client-default-settings", CurrentUser: currentUser(c)},
|
||||
"clientDefaultSettings": clientDefaultSettings,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Status handler
|
||||
func Status(db store.IStore) echo.HandlerFunc {
|
||||
type PeerVM struct {
|
||||
|
@ -709,6 +725,50 @@ func GlobalSettingSubmit(db store.IStore) echo.HandlerFunc {
|
|||
}
|
||||
}
|
||||
|
||||
// ClientDefaultSettingsSubmit handler to update the client default settings
|
||||
func ClientDefaultSettingsSubmit(db store.IStore) echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
|
||||
//data := make(map[string]interface{})
|
||||
//err := json.NewDecoder(c.Request().Body).Decode(&data)
|
||||
//if err != nil {
|
||||
// return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, "Bad post data"})
|
||||
//}
|
||||
//
|
||||
//var clientDefaultSettings model.ClientDefaults
|
||||
//fmt.Println(data["allowed_ips"])
|
||||
//
|
||||
//clientDefaultSettings.AllowedIps = strings.Split(data["allowed_ips"].(string), ",")
|
||||
//clientDefaultSettings.ExtraAllowedIps = strings.Split(data["extra_allowed_ips"].(string), ",")
|
||||
//clientDefaultSettings.EnableAfterCreation = data["enable_after_creation"].(bool)
|
||||
//clientDefaultSettings.UseServerDNS = data["use_server_dns"].(bool)
|
||||
|
||||
var clientDefaultSettings model.ClientDefaults
|
||||
c.Bind(&clientDefaultSettings)
|
||||
|
||||
// validate the input allowed ips list
|
||||
if util.ValidateCIDRList(clientDefaultSettings.AllowedIps, true) == false {
|
||||
log.Warnf("Invalid Allowed IPs list input from user: %v", clientDefaultSettings.AllowedIps)
|
||||
return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, "Allowed IPs must be in CIDR format"})
|
||||
}
|
||||
|
||||
// validate the input extra allowed ips list
|
||||
if util.ValidateCIDRList(clientDefaultSettings.ExtraAllowedIps, true) == false {
|
||||
log.Warnf("Invalid Extra Allowed IPs list input from user: %v", clientDefaultSettings.ExtraAllowedIps)
|
||||
return c.JSON(http.StatusBadRequest, jsonHTTPResponse{false, "Extra Allowed IPs must be in CIDR format"})
|
||||
}
|
||||
|
||||
// write config to the database
|
||||
if err := db.SaveClientDefaultSettings(clientDefaultSettings); err != nil {
|
||||
return c.JSON(http.StatusInternalServerError, jsonHTTPResponse{false, "Error saving client default settings"})
|
||||
}
|
||||
|
||||
log.Infof("Updated client default settings: %v", clientDefaultSettings)
|
||||
|
||||
return c.JSON(http.StatusOK, jsonHTTPResponse{true, "Updated client default settings successfully"})
|
||||
}
|
||||
}
|
||||
|
||||
// MachineIPAddresses handler to get local interface ip addresses
|
||||
func MachineIPAddresses() echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue