1 |
diff -urN smeserver-geneweb-2.1.old/createlinks smeserver-geneweb-2.1/createlinks |
2 |
--- smeserver-geneweb-2.1.old/createlinks 2007-04-07 17:40:39.000000000 +0400 |
3 |
+++ smeserver-geneweb-2.1/createlinks 2019-04-03 00:11:38.000000000 +0400 |
4 |
@@ -7,20 +7,27 @@ |
5 |
# Panel Link |
6 |
panel_link('geneweb', 'manager'); |
7 |
|
8 |
-my $gwd = "/opt/geneweb/gw/gwd"; |
9 |
+my $gw = "/opt/geneweb/gw/gw"; |
10 |
|
11 |
for my $event (qw( |
12 |
geneweb-modify |
13 |
)) |
14 |
{ |
15 |
-templates2events("/opt/geneweb/gw/gw/only.txt", |
16 |
+templates2events("$gw/only.txt", |
17 |
qw(geneweb-modify bootstrap-console-save console-save)); |
18 |
|
19 |
- safe_symlink("sigusr1", |
20 |
- "root/etc/e-smith/events/$event/service2adjust/httpd-e-smith"); |
21 |
+templates2events("/etc/rc.d/init.d/gwd", |
22 |
+ qw(geneweb-modify bootstrap-console-save console-save)); |
23 |
+ |
24 |
+} |
25 |
|
26 |
+for my $event (qw(geneweb-modify)) |
27 |
+{ |
28 |
+ safe_symlink("sigusr1", |
29 |
+ "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); |
30 |
safe_symlink("restart", |
31 |
- "root/etc/e-smith/events/$event/service2adjust/gwd"); |
32 |
+ "root/etc/e-smith/events/$event/services2adjust/geneweb"); |
33 |
+ |
34 |
} |
35 |
|
36 |
for my $event (qw(post-upgrade)) |
37 |
@@ -28,6 +35,3 @@ |
38 |
event_link("geneweb-restart", $event, "05"); |
39 |
} |
40 |
|
41 |
-service_link_enhanced("gwd", "S96", "7"); |
42 |
-service_link_enhanced("gwd", "K47", "6"); |
43 |
-service_link_enhanced("gwd", "K47", "0"); |
44 |
diff -urN smeserver-geneweb-2.1.old/root/etc/e-smith/db/configuration/defaults/geneweb/DBDir smeserver-geneweb-2.1/root/etc/e-smith/db/configuration/defaults/geneweb/DBDir |
45 |
--- smeserver-geneweb-2.1.old/root/etc/e-smith/db/configuration/defaults/geneweb/DBDir 1970-01-01 04:00:00.000000000 +0400 |
46 |
+++ smeserver-geneweb-2.1/root/etc/e-smith/db/configuration/defaults/geneweb/DBDir 2019-04-03 20:43:08.000000000 +0400 |
47 |
@@ -0,0 +1 @@ |
48 |
+/opt/geneweb/bases |
49 |
diff -urN smeserver-geneweb-2.1.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/geneweb smeserver-geneweb-2.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/geneweb |
50 |
--- smeserver-geneweb-2.1.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/geneweb 2007-08-05 16:48:59.000000000 +0400 |
51 |
+++ smeserver-geneweb-2.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/geneweb 2019-04-03 00:16:01.000000000 +0400 |
52 |
@@ -9,7 +9,7 @@ |
53 |
<base>LABEL_ONLY_STATUS</base> |
54 |
<trans>Current assigned Geneweb 'only' IP:</trans> |
55 |
</entry> |
56 |
- |
57 |
+ |
58 |
<entry> |
59 |
<base>DESC_STATE_ADMIN_BUTTON</base> |
60 |
<trans> |
61 |
@@ -72,5 +72,31 @@ |
62 |
]]> |
63 |
</trans> |
64 |
</entry> |
65 |
- |
66 |
+ |
67 |
+ <entry> |
68 |
+ <base>ERR_DIR_NOT_EXIST</base> |
69 |
+ <trans>This directory does not exist.</trans> |
70 |
+ </entry> |
71 |
+ |
72 |
+ <entry> |
73 |
+ <base>LABEL_DBDIR_STATUS</base> |
74 |
+ <trans>Current assigned Geneweb Database(s) directory:</trans> |
75 |
+ </entry> |
76 |
+ <entry> |
77 |
+ <base>ERR_DIR_NOT_EXIST</base> |
78 |
+ <trans>Directory not found.</trans> |
79 |
+ </entry> |
80 |
+ <entry> |
81 |
+ <base>DESC_GENEWEB_BASE_DIR_DESCRIPTION</base> |
82 |
+ <trans>This directory must exist on server and be writeable for Geneweb. (geneweb:geneweb 770)</trans> |
83 |
+ </entry> |
84 |
+ <entry> |
85 |
+ <base>LABEL_GENEWEB_BASE_DIR</base> |
86 |
+ <trans>New directory for Geneweb database(s). :</trans> |
87 |
+ </entry> |
88 |
+ <entry> |
89 |
+ <base>NO_CHANGE</base> |
90 |
+ <trans>No change... no update ! |
91 |
+ </trans> |
92 |
+ </entry> |
93 |
</lexicon> |
94 |
diff -urN smeserver-geneweb-2.1.old/root/etc/e-smith/locale/fr/etc/e-smith/web/functions/geneweb smeserver-geneweb-2.1/root/etc/e-smith/locale/fr/etc/e-smith/web/functions/geneweb |
95 |
--- smeserver-geneweb-2.1.old/root/etc/e-smith/locale/fr/etc/e-smith/web/functions/geneweb 2019-04-02 23:11:43.000000000 +0400 |
96 |
+++ smeserver-geneweb-2.1/root/etc/e-smith/locale/fr/etc/e-smith/web/functions/geneweb 2019-04-03 00:17:21.000000000 +0400 |
97 |
@@ -9,11 +9,11 @@ |
98 |
<base>LABEL_ONLY_STATUS</base> |
99 |
<trans>IP 'unique' assignée actuellement à Geneweb:</trans> |
100 |
</entry> |
101 |
- |
102 |
+ |
103 |
<entry> |
104 |
<base>DESC_STATE_ADMIN_BUTTON</base> |
105 |
<trans><![CDATA[ <a class="button-like" href="geneweb?page=0&page_stack=&Next=Next&wherenext=GENEWEB_PAGE_ADMINISTER">Change IP and Administer</a> ]]></trans> |
106 |
- </entry> |
107 |
+ </entry> |
108 |
|
109 |
<entry> |
110 |
<base>ERROR_UPDATING</base> |
111 |
@@ -49,5 +49,27 @@ |
112 |
<base>GENEWEB_ADMINACCESS_STATUS_DESCRIPTION</base> |
113 |
<trans><![CDATA[ <ul> <li>Access to port 2316 provides the administrative interface for Geneweb @ <b>http://YourGenewebServer:2316</b></li> <li>Geneweb Administration can <font color="red"><b>only</b></font> be accessed by the IP assigned in /opt/geneweb/gw/gw/only.txt</li> <li>This panel allows you to assign a valid LAN IP from which you wish to administer Geneweb on your LAN.</li></ul> <p><i>Browse to http://YourGenewebServer:2316 <br> -Geneweb will display the IP to set for administrative access from that client.</i></p> <br><br> ]]></trans> |
114 |
</entry> |
115 |
- |
116 |
+ |
117 |
+ <entry> |
118 |
+ <base>LABEL_DBDIR_STATUS</base> |
119 |
+ <trans>Répertoire de base de donnée(s) assigné actuellement à Geneweb:</trans> |
120 |
+ </entry> |
121 |
+ <entry> |
122 |
+ <base>ERR_DIR_NOT_EXIST</base> |
123 |
+ <trans>Répertoire inexistant sur le serveur.</trans> |
124 |
+ </entry> |
125 |
+ <entry> |
126 |
+ <base>DESC_GENEWEB_BASE_DIR_DESCRIPTION</base> |
127 |
+ <trans>Ce répertoire doit exister sur le serveur et être accessible en écriture par Geneweb. (geneweb:geneweb 770)</trans> |
128 |
+ </entry> |
129 |
+ <entry> |
130 |
+ <base>LABEL_GENEWEB_BASE_DIR</base> |
131 |
+ <trans>Nouveau répertoire contenant le(s) base(s) de données de Geneweb. :</trans> |
132 |
+ </entry> |
133 |
+ <entry> |
134 |
+ <base>NO_CHANGE</base> |
135 |
+ <trans>Aucun changement... pas de mis à jour ! |
136 |
+ </trans> |
137 |
+ </entry> |
138 |
+ |
139 |
</lexicon> |
140 |
diff -urN smeserver-geneweb-2.1.old/root/etc/e-smith/templates/etc/rc.d/init.d/gwd/gwd_ALL smeserver-geneweb-2.1/root/etc/e-smith/templates/etc/rc.d/init.d/gwd/gwd_ALL |
141 |
--- smeserver-geneweb-2.1.old/root/etc/e-smith/templates/etc/rc.d/init.d/gwd/gwd_ALL 1970-01-01 04:00:00.000000000 +0400 |
142 |
+++ smeserver-geneweb-2.1/root/etc/e-smith/templates/etc/rc.d/init.d/gwd/gwd_ALL 2019-04-03 00:19:07.000000000 +0400 |
143 |
@@ -0,0 +1,64 @@ |
144 |
+#!/bin/sh |
145 |
+# chkconfig: 345 99 01 |
146 |
+# |
147 |
+# gwd: Starts the genealogy Server |
148 |
+# |
149 |
+# Version: @(#) /etc/rc.d/init.d/gwd 1.0 |
150 |
+# |
151 |
+# description: Starts and stops the genealogy Server at boot time and shutdown. |
152 |
+# |
153 |
+# processname: gwd |
154 |
+# hide: true |
155 |
+ |
156 |
+# Source function library. |
157 |
+if [ -f /etc/rc.d/init.d/functions ]; then |
158 |
+ . /etc/rc.d/init.d/functions |
159 |
+fi |
160 |
+ |
161 |
+{ |
162 |
+ my $db_dir = ${'geneweb'}{'DBDir'} || "/opt/geneweb/bases"; |
163 |
+ $OUT .= <<END_BD; |
164 |
+BD="$db_dir" |
165 |
+END_BD |
166 |
+} |
167 |
+#BD="/opt/geneweb/bases" (default) |
168 |
+HD="/opt/geneweb/gw/gw" |
169 |
+ |
170 |
+start() \{ |
171 |
+ echo "Starting GeneWeb Services:" |
172 |
+ $HD/gwd -log /var/log/gwd.log -daemon -hd $HD -bd $BD -setup_link |
173 |
+ $HD/gwsetup -daemon -gd $HD 2>> /var/log/gwsetup.log |
174 |
+ touch /var/lock/subsys/gwd |
175 |
+\} |
176 |
+ |
177 |
+stop() \{ |
178 |
+ echo -n "Shutting down GeneWeb Services: " |
179 |
+ killproc $HD/gwd |
180 |
+ killproc $HD/gwsetup |
181 |
+ rm -f /var/lock/subsys/gwd |
182 |
+ echo |
183 |
+\} |
184 |
+ |
185 |
+restart() \{ |
186 |
+ echo -n "Restarting GeneWeb Services: " |
187 |
+ stop |
188 |
+ sleep 1 |
189 |
+ start |
190 |
+\} |
191 |
+ |
192 |
+# See how we were called. |
193 |
+cd $BD |
194 |
+ |
195 |
+case "$1" in |
196 |
+ start|stop|restart) |
197 |
+ $1 |
198 |
+ ;; |
199 |
+ status) |
200 |
+ status gwd |
201 |
+ ;; |
202 |
+ *) |
203 |
+ echo "*** Usage: gwd \{start|stop|status|restart\}" |
204 |
+ exit 1 |
205 |
+esac |
206 |
+ |
207 |
+exit 0 |
208 |
diff -urN smeserver-geneweb-2.1.old/root/etc/e-smith/templates/etc/rc.d/init.d/masq/45AllowGeneWeb smeserver-geneweb-2.1/root/etc/e-smith/templates/etc/rc.d/init.d/masq/45AllowGeneWeb |
209 |
--- smeserver-geneweb-2.1.old/root/etc/e-smith/templates/etc/rc.d/init.d/masq/45AllowGeneWeb 2007-03-05 00:27:09.000000000 +0400 |
210 |
+++ smeserver-geneweb-2.1/root/etc/e-smith/templates/etc/rc.d/init.d/masq/45AllowGeneWeb 2019-04-03 00:20:11.000000000 +0400 |
211 |
@@ -4,10 +4,7 @@ |
212 |
my $status = ${'httpd-e-smith'}{status} || "disabled"; |
213 |
my $access = ${'httpd-e-smith'}{access} || "public"; |
214 |
|
215 |
- #$OUT = allow_tcp_in(2316, |
216 |
- # ($status eq "enabled") && ($access eq "public")); |
217 |
- |
218 |
$OUT = allow_tcp_in(2317, |
219 |
- ($status eq "enabled") && ($access eq "public")); |
220 |
+ ($status eq "enabled") && ($access eq "public")); |
221 |
} |
222 |
|
223 |
diff -urN smeserver-geneweb-2.1.old/root/etc/e-smith/templates.metadata/etc/rc.d/init.d/gwd smeserver-geneweb-2.1/root/etc/e-smith/templates.metadata/etc/rc.d/init.d/gwd |
224 |
--- smeserver-geneweb-2.1.old/root/etc/e-smith/templates.metadata/etc/rc.d/init.d/gwd 1970-01-01 04:00:00.000000000 +0400 |
225 |
+++ smeserver-geneweb-2.1/root/etc/e-smith/templates.metadata/etc/rc.d/init.d/gwd 2019-04-03 19:18:25.000000000 +0400 |
226 |
@@ -0,0 +1,3 @@ |
227 |
+UID="root" |
228 |
+GID="root" |
229 |
+PERMS=0754 |
230 |
diff -urN smeserver-geneweb-2.1.old/root/etc/e-smith/templates.metadata/opt/geneweb/gw/gw/only.txt smeserver-geneweb-2.1/root/etc/e-smith/templates.metadata/opt/geneweb/gw/gw/only.txt |
231 |
--- smeserver-geneweb-2.1.old/root/etc/e-smith/templates.metadata/opt/geneweb/gw/gw/only.txt 1970-01-01 04:00:00.000000000 +0400 |
232 |
+++ smeserver-geneweb-2.1/root/etc/e-smith/templates.metadata/opt/geneweb/gw/gw/only.txt 2019-04-03 19:20:08.000000000 +0400 |
233 |
@@ -0,0 +1,3 @@ |
234 |
+UID="geneweb" |
235 |
+GID="geneweb" |
236 |
+PERMS=0640 |
237 |
diff -urN smeserver-geneweb-2.1.old/root/etc/e-smith/web/functions/geneweb smeserver-geneweb-2.1/root/etc/e-smith/web/functions/geneweb |
238 |
--- smeserver-geneweb-2.1.old/root/etc/e-smith/web/functions/geneweb 2007-08-05 19:29:43.000000000 +0400 |
239 |
+++ smeserver-geneweb-2.1/root/etc/e-smith/web/functions/geneweb 2019-04-03 00:27:46.000000000 +0400 |
240 |
@@ -78,6 +78,13 @@ |
241 |
<label>LABEL_ONLY_STATUS</label> |
242 |
</field> |
243 |
|
244 |
+ <field |
245 |
+ type="literal" |
246 |
+ id="dbdir" |
247 |
+ value="get_dbdir()"> |
248 |
+ <label>LABEL_DBDIR_STATUS</label> |
249 |
+ </field> |
250 |
+ |
251 |
<field |
252 |
type="literal" |
253 |
id="button_admin" |
254 |
@@ -106,6 +113,23 @@ |
255 |
value="get_only()"> |
256 |
<label>LABEL_ONLY_STATUS</label> |
257 |
</field> |
258 |
+ |
259 |
+ <field |
260 |
+ type="text" |
261 |
+ id="geneweb_dbdir" |
262 |
+ size="64" |
263 |
+ validation="must_exist"> |
264 |
+ <label>LABEL_GENEWEB_BASE_DIR</label> |
265 |
+ <description>DESC_GENEWEB_BASE_DIR_DESCRIPTION</description> |
266 |
+ </field> |
267 |
+ |
268 |
+ <field |
269 |
+ type="literal" |
270 |
+ id="dbdir" |
271 |
+ value="get_dbdir()"> |
272 |
+ <label>LABEL_DBDIR_STATUS</label> |
273 |
+ </field> |
274 |
+ |
275 |
|
276 |
<subroutine src="print_button('SAVE')" /> |
277 |
|
278 |
diff -urN smeserver-geneweb-2.1.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/geneweb.pm smeserver-geneweb-2.1/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/geneweb.pm |
279 |
--- smeserver-geneweb-2.1.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/geneweb.pm 2019-04-02 23:11:43.000000000 +0400 |
280 |
+++ smeserver-geneweb-2.1/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/geneweb.pm 2019-04-03 19:14:23.000000000 +0400 |
281 |
@@ -22,8 +22,10 @@ |
282 |
get_prop |
283 |
get_value |
284 |
get_only |
285 |
+ get_dbdir |
286 |
change_settings |
287 |
must_be_local |
288 |
+ must_exist |
289 |
); |
290 |
|
291 |
our $VERSION = sprintf '%d.%03d', q$Revision: 1.2 $ =~ /: (\d+).(\d+)/; |
292 |
@@ -134,6 +136,16 @@ |
293 |
{ |
294 |
return $db->get_prop("geneweb", "only"); |
295 |
} |
296 |
+ |
297 |
+=head2 get_dbdir |
298 |
+ |
299 |
+method to retrieve the value of /opt/geneweb/bases or other location for the form |
300 |
+=cut |
301 |
+ |
302 |
+sub get_dbdir |
303 |
+{ |
304 |
+ return $db->get_prop("geneweb", "DBDir"); |
305 |
+} |
306 |
|
307 |
=head2 change_settings |
308 |
|
309 |
@@ -144,7 +156,19 @@ |
310 |
{ |
311 |
my $self = shift; |
312 |
my $q = $self->{'cgi'}; |
313 |
- $db->set_prop("geneweb", "only", $q->param("geneweb_only") || ''); |
314 |
+ my $n_gw_ip = $q->param("geneweb_only") || ''; |
315 |
+ my $n_gw_dbdir = $q->param("geneweb_dbdir") || ''; |
316 |
+ if (!($n_gw_ip || $n_gw_dbdir)) { |
317 |
+ return $self->success("NO_CHANGE") |
318 |
+ } |
319 |
+ my $gw_ip = get_only(); |
320 |
+ my $gw_dbdir = get_dbdir(); |
321 |
+ if (($n_gw_ip eq $gw_ip) && ($n_gw_dbdir eq $gw_dbdir)) { |
322 |
+ return $self->success("NO_CHANGE") |
323 |
+ } |
324 |
+ if ($n_gw_ip) { $db->set_prop("geneweb", "only", $n_gw_ip) } |
325 |
+ if ($n_gw_dbdir) { $db->set_prop("geneweb", "DBDir", $n_gw_dbdir) } |
326 |
+ |
327 |
unless ( system ( "/sbin/e-smith/signal-event", "geneweb-modify" ) == 0 ) |
328 |
{ |
329 |
$self->error("ERROR_UPDATING"); |
330 |
@@ -163,24 +187,46 @@ |
331 |
{ |
332 |
my $self = shift; |
333 |
my $q = $self->{cgi}; |
334 |
- my $gw_ip = $q->param("geneweb_only"); |
335 |
+ my $gw_ip = $q->param("geneweb_only" || ''); |
336 |
+ if (!($gw_ip)) { return 'OK'} |
337 |
+ if (!( $gw_ip =~ /^((([01]?[0-9]{1,2}|[2][0-5]{1,2}).){3}([01]?[0-9]{1,2}|[2][0-5]{1,2}))$/ )) |
338 |
+ { |
339 |
+ return 'NOT_VALID_IP'; |
340 |
+ } |
341 |
# Make sure that the IP is indeed local. |
342 |
my $ndb = esmith::NetworksDB->open_ro; |
343 |
my @local_list = $ndb->local_access_spec; |
344 |
|
345 |
foreach my $spec (@local_list) |
346 |
{ |
347 |
- my $gw_ip = $db->get_prop("geneweb", "only", $q->param("geneweb_only") || ''); |
348 |
- if ($gw_ip) |
349 |
- { |
350 |
- if (Net::IPv4Addr::ipv4_in_network($spec, $gw_ip)) |
351 |
- { |
352 |
- return 'OK'; |
353 |
- } |
354 |
- } |
355 |
+ if (Net::IPv4Addr::ipv4_in_network($spec, $gw_ip)) |
356 |
+ { |
357 |
+ return 'OK'; |
358 |
+ } |
359 |
} |
360 |
# Not OK. The IP is not on any of our local networks. |
361 |
return 'ERR_IP_NOT_LOCAL'; |
362 |
} |
363 |
|
364 |
+ |
365 |
+=head2 valid_base_directory |
366 |
+ |
367 |
+subroutine to validate base directory. |
368 |
+=cut |
369 |
+ |
370 |
+sub must_exist |
371 |
+{ |
372 |
+ my $self = shift; |
373 |
+ my $q = $self->{cgi}; |
374 |
+ my $gw_dbdir = $q->param("geneweb_dbdir") || ''; |
375 |
+ if ($gw_dbdir) { |
376 |
+ if (! -d "$gw_dbdir") { return 'ERR_DIR_NOT_EXIST' } |
377 |
+ # system("su geneweb -c 'touch $gw_dbdir/toto'") == 0 |
378 |
+ # or return 'DIR_NOT_WRITEABLE'; |
379 |
+ # system("su geneweb -c 'rm -f $gw_dbdir/toto'") |
380 |
+ # return 'DIR_EXIST_AND_WRITEABLE'; |
381 |
+ } |
382 |
+ return 'OK'; |
383 |
+} |
384 |
+ |
385 |
1; |