-
-
Notifications
You must be signed in to change notification settings - Fork 163
/
settings-logos_save.cgi
executable file
·73 lines (61 loc) · 2.35 KB
/
settings-logos_save.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/local/bin/perl
#
# Authentic Theme (https://github.com/authentic-theme/authentic-theme)
# Copyright Ilia Rostovtsev <[email protected]>
# Licensed under MIT (https://github.com/authentic-theme/authentic-theme/blob/master/LICENSE)
#
use strict;
our (%in, $current_theme, $config_directory, $get_user_level, %theme_text, $has_usermin, $has_usermin_conf_dir);
do($ENV{'THEME_ROOT'} . "/authentic-lib.pl");
&webmin_user_is_admin() ||
&error($theme_text{'theme_error_access_not_root_user'});
theme_make_config_dir();
my $ls = "logo.png";
my $lr = "/$current_theme/$ls";
my $lsw = "logo_welcome.png";
my $lw = "/$current_theme/$lsw";
my $logo_auth = $in{'authenticated_logo'};
my $logo_unauth = $in{'unauthenticated_logo'};
my $data_logo_auth = $in{'authenticated_logo_file'};
my $data_logo_unauth = $in{'unauthenticated_logo_file'};
# Check if the uploaded file is an actual image
if (($logo_auth eq "1" || $logo_unauth eq "1") &&
has_command('file')) {
foreach my $img ($data_logo_auth, $data_logo_unauth) {
if ($img) {
my $img_tmp_file = &transname();
write_file_contents($img_tmp_file, $img);
my $out = backquote_command("file --brief --mime-type ".quotemeta($img_tmp_file), 1);
if ($out !~ /^image\//) {
&error($theme_text{'settings_right_logos_error'} . " : " . html_escape($out));
}
}
}
}
if ($logo_auth eq "1" && length $data_logo_auth) {
unlink_file($config_directory . $lr);
write_file_contents($config_directory . $lr, $data_logo_auth);
if ($has_usermin) {
unlink_file($has_usermin_conf_dir . $lr);
write_file_contents($has_usermin_conf_dir . $lr, $data_logo_auth);
}
} elsif ($logo_auth ne "1") {
unlink_file($config_directory . $lr);
if ($has_usermin) {
unlink_file($has_usermin_conf_dir . $lr);
}
}
if ($logo_unauth eq "1" && length $data_logo_unauth) {
unlink_file($config_directory . $lw);
write_file_contents($config_directory . $lw, $data_logo_unauth);
if ($has_usermin) {
unlink_file($has_usermin_conf_dir . $lw);
write_file_contents($has_usermin_conf_dir . $lw, $data_logo_unauth);
}
} elsif ($logo_unauth ne "1") {
unlink_file($config_directory . $lw);
if ($has_usermin) {
unlink_file($has_usermin_conf_dir . $lw);
}
}
redirect("settings-logos.cgi?saved=1");