mirror of
https://github.com/h44z/wg-portal.git
synced 2025-04-19 08:55:12 +00:00
populate peer device type (#170)
This commit is contained in:
parent
b3a5f2ac60
commit
bdd426a679
1
Makefile
1
Makefile
@ -25,6 +25,7 @@ help:
|
|||||||
#> codegen: Re-generate autogenerated files (like API docs)
|
#> codegen: Re-generate autogenerated files (like API docs)
|
||||||
.PHONY: codegen
|
.PHONY: codegen
|
||||||
codegen: $(SUBDIRS)
|
codegen: $(SUBDIRS)
|
||||||
|
$(GOCMD) install github.com/swaggo/swag/cmd/swag@v1.8.10
|
||||||
cd internal; swag init --propertyStrategy pascalcase --parseInternal --generalInfo server/api.go --output server/docs/
|
cd internal; swag init --propertyStrategy pascalcase --parseInternal --generalInfo server/api.go --output server/docs/
|
||||||
$(GOCMD) fmt internal/server/docs/docs.go
|
$(GOCMD) fmt internal/server/docs/docs.go
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Package docs GENERATED BY SWAG; DO NOT EDIT
|
// Code generated by swaggo/swag. DO NOT EDIT
|
||||||
// This file was generated by swaggo/swag
|
|
||||||
package docs
|
package docs
|
||||||
|
|
||||||
import "github.com/swaggo/swag"
|
import "github.com/swaggo/swag"
|
||||||
@ -1307,13 +1306,28 @@ const docTemplate = `{
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"Source": {
|
"Source": {
|
||||||
"type": "string"
|
"$ref": "#/definitions/users.UserSource"
|
||||||
},
|
},
|
||||||
"UpdatedAt": {
|
"UpdatedAt": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"users.UserSource": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"ldap",
|
||||||
|
"db"
|
||||||
|
],
|
||||||
|
"x-enum-comments": {
|
||||||
|
"UserSourceDatabase": "sqlite / mysql database",
|
||||||
|
"UserSourceLdap": "LDAP / ActiveDirectory"
|
||||||
|
},
|
||||||
|
"x-enum-varnames": [
|
||||||
|
"UserSourceLdap",
|
||||||
|
"UserSourceDatabase"
|
||||||
|
]
|
||||||
|
},
|
||||||
"wireguard.Device": {
|
"wireguard.Device": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [
|
"required": [
|
||||||
@ -1400,10 +1414,14 @@ const docTemplate = `{
|
|||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"Type": {
|
"Type": {
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
"enum": [
|
||||||
"client",
|
"client",
|
||||||
"server"
|
"server"
|
||||||
|
],
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/wireguard.DeviceType"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"UpdatedAt": {
|
"UpdatedAt": {
|
||||||
@ -1411,6 +1429,17 @@ const docTemplate = `{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"wireguard.DeviceType": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"server",
|
||||||
|
"client"
|
||||||
|
],
|
||||||
|
"x-enum-varnames": [
|
||||||
|
"DeviceTypeServer",
|
||||||
|
"DeviceTypeClient"
|
||||||
|
]
|
||||||
|
},
|
||||||
"wireguard.Peer": {
|
"wireguard.Peer": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [
|
"required": [
|
||||||
@ -1447,13 +1476,19 @@ const docTemplate = `{
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"DeviceName": {
|
"DeviceName": {
|
||||||
|
"description": "server interface name",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"DeviceType": {
|
"DeviceType": {
|
||||||
"type": "string",
|
"description": "the device type of the server (not the peer device)",
|
||||||
"enum": [
|
"enum": [
|
||||||
"client",
|
"client",
|
||||||
"server"
|
"server"
|
||||||
|
],
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/wireguard.DeviceType"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Email": {
|
"Email": {
|
||||||
|
@ -128,8 +128,8 @@ func (s *Server) GetUserIndex(c *gin.Context) {
|
|||||||
s.GetHandleError(c, http.StatusInternalServerError, "sort error", "failed to save session")
|
s.GetHandleError(c, http.StatusInternalServerError, "sort error", "failed to save session")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
/*c.Redirect(http.StatusSeeOther, "/admin")
|
c.Redirect(http.StatusSeeOther, "/user/profile")
|
||||||
return*/
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
peers := s.peers.GetSortedPeersForEmail(currentSession.SortedBy["userpeers"], currentSession.SortDirection["userpeers"], currentSession.Email)
|
peers := s.peers.GetSortedPeersForEmail(currentSession.SortedBy["userpeers"], currentSession.SortDirection["userpeers"], currentSession.Email)
|
||||||
|
@ -93,10 +93,10 @@ type Peer struct {
|
|||||||
Peer *wgtypes.Peer `gorm:"-" json:"-"` // WireGuard peer
|
Peer *wgtypes.Peer `gorm:"-" json:"-"` // WireGuard peer
|
||||||
Config string `gorm:"-" json:"-"`
|
Config string `gorm:"-" json:"-"`
|
||||||
|
|
||||||
UID string `form:"uid" binding:"required,alphanum"` // uid for html identification
|
UID string `form:"uid" binding:"required,alphanum"` // uid for html identification
|
||||||
DeviceName string `gorm:"index" form:"device" binding:"required"`
|
DeviceName string `gorm:"index" form:"device" binding:"required"` // server interface name
|
||||||
DeviceType DeviceType `gorm:"-" form:"devicetype" binding:"required,oneof=client server"`
|
DeviceType DeviceType `gorm:"-" form:"devicetype" binding:"required,oneof=client server"` // the device type of the server (not the peer device)
|
||||||
Identifier string `form:"identifier" binding:"required,max=64"` // Identifier AND Email make a WireGuard peer unique
|
Identifier string `form:"identifier" binding:"required,max=64"` // Identifier AND Email make a WireGuard peer unique
|
||||||
Email string `gorm:"index" form:"mail" binding:"required,email"`
|
Email string `gorm:"index" form:"mail" binding:"required,email"`
|
||||||
IgnoreGlobalSettings bool `form:"ignoreglobalsettings"`
|
IgnoreGlobalSettings bool `form:"ignoreglobalsettings"`
|
||||||
|
|
||||||
@ -601,9 +601,12 @@ func (m *PeerManager) validateOrCreateDevice(dev wgtypes.Device, ipAddresses []s
|
|||||||
|
|
||||||
// populatePeerData enriches the peer struct with WireGuard live data like last handshake, ...
|
// populatePeerData enriches the peer struct with WireGuard live data like last handshake, ...
|
||||||
func (m *PeerManager) populatePeerData(peer *Peer) {
|
func (m *PeerManager) populatePeerData(peer *Peer) {
|
||||||
|
device := m.GetDevice(peer.DeviceName)
|
||||||
|
|
||||||
// Set config file
|
// Set config file
|
||||||
tmpCfg, _ := peer.GetConfigFile(m.GetDevice(peer.DeviceName))
|
tmpCfg, _ := peer.GetConfigFile(device)
|
||||||
peer.Config = string(tmpCfg)
|
peer.Config = string(tmpCfg)
|
||||||
|
peer.DeviceType = device.Type
|
||||||
|
|
||||||
// set data from WireGuard interface
|
// set data from WireGuard interface
|
||||||
peer.Peer, _ = m.wg.GetPeer(peer.DeviceName, peer.PublicKey)
|
peer.Peer, _ = m.wg.GetPeer(peer.DeviceName, peer.PublicKey)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user