forked from webmin/webmin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsave_admin.cgi
executable file
·50 lines (45 loc) · 1.16 KB
/
save_admin.cgi
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
#!/usr/local/bin/perl
# save_admin.cgi
# Save admin users and autoreply
require './jabber-lib.pl';
&ReadParse();
&error_setup($text{'admin_err'});
$conf = &get_jabber_config();
$session = &find_by_tag("service", "id", "sessions", $conf);
$jsm = &find("jsm", $session);
$admin = &find("admin", $jsm);
if (!$admin) {
$admin = [ "admin", [ { } ] ];
}
# Validate and save inputs
foreach $r (split(/\s+/, $in{'read'})) {
push(@read, [ 'read', [ { }, 0, $r ] ] );
}
&save_directive($admin, "read", \@read);
foreach $w (split(/\s+/, $in{'write'})) {
push(@write, [ 'write', [ { }, 0, $w ] ] );
}
&save_directive($admin, "write", \@write);
if ($in{'reply_def'}) {
&save_directive($admin, "reply");
}
else {
$reply = &find("reply", $admin);
if (!$reply) {
$reply = [ "reply", [ { } ] ];
&save_directive($admin, "reply", [ $reply ] );
}
&save_directive($reply, "subject",
[ [ 'subject', [ { }, 0, $in{'rsubject'} ] ] ]);
&save_directive($reply, "body",
[ [ 'body', [ { }, 0, $in{'rbody'} ] ] ]);
}
@am = @{$admin->[1]};
if (@am > 1) {
&save_directive($jsm, "admin", [ $admin ]);
}
else {
&save_directive($jsm, "admin");
}
&save_jabber_config($conf);
&redirect("");