github.com/wtfutil/wtf@v0.43.0/modules/security/widget.go (about) 1 package security 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/rivo/tview" 8 "github.com/wtfutil/wtf/view" 9 ) 10 11 type Widget struct { 12 view.TextWidget 13 14 settings *Settings 15 } 16 17 func NewWidget(tviewApp *tview.Application, redrawChan chan bool, settings *Settings) *Widget { 18 widget := Widget{ 19 TextWidget: view.NewTextWidget(tviewApp, redrawChan, nil, settings.Common), 20 21 settings: settings, 22 } 23 24 return &widget 25 } 26 27 /* -------------------- Exported Functions -------------------- */ 28 29 func (widget *Widget) Refresh() { 30 31 if widget.Disabled() { 32 return 33 } 34 35 widget.Redraw(widget.content) 36 } 37 38 /* -------------------- Unexported Functions -------------------- */ 39 40 func (widget *Widget) content() (string, string, bool) { 41 data := NewSecurityData() 42 data.Fetch() 43 var str string 44 45 if data.WifiName != "" { 46 str += fmt.Sprintf(" [%s]WiFi[white]\n", widget.settings.Colors.Subheading) 47 str += fmt.Sprintf(" %8s: %s\n", "Network", data.WifiName) 48 str += fmt.Sprintf(" %8s: %s\n", "Crypto", data.WifiEncryption) 49 str += "\n" 50 } 51 52 str += fmt.Sprintf(" [%s]Firewall[white]\n", widget.settings.Colors.Subheading) 53 str += fmt.Sprintf(" %8s: %4s\n", "Status", data.FirewallEnabled) 54 str += fmt.Sprintf(" %8s: %4s\n", "Stealth", data.FirewallStealth) 55 str += "\n" 56 57 str += fmt.Sprintf(" [%s]Users[white]\n", widget.settings.Colors.Subheading) 58 str += fmt.Sprintf(" %s", strings.Join(data.LoggedInUsers, "\n ")) 59 str += "\n\n" 60 61 str += fmt.Sprintf(" [%s]DNS[white]\n", widget.settings.Colors.Subheading) 62 str += fmt.Sprintf(" %12s\n", data.DnsAt(0)) 63 str += fmt.Sprintf(" %12s\n", data.DnsAt(1)) 64 str += "\n" 65 66 return widget.CommonSettings().Title, str, false 67 }