-
Notifications
You must be signed in to change notification settings - Fork 4
/
add_securitykiss.tcl
98 lines (76 loc) · 3.09 KB
/
add_securitykiss.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
namespace eval ::securitykiss {
namespace export *
namespace ensemble create
variable name securitykiss
variable dispname SecurityKISS
variable host www.securitykiss.com
variable port 10443
variable path_config /vpapi/securitykiss/config
variable path_plans /vpapi/securitykiss/plans
# input entries - resettable/modifiable variables
variable newprofilename ""
variable username ""
variable password ""
}
proc ::securitykiss::create-import-frame {tab} {
variable name
variable dispname
set ::${name}::newprofilename [unique-profilename $dispname]
set pconf $tab.$name
ttk::frame $pconf
addprovider-gui-profilename $tab $name
addprovider-gui-username $tab $name $dispname "e.g. client12345678"
addprovider-gui-password $tab $name $dispname
addprovider-gui-importline $tab $name
hypertext $pconf.link "Create free or premium account on <https://fruho.com/redirect?urlid=securitykiss&cn=$::model::Cn><securitykiss.com>"
grid $pconf.link -sticky news -columnspan 3 -padx 10 -pady 10
return $pconf
}
proc ::securitykiss::add-to-treeview-plist {plist} {
variable name
variable dispname
$plist insert {} end -id $name -image [img load 16/logo_$name] -values [list $dispname]
}
# this is csp coroutine
proc ::securitykiss::ImportClicked {tab args} {
try {
variable name
variable dispname
variable host
variable port
variable path_config
variable path_plans
variable username
variable password
variable newprofilename
set profileid [name2id $newprofilename]
set pconf $tab.$name
importline-update $pconf "Importing configuration from $dispname" disabled spin
set result [vpapi-config-direct $newprofilename $host $port $path_config?[this-pcv] $username $password]
if {$result != 200} {
importline-update $pconf [http2importline $result] normal empty
return
}
set result [vpapi-plans-direct $newprofilename $host $port $path_plans?[this-pcv] $username $password]
if {$result != 200} {
importline-update $pconf [http2importline $result] normal empty
return
}
# save in the model to be able later refresh the plans via vpapi
dict set ::model::Profiles $profileid vpapi_username $username
dict set ::model::Profiles $profileid vpapi_password $password
dict set ::model::Profiles $profileid vpapi_host $host
dict set ::model::Profiles $profileid vpapi_port $port
dict set ::model::Profiles $profileid vpapi_path_plans $path_plans
dict set ::model::Profiles $profileid provider $name
importline-update $pconf "" normal empty
set ::${name}::username ""
set ::${name}::password ""
# when repainting tabset select the newly created tab
set ::model::selected_profile $profileid
tabset-profiles .c.tabsetenvelope
} on error {e1 e2} {
puts stderr [log $e1 $e2]
}
}
lappend ::model::Supported_providers {010 securitykiss}