Handle hostnames with upper-case letters
[webmin.git] / jabber / save_messages.cgi
1 #!/usr/local/bin/perl
2 # save_messages.cgi
3 # Save welcome and other messages
4
5 require './jabber-lib.pl';
6 &ReadParse();
7 &error_setup($text{'messages_err'});
8
9 $conf = &get_jabber_config();
10 $session = &find_by_tag("service", "id", "sessions", $conf);
11 $jsm = &find("jsm", $session);
12 $welcome = &find("welcome", $jsm);
13 $register = &find("register", $jsm);
14 $vcard = &find("vcard", $jsm);
15
16 # Validate and store inputs
17 &save_directive($welcome, "subject",
18                 [ [ "subject", [ { }, 0, $in{'wsubject'} ] ] ] );
19 &save_directive($welcome, "body",
20                 [ [ "body", [ { }, 0, $in{'wbody'} ] ] ] );
21 eval {
22         $xml = new XML::Parser('Style' => 'Tree');
23         $in{'vcard'} =~ s/\r//g;
24         $vcxml = $xml->parse($in{'vcard'});
25         };
26 $register->[1]->[0]->{'notify'} = $in{'rnotify'} ? 'yes' : 'no';
27 &save_directive($register, "instructions",
28                 [ [ "instructions", [ { }, 0, $in{'rinstr'} ] ] ] );
29 foreach $f (@register_fields) {
30         if ($in{"rfield_$f"}) {
31                 &save_directive($register, $f, [ [ $f, [ { } ] ] ] );
32                 }
33         else {
34                 &save_directive($register, $f);
35                 }
36         }
37 &error(&text('messages_evcard', $@)) if ($@);
38 &error($text{'messages_etag'}) if (lc($vcxml->[0]) ne 'vcard');
39 &save_directive($jsm, [ $vcard ], [ $vcxml ]);
40 &save_directive($jsm, "vcard2jud",
41                 $in{'vcard2jud'} ? [ [ 'vcard2jud', [ { } ] ] ] : [ ] );
42
43 &save_jabber_config($conf);
44 &redirect("");
45