1 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/dirs.txt smeserver-ddclient-1.2.1/root/etc/e-smith/web/dirs.txt |
2 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/dirs.txt 1970-01-01 01:00:00.000000000 +0100 |
3 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/dirs.txt 2020-06-08 12:52:14.342548072 +0100 |
4 |
@@ -0,0 +1,4 @@ |
5 |
+mkdir -p ./manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller |
6 |
+mkdir -p ./manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Ddclient |
7 |
+mkdir -p ./manager2/cgi-bin/srvmngr/themes/default/templates |
8 |
+mkdir -p ./manager2/cgi-bin/srvmngr/themes/default/templates/partials |
9 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Ddclient.pm smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Ddclient.pm |
10 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Ddclient.pm 1970-01-01 01:00:00.000000000 +0100 |
11 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Ddclient.pm 2020-06-08 08:44:00.000000000 +0100 |
12 |
@@ -0,0 +1,772 @@ |
13 |
+package SrvMngr::Controller::Ddclient; |
14 |
+ |
15 |
+#---------------------------------------------------------------------- |
16 |
+# heading : Configuration |
17 |
+# description : Dynamic Clients |
18 |
+# navigation : 3000 3400 |
19 |
+# |
20 |
+# name : ddclient, method : get, url : /ddclient, ctlact : Ddclient#main |
21 |
+# name : ddclient3, method : post, url : /ddclient3, ctlact : Ddclient#do_updateparams |
22 |
+# name : ddclient1, method : get, url : /ddclient1, ctlact : Ddclient#do_summary_domain |
23 |
+# name : ddclient2, method : get, url : /ddclient2, ctlact : Ddclient#do_summary_custom |
24 |
+# name : ddclient4, method : post, url : /ddclient4, ctlact : Ddclient#do_delete_domain |
25 |
+# name : ddclient5, method : get, url : /ddclient5, ctlact : Ddclient#do_update_domain |
26 |
+# name : ddclient6, method : get, url : /ddclient6, ctlact : Ddclient#do_create_custom |
27 |
+# name : ddclient7, method : post, url : /ddclient7, ctlact : Ddclient#do_create_custom_actual |
28 |
+# name : ddclient8, method : post, url : /ddclient8, ctlact : Ddclient#do_update_domain |
29 |
+# |
30 |
+# routes : end |
31 |
+#---------------------------------------------------------------------- |
32 |
+ |
33 |
+use strict; |
34 |
+use warnings; |
35 |
+use Mojo::Base 'Mojolicious::Controller'; |
36 |
+ |
37 |
+use constant FALSE => 0; |
38 |
+use constant TRUE => 1; |
39 |
+ |
40 |
+use Locale::gettext; |
41 |
+use SrvMngr::I18N; |
42 |
+use SrvMngr qw(theme_list init_session_cgi); |
43 |
+ |
44 |
+use Data::Dumper; |
45 |
+use esmith::util; |
46 |
+use esmith::HostsDB; |
47 |
+use esmith::AccountsDB; |
48 |
+ |
49 |
+our $db = esmith::ConfigDB->open(); |
50 |
+our $adb = esmith::AccountsDB->open(); |
51 |
+ |
52 |
+our $domaindb = esmith::ConfigDB->open('/home/e-smith/db/domains') |
53 |
+ or die "Unable to open domains db"; |
54 |
+our $edb; |
55 |
+$edb = esmith::ConfigDB->open('/home/e-smith/db/ddclient') |
56 |
+ or $edb = esmith::ConfigDB->create('/home/e-smith/db/ddclient'); |
57 |
+ |
58 |
+my %ddc_datas = (); |
59 |
+ |
60 |
+sub get_dns_labels { |
61 |
+ # |
62 |
+ # dns service names |
63 |
+ # |
64 |
+ my $c = shift; |
65 |
+ my $Labels = ( |
66 |
+ [ |
67 |
+ [ $c->l('ddc_CUSTOMDNS'), 'CUSTOMDNS' ], |
68 |
+ [ $c->l('ddc_DYNDNS1'), 'DYNDNS1' ], |
69 |
+ [ $c->l('ddc_DYNDNS2'), 'DYNDNS2' ], |
70 |
+ [ $c->l('ddc_DYNDNS3'), 'DYNDNS3' ], |
71 |
+ [ $c->l('ddc_ZONEDIT'), 'ZONEDIT' ], |
72 |
+ [ $c->l('ddc_EASYDNS'), 'EASYDNS' ], |
73 |
+ [ $c->l('ddc_HAMMER'), 'HAMMER' ], |
74 |
+ [ $c->l('ddc_DSLREPORTS'), 'DSLREPORTS' ], |
75 |
+ [ $c->l('ddc_EURODYNDNS'), 'EURODYNDNS' ], |
76 |
+ [ $c->l('ddc_DTDNS'), 'DTDNS' ], |
77 |
+ [ $c->l('ddc_LOOPIA'), 'LOOPIA' ], |
78 |
+ [ $c->l('ddc_DNSPARK'), 'DNSPARK' ], |
79 |
+ [ $c->l('ddc_DYNHOST'), 'DYNHOST' ], |
80 |
+ [ $c->l('ddc_NOIP'), 'NOIP' ], |
81 |
+ [ $c->l('ddc_CHANGEIP'), 'CHANGEIP' ], |
82 |
+ [ $c->l('ddc_NAMECHEAP'), 'NAMECHEAP' ], |
83 |
+ [ $c->l('ddc_SPDNS'), 'SPDNS' ] |
84 |
+ ] |
85 |
+ ); |
86 |
+ return $Labels; |
87 |
+} |
88 |
+ |
89 |
+sub main { |
90 |
+ # |
91 |
+ # Initial page - full summary of parameters etc |
92 |
+ # Initial para from the Wiki. |
93 |
+ # |
94 |
+ my $c = shift; |
95 |
+ $ddc_datas{"first"} = 'ddc_DESCRIPTION'; |
96 |
+ do_display( $c, %ddc_datas ); |
97 |
+} |
98 |
+ |
99 |
+sub do_display { |
100 |
+ # |
101 |
+ # Front Summary page |
102 |
+ # |
103 |
+ my $c = shift; |
104 |
+ $c->app->log->info( $c->log_req ); |
105 |
+ |
106 |
+ my $title = $c->l('ddc_FORM_TITLE'); |
107 |
+ my $modul = ''; |
108 |
+ $ddc_datas{trt} = 'LIST'; |
109 |
+ my $trt = "LIST"; |
110 |
+ |
111 |
+ $ddc_datas{"params"} = get_params($c); |
112 |
+ my @domains = get_domain_table($c); |
113 |
+ my @FreeDomains = get_custom_table($c); |
114 |
+ |
115 |
+ my $emptydom = ( scalar @domains == 0 ); |
116 |
+ my $emptycust = ( scalar @FreeDomains == 0 ); |
117 |
+ |
118 |
+ my $Labels = ( |
119 |
+ [ |
120 |
+ [ $c->l('ddc_SME external Interface'), "smeIF" ], |
121 |
+ [ $c->l('ddc_SME configuration DB'), "smeCMD" ], |
122 |
+ [ $c->l('ddc_web'), "web" ], |
123 |
+ [ $c->l('ddc_Interface'), "if" ], |
124 |
+ [ $c->l('ddc_IP'), "ip" ], |
125 |
+ [ $c->l('ddc_Command'), "cmd" ] |
126 |
+ ] |
127 |
+ ); |
128 |
+ |
129 |
+ $c->stash( |
130 |
+ title => $title, |
131 |
+ modul => $modul, |
132 |
+ ddc_datas => \%ddc_datas, |
133 |
+ domains => \@domains, |
134 |
+ freedomains => \@FreeDomains, |
135 |
+ methodlabels => $Labels, |
136 |
+ emptydom => $emptydom, |
137 |
+ emptycust => $emptycust |
138 |
+ ); |
139 |
+ $ddc_datas{'trt'} = $trt; |
140 |
+ $c->stash( title => $title, modul => $modul, ddc_datas => \%ddc_datas ); |
141 |
+ $c->render( template => 'ddclient' ); |
142 |
+ |
143 |
+} |
144 |
+ |
145 |
+sub do_updateparams { |
146 |
+ # |
147 |
+ # Called to update the parameters relating to the Ip address of the server |
148 |
+ # |
149 |
+ my $c = shift; |
150 |
+ $ddc_datas{"success"} = pushParams($c); |
151 |
+ do_display($c); |
152 |
+} |
153 |
+ |
154 |
+sub do_update_domain { |
155 |
+ # |
156 |
+ #Called to update/delete the ddclient for a specific inbuilt domain |
157 |
+ # |
158 |
+ my $c = shift; |
159 |
+ my $retmsg; |
160 |
+ if ( $c->param("Route") eq "ddclient2" ) { #Route is hidden field |
161 |
+ $retmsg = performModifyCustom($c); |
162 |
+ } |
163 |
+ else { |
164 |
+ $retmsg = performModifyDomain($c); |
165 |
+ } |
166 |
+ if ( $retmsg eq "ok" ) { |
167 |
+ my $dns = $c->param('dns'); |
168 |
+ my $domain = $c->param('domainname'); |
169 |
+ $ddc_datas{"success"} = |
170 |
+ $c->l( "ddc_SUCCESSFULLY_MODIFIED", $domain, $c->l( 'ddc_' . $dns ) ); |
171 |
+ do_display( $c, %ddc_datas ); |
172 |
+ } |
173 |
+ else { |
174 |
+ $ddc_datas{"error"} = $retmsg; |
175 |
+ |
176 |
+ #Back to input panel to correct error |
177 |
+ do_summary_domain($c); |
178 |
+ } |
179 |
+} |
180 |
+ |
181 |
+sub do_create_custom { |
182 |
+ # |
183 |
+ # Create custom domain |
184 |
+ # |
185 |
+ my $c = shift; |
186 |
+ my $title = $c->l("ddc_CREATE_TITLE"); |
187 |
+ my $modul = ''; |
188 |
+ my $trt = "NEW"; |
189 |
+ |
190 |
+ $ddc_datas{trt} = $trt; |
191 |
+ $c->stash( |
192 |
+ title => $title, |
193 |
+ modul => $modul, |
194 |
+ ddc_datas => \%ddc_datas, |
195 |
+ dnslabels => get_dns_labels($c) |
196 |
+ ); |
197 |
+ $c->render( template => 'ddclient' ); |
198 |
+} |
199 |
+ |
200 |
+sub do_create_custom_actual { |
201 |
+ my $c = shift; |
202 |
+ my $retmsg = performCreateCustom($c); |
203 |
+ if ( $retmsg eq "ok" ) { |
204 |
+ my $dns = $c->param('dns'); |
205 |
+ my $domain = $c->param('domainname'); |
206 |
+ $ddc_datas{"success"} = |
207 |
+ $c->l( "ddc_SUCCESSFULLY_DELETED", $domain, $c->l( 'ddc_' . $dns ) ); |
208 |
+ do_display( $c, %ddc_datas ); |
209 |
+ } |
210 |
+ else { |
211 |
+ $ddc_datas{"error"} = $retmsg; |
212 |
+ #Back to input panel to correct error |
213 |
+ do_createcustom($c); |
214 |
+ } |
215 |
+ |
216 |
+} |
217 |
+ |
218 |
+sub do_summary_custom { |
219 |
+ # |
220 |
+ # Display delete or modify panel for custom domain |
221 |
+ # |
222 |
+ my $c = shift; |
223 |
+ my $title = $c->l("ddc_MODIFY_TITLE"); |
224 |
+ my $modul = ''; |
225 |
+ my $trt = $c->param("trt"); |
226 |
+ |
227 |
+ #Extract domain stuff from DB |
228 |
+ my @results = |
229 |
+ get_custom_table( $c, $c->param("Domain") ); #Returns just one row |
230 |
+ |
231 |
+ $ddc_datas{"Domain_details"} = $results[0]; |
232 |
+ |
233 |
+ $ddc_datas{'trt'} = $trt; |
234 |
+ $c->stash( |
235 |
+ title => $title, |
236 |
+ modul => $modul, |
237 |
+ ddc_datas => \%ddc_datas, |
238 |
+ dnslabels => get_dns_labels($c) |
239 |
+ ); |
240 |
+ $c->render( template => 'ddclient' ); |
241 |
+} |
242 |
+ |
243 |
+sub do_summary_domain { |
244 |
+ # |
245 |
+ # Display delete or modify panel for inbuilt domain |
246 |
+ # param trt = MOD or DEL |
247 |
+ # |
248 |
+ my $c = shift; |
249 |
+ my $title = $c->l("ddc_MODIFY_TITLE"); |
250 |
+ my $modul = ''; |
251 |
+ my $trt = $c->param("trt"); |
252 |
+ |
253 |
+ #Extract domain stuff from DB |
254 |
+ my @results = |
255 |
+ get_domain_table( $c, $c->param("Domain") ); #Returns just one row |
256 |
+ $ddc_datas{"Domain_details"} = $results[0]; |
257 |
+ |
258 |
+ $ddc_datas{'trt'} = $trt; |
259 |
+ $c->stash( |
260 |
+ title => $title, |
261 |
+ modul => $modul, |
262 |
+ ddc_datas => \%ddc_datas, |
263 |
+ dnslabels => get_dns_labels($c) |
264 |
+ ); |
265 |
+ $c->render( template => 'ddclient' ); |
266 |
+} |
267 |
+ |
268 |
+sub do_delete_domain { |
269 |
+ # |
270 |
+ # Actually clearout the inbuilt domain |
271 |
+ # Return to initial page with message at the top. |
272 |
+ # |
273 |
+ my $c = shift; |
274 |
+ my $route = $c->current_route; |
275 |
+ my $title = $c->l("ddc_REMOVE_TITLE"); |
276 |
+ my $modul = ''; |
277 |
+ my $retmsg = ""; |
278 |
+ my $domain = $c->param("Domain"); |
279 |
+ |
280 |
+ #Delete it and return to front summary panel - depends on route domain or custom |
281 |
+ if ( $c->param("Route") eq "ddclient2" ) { #Route is hidden field |
282 |
+ $retmsg = performDeleteCustom( $c, $domain ); |
283 |
+ } |
284 |
+ else { |
285 |
+ $retmsg = performDeleteDomain( $c, $domain ); |
286 |
+ } |
287 |
+ |
288 |
+ if ( $retmsg eq "ok" ) { |
289 |
+ $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain, |
290 |
+ $c->l( 'ddc_' . $c->param("dns") ) ); |
291 |
+ } |
292 |
+ else { $ddc_datas{"error"} = $retmsg; } |
293 |
+ do_display( $c, %ddc_datas ); |
294 |
+ |
295 |
+} |
296 |
+ |
297 |
+sub do_delete_custom { |
298 |
+ # |
299 |
+ # Actually delete the custom domain |
300 |
+ # Return to initial page with message at the top. |
301 |
+ # |
302 |
+ my $c = shift; |
303 |
+ my $route = $c->current_route; |
304 |
+ my $title = $c->l("ddc_REMOVE_TITLE"); |
305 |
+ my $modul = ''; |
306 |
+ my $retmsg = ""; |
307 |
+ my $domain = $c->param("Domain"); |
308 |
+ |
309 |
+ #Delete it and return to front summary panel - depends on route domain or custom |
310 |
+ $retmsg = performDeleteCustom( $c, $domain ); |
311 |
+ if ( $retmsg eq "ok" ) { |
312 |
+ $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain ); |
313 |
+ } |
314 |
+ else { $ddc_datas{"error"} = $retmsg; } |
315 |
+ do_display( $c, %ddc_datas ); |
316 |
+ |
317 |
+} |
318 |
+ |
319 |
+sub performDeleteDomain { |
320 |
+ my ( $c, $domain ) = @_; |
321 |
+ |
322 |
+ #------------------------------------------------------------ |
323 |
+ # Attempt to delete domain |
324 |
+ #------------------------------------------------------------ |
325 |
+ |
326 |
+ if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) { |
327 |
+ $domain = $1; |
328 |
+ } |
329 |
+ else { |
330 |
+ return $c->l( 'ddc_ERROR_WHILE_REMOVING_DOMAIN', $domain ); |
331 |
+ } |
332 |
+ |
333 |
+ my $value = $domaindb->get($domain); |
334 |
+ unless ($value) { |
335 |
+ return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain ); |
336 |
+ } |
337 |
+ |
338 |
+ my %properties = $value->props; |
339 |
+ my $type = $properties{'type'}; |
340 |
+ if ( $type ne 'domain' ) { |
341 |
+ return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain ); |
342 |
+ } |
343 |
+ |
344 |
+ my $evalue = $domaindb->get($domain); |
345 |
+ |
346 |
+ $evalue->set_prop( 'dns' => '' ); |
347 |
+ $evalue->set_prop( 'login' => '' ); |
348 |
+ $evalue->set_prop( 'password' => '' ); |
349 |
+ $evalue->set_prop( 'customdns' => '' ); |
350 |
+ $evalue->set_prop( 'customprotocol' => '' ); |
351 |
+ |
352 |
+ $domaindb->reload(); |
353 |
+ |
354 |
+ system( "/sbin/e-smith/signal-event", "ddclient" ); |
355 |
+ |
356 |
+ return "ok"; |
357 |
+} |
358 |
+ |
359 |
+sub performDeleteCustom { |
360 |
+ my ( $c, $domain ) = @_; |
361 |
+ |
362 |
+ #------------------------------------------------------------ |
363 |
+ # Attempt to delete domain |
364 |
+ #------------------------------------------------------------ |
365 |
+ |
366 |
+ if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) { |
367 |
+ $domain = $1; |
368 |
+ } |
369 |
+ else { |
370 |
+ return $c->l( 'ddc_ERROR_WHILE_REMOVING_DOMAIN', $domain ); |
371 |
+ } |
372 |
+ |
373 |
+ my $evalue = $edb->get($domain); |
374 |
+ unless ($evalue) { |
375 |
+ return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain ); |
376 |
+ } |
377 |
+ |
378 |
+ my %properties = $evalue->props; |
379 |
+ my $type = $properties{'type'}; |
380 |
+ |
381 |
+ if ( $type ne 'ddhost' ) { |
382 |
+ return $c->l( 'ddc_NONEXISTENT_DOMAIN_ERROR', $domain ); |
383 |
+ |
384 |
+ } |
385 |
+ |
386 |
+ $evalue->delete; |
387 |
+ $edb->reload(); |
388 |
+ |
389 |
+ system( "/sbin/e-smith/signal-event", "ddclient" ); |
390 |
+ return "ok"; |
391 |
+} |
392 |
+ |
393 |
+sub get_domain_table { |
394 |
+ # |
395 |
+ # Return full table of all domains OR just the details for the specified one |
396 |
+ # |
397 |
+ my ( $c, $findDomain ) = @_; #$c and domain to find |
398 |
+ $findDomain = FALSE if ( scalar(@_) <= 1 ); |
399 |
+ my $key; |
400 |
+ my @virtualDomains = (); |
401 |
+ foreach my $domain ( $domaindb->get_all_by_prop( type => 'domain' ) ) { |
402 |
+ $key = $domain->key; |
403 |
+ push( @virtualDomains, $key ); |
404 |
+ } |
405 |
+ my $numDomains = @virtualDomains; |
406 |
+ if ( $numDomains == 0 ) { return () } |
407 |
+ else { |
408 |
+ my $domain; |
409 |
+ my @virtualDomains2d = (); |
410 |
+ |
411 |
+ foreach $domain ( sort @virtualDomains ) { |
412 |
+ my %properties = $domaindb->get($domain)->props; |
413 |
+ my $test = $domaindb->get_prop( $domain, "dns" ) || ''; |
414 |
+ my %extraprops; |
415 |
+ if ( $test ne '' ) { %extraprops = $domaindb->get($domain)->props; } |
416 |
+ |
417 |
+ my $content; |
418 |
+ if ( $properties{'Content'} eq 'wwwpublic' ) { |
419 |
+ $content = $c->l('ddc_PRIMARY_SITE'); |
420 |
+ } |
421 |
+ else { $content = $c->l( 'ddc_CONTENT', $properties{'Content'} ); } |
422 |
+ |
423 |
+ my $public; |
424 |
+ my %thisrow; |
425 |
+ if ( $test eq '' ) { |
426 |
+ %thisrow = ( |
427 |
+ "Domain" => $domain, |
428 |
+ "Description" => $properties{'Description'}, |
429 |
+ "Content" => $content, |
430 |
+ "dns" => "", |
431 |
+ "Publication" => "", |
432 |
+ "customprotocol" => "", |
433 |
+ "customdns" => "", |
434 |
+ "login" => "", |
435 |
+ "password" => "", |
436 |
+ "mx" => "" |
437 |
+ ); |
438 |
+ push( @virtualDomains2d, \%thisrow ); |
439 |
+ } |
440 |
+ else { |
441 |
+ %thisrow = ( |
442 |
+ "Domain" => $domain, |
443 |
+ "Description" => $properties{'Description'}, |
444 |
+ "Content" => $content, |
445 |
+ "dns" => $extraprops{'dns'}, |
446 |
+ "Publication" => $c->l( 'ddc_' . $extraprops{'dns'} ), |
447 |
+ "customprotocol" => $properties{"customprotocol"}, |
448 |
+ "customdns" => $properties{"customdns"}, |
449 |
+ "login" => $properties{"login"}, |
450 |
+ "password" => $properties{"password"}, |
451 |
+ "mx" => $properties{"mx"}, |
452 |
+ ); |
453 |
+ push( @virtualDomains2d, \%thisrow ); |
454 |
+ |
455 |
+ } |
456 |
+ if ($findDomain) { |
457 |
+ if ( $domain eq $findDomain ) { |
458 |
+ @virtualDomains2d = (); #Just return matching one |
459 |
+ push( @virtualDomains2d, \%thisrow ); |
460 |
+ last; |
461 |
+ } |
462 |
+ } #Found the one needed |
463 |
+ } |
464 |
+ return @virtualDomains2d; #Return the lot |
465 |
+ } |
466 |
+} |
467 |
+ |
468 |
+sub get_custom_table { |
469 |
+ # |
470 |
+ # Return full table of all domains OR just the details for the specified one |
471 |
+ # |
472 |
+ my ( $c, $findDomain ) = @_; #$c and domain to find |
473 |
+ $findDomain = FALSE if ( scalar(@_) <= 1 ); |
474 |
+ my $key; |
475 |
+ my @FreeDomains = (); |
476 |
+ foreach my $domain ( $edb->get_all_by_prop( type => 'ddhost' ) ) { |
477 |
+ $key = $domain->key; |
478 |
+ push( @FreeDomains, $key ); |
479 |
+ } |
480 |
+ my $numDomains = @FreeDomains; |
481 |
+ my @freedomains2d = (); |
482 |
+ if ( $numDomains > 0 ) { |
483 |
+ foreach my $domain ( sort @FreeDomains ) { |
484 |
+ my $vals = $edb->get($domain); |
485 |
+ my $content = $vals->prop('desc'); |
486 |
+ my $publish = $vals->prop('dns'); |
487 |
+ my %thisrow = ( |
488 |
+ 'Domain' => $domain, |
489 |
+ "Description" => $content, |
490 |
+ "dns" => $publish, |
491 |
+ "Publication" => |
492 |
+ $c->l( 'ddc_' . $publish ), #msg ddc prefix for ddclient |
493 |
+ "customprotocol" => $vals->prop("customprotocol"), |
494 |
+ "customdns" => $vals->prop("customdns"), |
495 |
+ "login" => $vals->prop("login"), |
496 |
+ "password" => $vals->prop("password"), |
497 |
+ "mx" => $vals->prop("mx"), |
498 |
+ |
499 |
+ ); |
500 |
+ |
501 |
+ push( @freedomains2d, \%thisrow ); |
502 |
+ if ($findDomain) { |
503 |
+ if ( $domain eq $findDomain ) { |
504 |
+ @freedomains2d = (); #Just return matching one |
505 |
+ push( @freedomains2d, \%thisrow ); |
506 |
+ last; |
507 |
+ } |
508 |
+ } #Found the one needed |
509 |
+ |
510 |
+ } |
511 |
+ } |
512 |
+ return @freedomains2d; |
513 |
+} |
514 |
+ |
515 |
+sub get_params { |
516 |
+ my $c = shift; |
517 |
+ my $ddretrieve = $db->get('ddclient'); |
518 |
+ my $ExtIF = $db->get('ExternalInterface'); |
519 |
+ my $DeamonUpdate = $ddretrieve->prop('DeamonUpdate') || '300'; |
520 |
+ my $urlcheckip = $ddretrieve->prop('urlcheckip') || 'checkip.dyndns.org'; |
521 |
+ my $ssl = $ddretrieve->prop('SSL') || 'yes'; |
522 |
+ my $method = $ddretrieve->prop('method') || 'web'; |
523 |
+ my $Extinterface = $ddretrieve->prop('Extinterface') || ''; |
524 |
+ my $cmd = $ddretrieve->prop('cmd') || ''; |
525 |
+ my $forceIP = $ddretrieve->prop('ForceIP') || ''; |
526 |
+ my $res = { |
527 |
+ "ssl" => $ssl, |
528 |
+ "DeamonUpdate" => $DeamonUpdate, |
529 |
+ "method" => $method, |
530 |
+ "Extinterface" => $Extinterface, |
531 |
+ "cmd" => $cmd, |
532 |
+ "ForceIP" => $forceIP, |
533 |
+ "urlcheckip" => $urlcheckip |
534 |
+ }; |
535 |
+ return $res; |
536 |
+} |
537 |
+ |
538 |
+sub pushParams { |
539 |
+ my $c = shift; |
540 |
+ my $DeamonUpdate = $c->param('retrievedeamonupdate'); |
541 |
+ my $urlcheckip = $c->param('retrieveurlcheckip'); |
542 |
+ my $ssl = $c->param('retrievessl'); |
543 |
+ my $retrievemethod = $c->param('retrievemethod'); |
544 |
+ my $retrieveinterface = $c->param('retrieveinterface'); |
545 |
+ my $retrievecmd = $c->param('retrievecmd'); |
546 |
+ my $retrieveip = $c->param('retrieveip'); |
547 |
+ |
548 |
+ my $ddclient = $db->get('ddclient'); |
549 |
+ $ddclient->set_prop( 'urlcheckip' => $urlcheckip ); |
550 |
+ $ddclient->set_prop( 'DeamonUpdate' => $DeamonUpdate ); |
551 |
+ $ddclient->set_prop( 'SSL' => $ssl ); |
552 |
+ $ddclient->set_prop( 'method' => $retrievemethod ); |
553 |
+ $ddclient->set_prop( 'Extinterface' => $retrieveinterface ); |
554 |
+ $ddclient->set_prop( 'cmd' => $retrievecmd ); |
555 |
+ $ddclient->set_prop( 'ForceIP' => $retrieveip ); |
556 |
+ |
557 |
+ $domaindb->reload(); |
558 |
+ |
559 |
+ system( "/sbin/e-smith/signal-event", "ddclient" ); |
560 |
+ |
561 |
+ return $c->l('ddc_SUCCESSFULLY_MODIFIED_RETRIEVE_IP'); |
562 |
+} |
563 |
+ |
564 |
+sub performCreateCustom { |
565 |
+ my ($c) = shift; |
566 |
+ |
567 |
+ #------------------------------------------------------------ |
568 |
+ # Validate parameters and untaint them |
569 |
+ #------------------------------------------------------------ |
570 |
+ |
571 |
+ my $domainName = $c->param('domainName'); |
572 |
+ if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) { |
573 |
+ $domainName = $1; |
574 |
+ } |
575 |
+ else { |
576 |
+ return $c->l( 'ddc_DOMAIN_NAME_VALIDATION_ERROR', $domainName ); |
577 |
+ } |
578 |
+ |
579 |
+ foreach my $domain ( $edb->get_all_by_prop( type => 'domain' ) ) { |
580 |
+ my $key = $domain->key; |
581 |
+ if ( $key eq $domainName ) { |
582 |
+ return $c->l( 'ddc_DOMAIN_NAME_ALREADY_EXIST', $domainName ); |
583 |
+ } |
584 |
+ } |
585 |
+ |
586 |
+ foreach my $domain ( $domaindb->get_all_by_prop( type => 'ddhost' ) ) { |
587 |
+ my $key = $domain->key; |
588 |
+ if ( $key eq $domainName ) { |
589 |
+ return $c->l( 'ddc_DOMAIN_NAME_ALREADY_EXIST', $domainName ); |
590 |
+ } |
591 |
+ } |
592 |
+ |
593 |
+ my $domainDesc = $c->param('desc'); |
594 |
+ my $domainLogin = $c->param('login'); |
595 |
+ if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) { |
596 |
+ $domainLogin = $1; |
597 |
+ } |
598 |
+ else { |
599 |
+ return $c->l( 'ddc_DOMAIN_LOGIN_VALIDATION_ERROR', $domainLogin ); |
600 |
+ } |
601 |
+ |
602 |
+ my $domainPassword = $c->param('password'); |
603 |
+ if ( $domainPassword =~ /^(.*)$/ ) { |
604 |
+ $domainPassword = $1; |
605 |
+ } |
606 |
+ else { |
607 |
+ return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR', $domainPassword ); |
608 |
+ } |
609 |
+ |
610 |
+ my $domainMX = $c->param('mx'); |
611 |
+ my $customDNS = $c->param('customdns'); |
612 |
+ my $customPROTOCOL = $c->param('customprotocol'); |
613 |
+ |
614 |
+ my $dns = $c->param('dns'); |
615 |
+ if ( $dns eq 'CUSTOMDNS' ) { |
616 |
+ if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) { |
617 |
+ $customDNS = $1; |
618 |
+ } |
619 |
+ else { |
620 |
+ return $c->l( 'ddc_CUSTOMDNS_VALIDATION_ERROR', $domainName ); |
621 |
+ } |
622 |
+ } |
623 |
+ |
624 |
+ #------------------------------------------------------------ |
625 |
+ # Looks good. Find out if this domain has been taken |
626 |
+ # or if the domain is a reserved to provide a secured webserver |
627 |
+ # for a previous domain |
628 |
+ #------------------------------------------------------------ |
629 |
+ |
630 |
+ my %properties = (); |
631 |
+ $properties{'type'} = 'ddhost'; |
632 |
+ $properties{'dns'} = $dns; |
633 |
+ $properties{'login'} = $domainLogin; |
634 |
+ $properties{'password'} = $domainPassword; |
635 |
+ $properties{'mx'} = $domainMX; |
636 |
+ $properties{'desc'} = $domainDesc; |
637 |
+ $properties{'customdns'} = $customDNS; |
638 |
+ $properties{'customprotocol'} = $customPROTOCOL; |
639 |
+ $edb->new_record( $domainName, \%properties ); |
640 |
+ |
641 |
+ system( "/sbin/e-smith/signal-event", "ddclient" ); |
642 |
+ return "ok"; |
643 |
+ |
644 |
+} |
645 |
+ |
646 |
+sub performModifyDomain { |
647 |
+ my $c = shift; |
648 |
+ |
649 |
+ #------------------------------------------------------------ |
650 |
+ # Validate parameters and untaint them |
651 |
+ #------------------------------------------------------------ |
652 |
+ |
653 |
+ my $domainName = $c->param('domainName'); |
654 |
+ if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) { |
655 |
+ $domainName = $1; |
656 |
+ } |
657 |
+ else { |
658 |
+ return $c->l( 'ddc_DOMAIN_NAME_VALIDATION_ERROR', $domainName ); |
659 |
+ } |
660 |
+ |
661 |
+ my $domainLogin = $c->param('login'); |
662 |
+ if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) { |
663 |
+ $domainLogin = $1; |
664 |
+ } |
665 |
+ else { |
666 |
+ return $c->l( 'ddc_DOMAIN_LOGIN_VALIDATION_ERROR', $domainLogin ); |
667 |
+ } |
668 |
+ |
669 |
+ my $domainPassword = $c->param('password'); |
670 |
+ if ( $domainPassword =~ /^(.*)$/ ) { |
671 |
+ $domainPassword = $1; |
672 |
+ } |
673 |
+ else { |
674 |
+ return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR', $domainPassword ); |
675 |
+ } |
676 |
+ |
677 |
+ my $domainMX = $c->param('mx'); |
678 |
+ my $customDNS = $c->param('customdns'); |
679 |
+ my $customPROTOCOL = $c->param('customprotocol'); |
680 |
+ |
681 |
+ my $dns = $c->param('dns'); |
682 |
+ if ( $dns eq 'CUSTOMDNS' ) { |
683 |
+ if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) { |
684 |
+ $customDNS = $1; |
685 |
+ } |
686 |
+ else |
687 |
+ |
688 |
+ { |
689 |
+ return $c->l( 'ddc_CUSTOMDNS_VALIDATION_ERROR', $domainName ); |
690 |
+ } |
691 |
+ } |
692 |
+ |
693 |
+ #------------------------------------------------------------ |
694 |
+ # Looks good. Find out if this domain has been taken |
695 |
+ # or if the domain is a reserved to provide a secured webserver |
696 |
+ # for a previous domain |
697 |
+ #------------------------------------------------------------ |
698 |
+ # my $dns = $c->param ('dns'); |
699 |
+ |
700 |
+ my $dom = $domaindb->get($domainName); |
701 |
+ |
702 |
+ $dom->set_prop( 'dns' => $dns ); |
703 |
+ $dom->set_prop( 'login' => $domainLogin ); |
704 |
+ $dom->set_prop( 'password' => $domainPassword ); |
705 |
+ $dom->set_prop( 'mx' => $domainMX ); |
706 |
+ $dom->set_prop( 'customdns' => $customDNS ); |
707 |
+ $dom->set_prop( 'customprotocol' => $customPROTOCOL ); |
708 |
+ |
709 |
+ $domaindb->reload(); |
710 |
+ |
711 |
+ system( "/sbin/e-smith/signal-event", "ddclient" ); |
712 |
+ return "ok"; |
713 |
+} |
714 |
+ |
715 |
+sub performModifyCustom { |
716 |
+ my $c = shift; |
717 |
+ |
718 |
+ #------------------------------------------------------------ |
719 |
+ # Validate parameters and untaint them |
720 |
+ #------------------------------------------------------------ |
721 |
+ |
722 |
+ my $domainName = $c->param('domainName'); |
723 |
+ if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) { |
724 |
+ $domainName = $1; |
725 |
+ } |
726 |
+ else { |
727 |
+ return $c->l( 'ddc_DOMAIN_NAME_VALIDATION_ERROR', $domainName ); |
728 |
+ } |
729 |
+ |
730 |
+ my $domainLogin = $c->param('login'); |
731 |
+ if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) { |
732 |
+ $domainLogin = $1; |
733 |
+ } |
734 |
+ else { |
735 |
+ return $c->l( 'ddc_DOMAIN_LOGIN_VALIDATION_ERROR', $domainLogin ); |
736 |
+ } |
737 |
+ |
738 |
+ my $domainPassword = $c->param('password'); |
739 |
+ if ( $domainPassword =~ /^(.*)$/ ) { |
740 |
+ $domainPassword = $1; |
741 |
+ } |
742 |
+ else { |
743 |
+ return $c->l( 'ddc_DOMAIN_PASSWORD_VALIDATION_ERROR', $domainPassword ); |
744 |
+ } |
745 |
+ |
746 |
+ my $domainMX = $c->param('mx'); |
747 |
+ my $customDNS = $c->param('customdns'); |
748 |
+ my $customPROTOCOL = $c->param('customprotocol'); |
749 |
+ |
750 |
+ my $dns = $c->param('dns'); |
751 |
+ if ( $dns eq 'CUSTOMDNS' ) { |
752 |
+ if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) { |
753 |
+ $customDNS = $1; |
754 |
+ } |
755 |
+ else |
756 |
+ |
757 |
+ { |
758 |
+ return $c->l( 'ddc_CUSTOMDNS_VALIDATION_ERROR', $domainName ); |
759 |
+ } |
760 |
+ } |
761 |
+ |
762 |
+ #------------------------------------------------------------ |
763 |
+ # Looks good. Find out if this domain has been taken |
764 |
+ # or if the domain is a reserved to provide a secured webserver |
765 |
+ # for a previous domain |
766 |
+ #------------------------------------------------------------ |
767 |
+ # my $dns = $c->param ('dns'); |
768 |
+ |
769 |
+ my $dom = $edb->get($domainName); |
770 |
+ |
771 |
+ $dom->set_prop( 'dns' => $dns ); |
772 |
+ $dom->set_prop( 'login' => $domainLogin ); |
773 |
+ $dom->set_prop( 'password' => $domainPassword ); |
774 |
+ $dom->set_prop( 'mx' => $domainMX ); |
775 |
+ $dom->set_prop( 'customdns' => $customDNS ); |
776 |
+ $dom->set_prop( 'customprotocol' => $customPROTOCOL ); |
777 |
+ |
778 |
+ $domaindb->reload(); |
779 |
+ |
780 |
+ system( "/sbin/e-smith/signal-event", "ddclient" ); |
781 |
+ return "ok"; |
782 |
+} |
783 |
+ |
784 |
+1; |
785 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Ddclient/en.pm smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Ddclient/en.pm |
786 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Ddclient/en.pm 1970-01-01 01:00:00.000000000 +0100 |
787 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Ddclient/en.pm 2020-06-08 09:45:00.000000000 +0100 |
788 |
@@ -0,0 +1,97 @@ |
789 |
+package SrvMngr::I18N::Modules::Ddclient::en; |
790 |
+use strict; |
791 |
+use warnings; |
792 |
+use utf8; |
793 |
+use Mojo::Base 'SrvMngr::I18N'; |
794 |
+ |
795 |
+use SrvMngr::I18N::Modules::General::en; |
796 |
+ |
797 |
+my %lexicon = ( |
798 |
+'ddc_FORM_TITLE' => 'Create, remove or change the publication of virtual domains', |
799 |
+'ddc_Params_for_IP_Retrieval'=>' Parameters to control how the IP of your server is found:', |
800 |
+'ddc_DESCRIPTION'=> 'Use this contrib when you have a sme server connected to a ISP service using a dynamic IP, and you wish to host multiple domains. |
801 |
+<br>ddclient is a client for updating dynamic DNS entries for domains hosted at different DNS providers. |
802 |
+<br>Configure your dynamic host domains via the ddclient server manager panel. |
803 |
+<br>ddclient can be used on servers configured in server gateway mode or in server only mode.<br><br> ', |
804 |
+'ddc_FORM_DESCRIPTION' => 'Virtual Domains for publication on the net:', |
805 |
+'ddc_NO_VIRTUAL_DOMAINS' => 'There are no virtual domains in the system.', |
806 |
+'ddc_CURRENT_LIST_OF_DOMAINS' => 'Current list of virtual domains', |
807 |
+'ddc_PUBLICATION' => 'Publication', |
808 |
+'ddc_PRIMARY_SITE' => 'Primary Site', |
809 |
+'ddc_CONTENT' => '[_1] i-bay', |
810 |
+'ddc_CREATE_TITLE' => 'Create a new publication virtual domain', |
811 |
+'ddc_SERVERS_LABEL' => 'Where to publish', |
812 |
+'ddc_MX' => 'record MX', |
813 |
+'ddc_NAME_LABEL' => 'Login to publish', |
814 |
+'ddc_PASSWORD_LABEL' => 'Password to publish', |
815 |
+'ddc_CONTENT_FIELD_DESCRIPTION' => 'For the web site, you may choose your primary web site or any i-bay as the content.', |
816 |
+'ddc_DOMAIN_NAME_VALIDATION_ERROR' => 'Error: unexpected or missing characters in domain name [_1]. The domain name should contain one or more letters, numbers, periods and minus signs. Did not create new domain.', |
817 |
+'ddc_DOMAIN_DESCRIPTION_VALIDATION_ERROR' => 'Error: unexpected or missing characters in domain description [_1]. Did not create new domain.', |
818 |
+'ddc_DOMAIN_IN_USE_ERROR' => 'Error: domain [_1] is already in use. Did not create new domain.', |
819 |
+'ddc_DOMAIN_LOGIN_VALIDATION_ERROR'=> 'Domain login must not be blank and only consist of letter, numbers, "." or "@"', |
820 |
+'ddc_RESERVED_SECURE_DOMAIN_ERROR' => 'Error: domain [_1] is reserved to provide a secured webserver for the virtual domain [_2]. Did not create new domain.', |
821 |
+'ddc_SYSTEM_DOMAIN_ERROR' => 'Error: domain [_1] is your system domain name. You cannot have a virtual domain with the same name. Did not create new domain.', |
822 |
+'ddc_RESERVED_SECURE_SYSTEM_DOMAIN_ERROR' => 'Error: domain [_1] is reserved to provide a secured webserver for your system domain name [_2]. Did not create new domain.', |
823 |
+'ddc_SUCCESSFULLY_CREATED' => 'Successfully publication domain [_1] on [_2].', |
824 |
+'ddc_MODIFY_TITLE' => 'Modify virtual domain', |
825 |
+'ddc_NONEXISTENT_DOMAIN_ERROR' => 'Error: [_1] is not an existing domain.', |
826 |
+'ddc_SUCCESSFULLY_MODIFIED' => 'Successfully modified the publication [_1] on [_2].', |
827 |
+'ddc_REMOVE_TITLE' => 'Remove publication of virtual domain', |
828 |
+'ddc_REMOVE_DESCRIPTION' => '<p>You are about to remove the publication of domain [_1] ([_2]) on [_3]. |
829 |
+</p> |
830 |
+<p> |
831 |
+<b>Are you sure you wish to remove this domain\'s publication ?</b> |
832 |
+</p> |
833 |
+', |
834 |
+'ddc_ERROR_WHILE_REMOVING_DOMAIN' => 'Error: internal failure while removing publication of [_1].', |
835 |
+'ddc_SUCCESSFULLY_DELETED' => 'Successfully deleted publication of [_1] on [_2].', |
836 |
+'ddc_DYNDNS1' => 'dyndns.org dynamic addresses', |
837 |
+'ddc_DYNDNS2' => 'dyndns.org static addresses', |
838 |
+'ddc_DYNDNS3' => 'dyndns.org custom addresses', |
839 |
+'ddc_ZONEDIT' => 'ZoneEdit (zoneedit.com)', |
840 |
+'ddc_EASYDNS' => 'EasyDNS (easydns.com)', |
841 |
+'ddc_HAMMER' => 'Hammernode (hn.org) dynamic addresses', |
842 |
+'ddc_DSLREPORTS' => 'dslreports.com dynamic-host monitoring', |
843 |
+'ddc_EURODYNDNS' => 'eurodyndns.org dynamic addresses', |
844 |
+'ddc_DTDNS' => 'DtDNS (www.dtdns.com) dynamic addresses', |
845 |
+'ddc_LOOPIA' => 'Loopia (loopia.se) dynamic addresses', |
846 |
+'ddc_DNSPARK' => ' Dnspark (dnspark.com) dynamic addresses', |
847 |
+'ddc_DYNHOST' => ' DynHost (ovh.com) dynamic addresses', |
848 |
+'ddc_NOIP' => ' NoIP (noip.com) dynamic addresses', |
849 |
+'ddc_CHANGEIP' => ' ChangeIP (changeip.com) dynamic addresses', |
850 |
+'ddc_NAMECHEAP' => ' NAMECHEAP (namecheap.com) dynamic addresses', |
851 |
+'ddc_SPDNS' => ' SPDNS (spdns.de) dynamic addresses', |
852 |
+'ddc_CUSTOMDNS' => 'Custom Dynamic DNS Provider', |
853 |
+'ddc_CUSTOMDNS_LABEL' => 'Custom server Address', |
854 |
+'ddc_CUSTOM_PROTOCOL_LABEL' => 'Custom ddclient Protocol', |
855 |
+'ddc_CUSTOM_DESCRIPTION' => 'You can use a custom dynamic dns provider if yours is not in the published list. Please fill the custom fields with the appropriate settings', |
856 |
+'ddc_CUSTOMDNS_VALIDATION_ERROR' => 'Error: unexpected or missing characters in custom server address field of domain [_1]. The server address should contain one or more letters, numbers, periods and minus signs. Did not apply the change.', |
857 |
+'ddc_ddclient' =>'Dynamic Clients', |
858 |
+'ddc_DOMAIN_NAME_ALREADY_EXIST' => 'Error: this domain:"[_1]" already exists. Please chose another.', |
859 |
+'ddc_FREE_FORM_DESCRIPTION' => 'Here you can create any domain name to publish over the net:', |
860 |
+'ddc_RETRIEVE_SSL' => 'SSL update', |
861 |
+'ddc_RETRIEVE_DEAMONUPDATE' => 'Deamon update (seconds)', |
862 |
+'ddc_RETRIEVE_URLCHECKIP' => 'Url for the external IP', |
863 |
+'ddc_APPLY' => 'Save', |
864 |
+'ddc_DOMAIN_NAME_LABEL' => 'Domain Name', |
865 |
+'ddc_DESCRIPTION_LABEL' => 'Domain description', |
866 |
+'ddc_SUCCESSFULLY_MODIFIED_RETRIEVE_IP' => 'You have successfully modified the retrieve IP options.', |
867 |
+'ddc_RETRIEVE_METHOD' => 'Method to retrieve new IP:', |
868 |
+'ddc_RETRIEVE_IF' => 'Local interface to get new IP, if selected interface method', |
869 |
+'ddc_RETRIEVE_CMD' => 'Command to execute to get IP, if selected command method', |
870 |
+'ddc_SME external Interface' => 'SME external interface', |
871 |
+'ddc_SME configuration DB' => 'SME configuration DB', |
872 |
+'ddc_web' => 'Web query', |
873 |
+'ddc_Interface' => 'IP from interface', |
874 |
+'ddc_IP' => 'Manual IP setting', |
875 |
+'ddc_Command' => 'Command to execute', |
876 |
+'ddc_RETRIEVE_IP' => 'IP to manually force' |
877 |
+); |
878 |
+ |
879 |
+our %Lexicon = ( |
880 |
+ %{ SrvMngr::I18N::Modules::General::en::Lexicon }, |
881 |
+ %lexicon |
882 |
+); |
883 |
+ |
884 |
+ |
885 |
+1; |
886 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/ddclient.html.ep smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/ddclient.html.ep |
887 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/ddclient.html.ep 1970-01-01 01:00:00.000000000 +0100 |
888 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/ddclient.html.ep 2020-06-07 10:18:00.000000000 +0100 |
889 |
@@ -0,0 +1,48 @@ |
890 |
+% layout 'default', title => "Sme server 2 - Dynamic Clients", share_dir => './'; |
891 |
+ |
892 |
+% content_for 'module' => begin |
893 |
+<div id="module"> |
894 |
+ |
895 |
+ % if ($config->{debug} == 1) { |
896 |
+ <p> |
897 |
+ %= dumper $c->current_route |
898 |
+ </p> |
899 |
+ % } |
900 |
+ |
901 |
+ <h1><%=$title%></h1> |
902 |
+ %= $modul |
903 |
+ |
904 |
+ %if ($ddc_datas->{first}) { |
905 |
+ <br><p> |
906 |
+ %=$c->render_to_string(inline =>$c->l($ddc_datas->{first})) |
907 |
+ </p> |
908 |
+ |
909 |
+ %} elsif ($ddc_datas->{success}) { |
910 |
+ <div class='sme-border'> |
911 |
+ <h2> Operation Status Report</h2><p> |
912 |
+ %= $c->l($ddc_datas->{success}); |
913 |
+ </p> |
914 |
+ </div> |
915 |
+ |
916 |
+ %} elsif ($ddc_datas->{error}) { |
917 |
+ <div class='sme-error'> |
918 |
+ <h2> Operation Status Report - error</h2><p> |
919 |
+ %= $c->l($ddc_datas->{error}); |
920 |
+ </p> |
921 |
+ </div> |
922 |
+ %} |
923 |
+ |
924 |
+ % if ($ddc_datas->{trt} eq 'NEW') { |
925 |
+ %= include 'partials/_ddc_create_cust' |
926 |
+ %} elsif ($ddc_datas->{trt} eq 'DEL') { |
927 |
+ %= include 'partials/_ddc_del' |
928 |
+ %} elsif ($ddc_datas->{trt} eq 'MOD') { |
929 |
+ %= include 'partials/_ddc_modify_domain' |
930 |
+ %} else { #LIST |
931 |
+ %= include 'partials/_ddc_paramlist' |
932 |
+ %= include 'partials/_ddc_domainlist' |
933 |
+ %= include 'partials/_ddc_customlist' |
934 |
+ %} |
935 |
+ |
936 |
+</div> |
937 |
+%end |
938 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_create_cust.html.ep smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_create_cust.html.ep |
939 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_create_cust.html.ep 1970-01-01 01:00:00.000000000 +0100 |
940 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_create_cust.html.ep 2020-06-08 11:31:00.000000000 +0100 |
941 |
@@ -0,0 +1,63 @@ |
942 |
+<div id='ddc_createcustom'> |
943 |
+ <h2> |
944 |
+ %= l 'ddc_CUSTOM_DESCRIPTION' |
945 |
+ </h2><br> |
946 |
+ % my $btn = l('ddc_APPLY'); |
947 |
+ %= form_for '/ddclient7' => (method => 'POST') => begin |
948 |
+ <span class=label> |
949 |
+ %=l 'ddc_DOMAIN_NAME_LABEL' |
950 |
+ </span><span class=data> |
951 |
+ %=text_field 'domainName' |
952 |
+ </span><br> |
953 |
+ <span class=label> |
954 |
+ %=l 'ddc_DESCRIPTION_LABEL' |
955 |
+ </span><span class=data> |
956 |
+ %=text_field 'desc' |
957 |
+ </span><br> |
958 |
+ <span class=label> |
959 |
+ %=l 'ddc_SERVERS_LABEL' |
960 |
+ </span><span class=data> |
961 |
+ %=select_field dns=>$dnslabels |
962 |
+ </span><br> |
963 |
+ <span class=label> |
964 |
+ %=l 'ddc_CUSTOMDNS_LABEL' |
965 |
+ </span><span class=data> |
966 |
+ %=text_field 'customdns' |
967 |
+ </span><br> |
968 |
+ <span class=label> |
969 |
+ %=l 'ddc_CUSTOM_PROTOCOL_LABEL' |
970 |
+ </span><span class=data> |
971 |
+ %=text_field 'customprotocol' |
972 |
+ </span><br> |
973 |
+ <span class=label> |
974 |
+ %=l 'ddc_NAME_LABEL' |
975 |
+ </span><span class=data> |
976 |
+ %=text_field 'login' |
977 |
+ </span><br> |
978 |
+ <span class=label> |
979 |
+ %=l 'ddc_PASSWORD_LABEL' |
980 |
+ </span><span class=data> |
981 |
+ %=password_field 'password',id=>"ddcPass" |
982 |
+ %=label_for show=>"Show" |
983 |
+ %=check_box show=>1,onclick=>"showPass()",style=>"vertical-align:middle;" |
984 |
+ %= javascript begin |
985 |
+ function showPass() { |
986 |
+ var x = document.getElementById("ddcPass"); |
987 |
+ if (x.type === "password") { |
988 |
+ x.type = "text"; |
989 |
+ } else { |
990 |
+ x.type = "password"; |
991 |
+ } |
992 |
+ } |
993 |
+ % end |
994 |
+ </span><br> |
995 |
+ <span class=label> |
996 |
+ %=l 'ddc_MX' |
997 |
+ </span><span class=data> |
998 |
+ %=text_field 'mx' |
999 |
+ </span><br> |
1000 |
+ %= submit_button "$btn", class => 'action' |
1001 |
+ % end |
1002 |
+</div> |
1003 |
+ |
1004 |
+ |
1005 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_customlist.html.ep smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_customlist.html.ep |
1006 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_customlist.html.ep 1970-01-01 01:00:00.000000000 +0100 |
1007 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_customlist.html.ep 2020-06-08 06:28:00.000000000 +0100 |
1008 |
@@ -0,0 +1,50 @@ |
1009 |
+<div id='ddc_customlist'> |
1010 |
+ <h2> |
1011 |
+ %= l 'ddc_FREE_FORM_DESCRIPTION' |
1012 |
+ </h2> |
1013 |
+ |
1014 |
+ %= form_for '/ddclient' => (method => 'POST') => begin |
1015 |
+ |
1016 |
+ <table class="sme-border"><tbody> |
1017 |
+ <tr> |
1018 |
+ <th class='sme-border'> |
1019 |
+ %=l 'ddc_DOMAIN_NAME_LABEL' |
1020 |
+ </th> |
1021 |
+ <th class='sme-border'> |
1022 |
+ %=l 'ddc_DESCRIPTION_LABEL' |
1023 |
+ </th> |
1024 |
+ <th class='sme-border'> |
1025 |
+ %=l 'ddc_PUBLICATION' |
1026 |
+ </th> |
1027 |
+ <th class='sme-border' colspan=2> |
1028 |
+ %=l 'ACTION' |
1029 |
+ </th> |
1030 |
+ </tr> |
1031 |
+ %if (!$emptycust){ |
1032 |
+ % foreach my $freeDomain (@$freedomains) { |
1033 |
+ <tr> |
1034 |
+ %= t td => (class => 'sme-border') => $freeDomain->{"Domain"} |
1035 |
+ %= t td => (class => 'sme-border') => $freeDomain->{"Description"} |
1036 |
+ %= t td => (class => 'sme-border') => $freeDomain->{"Publication"} |
1037 |
+ <td class = 'sme-border'> |
1038 |
+ <a href='/server-manager2/ddclient2?trt=MOD&Domain=<%= $freeDomain->{"Domain"}%>'><%=l 'MODIFY'%></a> |
1039 |
+ </td><td class = 'sme-border'> |
1040 |
+ <a href='/server-manager2/ddclient2?trt=DEL&Domain=<%= $freeDomain->{"Domain"}%>'><%=l 'REMOVE'%></a> |
1041 |
+ </td> |
1042 |
+ </td> |
1043 |
+ </tr> |
1044 |
+ %} |
1045 |
+ %} |
1046 |
+ <tr><td class='sme-border'></td> |
1047 |
+ <td class='sme-border'></td> |
1048 |
+ <td class='sme-border'> </td> |
1049 |
+ <td class='sme-border'> </td> |
1050 |
+ <td class='sme-border'> |
1051 |
+ <a href="/server-manager2/ddclient6?trt=NEW"><%=l 'CREATE'%></a> |
1052 |
+ </td> |
1053 |
+ </tr> |
1054 |
+ |
1055 |
+ </tbody> |
1056 |
+ </table> |
1057 |
+ % end |
1058 |
+</div> |
1059 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_del.html.ep smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_del.html.ep |
1060 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_del.html.ep 1970-01-01 01:00:00.000000000 +0100 |
1061 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_del.html.ep 2020-06-08 06:13:00.000000000 +0100 |
1062 |
@@ -0,0 +1,14 @@ |
1063 |
+<div id='ddc_del'> |
1064 |
+ % my $btn = l('REMOVE'); |
1065 |
+ %= form_for '/ddclient4' => (method => 'POST') => begin |
1066 |
+ <p> |
1067 |
+ %= $c->render_to_string(inline =>l("ddc_REMOVE_DESCRIPTION",$ddc_datas->{"Domain_details"}->{"Domain"},$ddc_datas->{"Domain_details"}->{"Description"},$c->l($ddc_datas->{"Domain_details"}->{"Publication"}))) |
1068 |
+ </p> |
1069 |
+ % param Domain=>$ddc_datas->{"Domain_details"}->{"Domain"}; |
1070 |
+ %= hidden_field Domain=>$ddc_datas->{"Domain_details"}->{"Domain"} |
1071 |
+ %= hidden_field Route=>$c->current_route |
1072 |
+ %= hidden_field dns=>$ddc_datas->{"Domain_details"}->{"dns"} |
1073 |
+ %= hidden_field trt=>"DEL" |
1074 |
+ %= submit_button "$btn", class => 'action' |
1075 |
+ % end |
1076 |
+</div> |
1077 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_domainlist.html.ep smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_domainlist.html.ep |
1078 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_domainlist.html.ep 1970-01-01 01:00:00.000000000 +0100 |
1079 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_domainlist.html.ep 2020-06-06 09:00:00.000000000 +0100 |
1080 |
@@ -0,0 +1,48 @@ |
1081 |
+<div id='ddc_Domainslist'> |
1082 |
+ <h2> |
1083 |
+ %= l 'ddc_FORM_DESCRIPTION' |
1084 |
+ </h2> |
1085 |
+ %= form_for '/ddclient' => (method => 'POST') => begin |
1086 |
+ |
1087 |
+ % if ($emptydom){ |
1088 |
+ <br><h2> |
1089 |
+ %=l 'NO_VIRTUAL_DomainS' |
1090 |
+ <h2> |
1091 |
+ % } else { |
1092 |
+ <table class="sme-border"><tbody> |
1093 |
+ <tr> |
1094 |
+ <th class='sme-border'> |
1095 |
+ %=l 'ddc_DOMAIN_NAME_LABEL' |
1096 |
+ </th> |
1097 |
+ <th class='sme-border'> |
1098 |
+ %=l 'ddc_DESCRIPTION_LABEL' |
1099 |
+ </th> |
1100 |
+ <th class='sme-border'> |
1101 |
+ %=l('ddc_CONTENT',"") |
1102 |
+ </th> |
1103 |
+ <th class='sme-border'> |
1104 |
+ %=l 'ddc_PUBLICATION' |
1105 |
+ </th> |
1106 |
+ |
1107 |
+ <th class='sme-border' colspan=2> |
1108 |
+ %=l 'ACTION' |
1109 |
+ </th> |
1110 |
+ </tr> |
1111 |
+ % foreach my $Domain (@$domains) { |
1112 |
+ <tr> |
1113 |
+ %= t td => (class => 'sme-border') => $Domain->{"Domain"} |
1114 |
+ %= t td => (class => 'sme-border') => $Domain->{"Description"} |
1115 |
+ %= t td => (class => 'sme-border') => $Domain->{"Content"} |
1116 |
+ %= t td => (class => 'sme-border') => $Domain->{"Publication"} |
1117 |
+ <td class = 'sme-border'> |
1118 |
+ <a href="/server-manager2/ddclient1?trt=MOD&Domain=<%= $Domain->{"Domain"}%>"><%=l 'MODIFY'%></a> |
1119 |
+ </td><td class = 'sme-border'> |
1120 |
+ <a href="/server-manager2/ddclient1?trt=DEL&Domain=<%= $Domain->{"Domain"}%>"><%=l 'REMOVE'%></a> |
1121 |
+ </td> |
1122 |
+ </tr> |
1123 |
+ %} |
1124 |
+ </tbody> |
1125 |
+ </table> |
1126 |
+ %} |
1127 |
+ % end |
1128 |
+</div> |
1129 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_modify_domain.html.ep smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_modify_domain.html.ep |
1130 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_modify_domain.html.ep 1970-01-01 01:00:00.000000000 +0100 |
1131 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_modify_domain.html.ep 2020-06-08 11:32:00.000000000 +0100 |
1132 |
@@ -0,0 +1,77 @@ |
1133 |
+<div id='ddc_modifydomain'> |
1134 |
+ <h2> |
1135 |
+ %= l 'ddc_CUSTOM_DESCRIPTION' |
1136 |
+ </h2><br> |
1137 |
+ % my $btn = l('ddc_APPLY'); |
1138 |
+ %= form_for '/ddclient8' => (method => 'POST') => begin |
1139 |
+ <span class=label> |
1140 |
+ %=l 'ddc_DOMAIN_NAME_LABEL' |
1141 |
+ </span><span class=data> |
1142 |
+ %= hidden_field domainName => $ddc_datas->{"Domain_details"}->{"Domain"} |
1143 |
+ %= $ddc_datas->{"Domain_details"}->{"Domain"} |
1144 |
+ </span><br><br> |
1145 |
+ <span class=label> |
1146 |
+ %=l 'ddc_DESCRIPTION_LABEL' |
1147 |
+ </span><span class=data> |
1148 |
+ %= $ddc_datas->{"Domain_details"}->{"Description"} |
1149 |
+ </span><br><br> |
1150 |
+ <span class=label> |
1151 |
+ %= $ddc_datas->{"Domain_details"}->{"Content"} |
1152 |
+ </span><span class=data> |
1153 |
+ %= $ddc_datas->{"Domain_details"}->{"Content"} |
1154 |
+ </span><br><br> |
1155 |
+ <span class=label> |
1156 |
+ %=l 'ddc_SERVERS_LABEL' |
1157 |
+ </span><span class=data> |
1158 |
+ % param dns=>$ddc_datas->{"Domain_details"}->{"dns"}; |
1159 |
+ %=select_field dns=>$dnslabels |
1160 |
+ </span><br> |
1161 |
+ <span class=label> |
1162 |
+ %=l 'ddc_CUSTOMDNS_LABEL' |
1163 |
+ </span><span class=data> |
1164 |
+ % param customdns=>$ddc_datas->{"Domain_details"}->{"customdns"}; |
1165 |
+ %=text_field 'customdns' |
1166 |
+ </span><br> |
1167 |
+ <span class=label> |
1168 |
+ %=l 'ddc_CUSTOM_PROTOCOL_LABEL' |
1169 |
+ </span><span class=data> |
1170 |
+ % param customprotocol=>$ddc_datas->{"Domain_details"}->{"customprotocol"}; |
1171 |
+ %=text_field 'customprotocol' |
1172 |
+ </span><br> |
1173 |
+ <span class=label> |
1174 |
+ %=l 'ddc_NAME_LABEL' |
1175 |
+ </span><span class=data> |
1176 |
+ % param login=>$ddc_datas->{"Domain_details"}->{"login"}; |
1177 |
+ %=text_field 'login' |
1178 |
+ </span><br> |
1179 |
+ <span class=label> |
1180 |
+ %=l 'ddc_PASSWORD_LABEL' |
1181 |
+ </span><span class=data> |
1182 |
+ % param password=>$ddc_datas->{"Domain_details"}->{"password"}; |
1183 |
+ %=password_field 'password',id=>"ddcPass",value=>$ddc_datas->{"Domain_details"}->{"password"} |
1184 |
+ %=label_for show=>"Show" |
1185 |
+ %=check_box show=>1,onclick=>"showPass()",style=>"vertical-align:middle;" |
1186 |
+ %= javascript begin |
1187 |
+ function showPass() { |
1188 |
+ var x = document.getElementById("ddcPass"); |
1189 |
+ if (x.type === "password") { |
1190 |
+ x.type = "text"; |
1191 |
+ } else { |
1192 |
+ x.type = "password"; |
1193 |
+ } |
1194 |
+ } |
1195 |
+ % end |
1196 |
+ </span><br> |
1197 |
+ <span class=label> |
1198 |
+ %=l 'ddc_MX' |
1199 |
+ </span><span class=data> |
1200 |
+ % param mx=>$ddc_datas->{"Domain_details"}->{"mx"}; |
1201 |
+ %=text_field 'mx' |
1202 |
+ </span><br> |
1203 |
+ %= hidden_field trt=>"MOD" |
1204 |
+ %= hidden_field Route=>$c->current_route |
1205 |
+ %= submit_button "$btn", class => 'action' |
1206 |
+ % end |
1207 |
+</div> |
1208 |
+ |
1209 |
+ |
1210 |
diff -urN smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_paramlist.html.ep smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_paramlist.html.ep |
1211 |
--- smeserver-ddclient-1.2.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_paramlist.html.ep 1970-01-01 01:00:00.000000000 +0100 |
1212 |
+++ smeserver-ddclient-1.2.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_ddc_paramlist.html.ep 2020-05-28 16:44:00.000000000 +0100 |
1213 |
@@ -0,0 +1,52 @@ |
1214 |
+<div id='ddc_paramlist'> |
1215 |
+ <h2> |
1216 |
+ %= l 'ddc_Params_for_IP_Retrieval' |
1217 |
+ </h2> |
1218 |
+ % my $btn = l('ddc_APPLY'); |
1219 |
+ %= form_for '/ddclient3' => (method => 'POST') => begin |
1220 |
+ <span class=label> |
1221 |
+ %=l 'ddc_RETRIEVE_SSL' |
1222 |
+ </span><span class=data> |
1223 |
+ % param retrievessl=>$ddc_datas->{"params"}->{"ssl"}; |
1224 |
+ %=select_field retrievessl=>[['Yes'=>'yes'],['No'=>'no']] |
1225 |
+ </span><br> |
1226 |
+ <span class=label> |
1227 |
+ %=l 'ddc_RETRIEVE_DEAMONUPDATE' |
1228 |
+ </span><span class=data> |
1229 |
+ % param retrievedeamonupdate=>$ddc_datas->{"params"}->{"DeamonUpdate"}; |
1230 |
+ %=number_field 'retrievedeamonupdate',min=>0 |
1231 |
+ </span><br> |
1232 |
+ <span class=label> |
1233 |
+ %=l 'ddc_RETRIEVE_METHOD' |
1234 |
+ </span><span class=data> |
1235 |
+ % param retrievemethod=>$ddc_datas->{"params"}->{"method"}; |
1236 |
+ %=select_field retrievemethod=>$methodlabels |
1237 |
+ </span><br> |
1238 |
+ <span class=label> |
1239 |
+ %=l 'ddc_RETRIEVE_IF' |
1240 |
+ </span><span class=data> |
1241 |
+ % param retrieveinterface=>$ddc_datas->{"params"}->{"Extinterface"}; |
1242 |
+ %=text_field 'retrieveinterface' |
1243 |
+ </span><br> |
1244 |
+ <span class=label> |
1245 |
+ %=l 'ddc_RETRIEVE_CMD' |
1246 |
+ </span><span class=data> |
1247 |
+ % param retrievecmd=>$ddc_datas->{"params"}->{"cmd"}; |
1248 |
+ %=text_field 'retrievecmd' |
1249 |
+ </span><br> |
1250 |
+ <span class=label> |
1251 |
+ %=l 'ddc_RETRIEVE_IP' |
1252 |
+ </span><span class=data> |
1253 |
+ % param retrieveip=>$ddc_datas->{"params"}->{"ForceIP"}; |
1254 |
+ %=text_field 'retrieveip' |
1255 |
+ </span><br> |
1256 |
+ <span class=label> |
1257 |
+ %=l 'ddc_RETRIEVE_URLCHECKIP' |
1258 |
+ </span><span class=data> |
1259 |
+ % param retrieveurlcheckip=>$ddc_datas->{"params"}->{"urlcheckip"}; |
1260 |
+ %=text_field 'retrieveurlcheckip' |
1261 |
+ </span><br> |
1262 |
+ |
1263 |
+ %= submit_button "$btn", class => 'action' |
1264 |
+ % end |
1265 |
+</div> |