1#!/usr/local/bin/perl
2# index.cgi
3# Display usermin configuration categories
4
5require './usermin-lib.pl';
6
7if (!-r "$config{'usermin_dir'}/miniserv.conf") {
8	&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
9	print "<p>",&text('index_econfig', "<tt>$config{'usermin_dir'}</tt>",
10			  "$gconfig{'webprefix'}/config.cgi?$module_name"),"<p>\n";
11	if ($config{'usermin_dir'} eq $standard_usermin_dir) {
12		local $mode;
13		if (&foreign_check("software")) {
14			local %sconfig = &foreign_config("software");
15			$mode = $sconfig{'package_system'} eq 'rpm' ? 'rpm' :
16				$sconfig{'package_system'} eq 'dpkg' ? 'deb' :
17								       undef;
18			}
19		print &ui_confirmation_form(
20			"upgrade.cgi",
21			$text{'index_install'},
22			[ [ "install", 1 ],
23			  [ "source", 2 ],
24			  [ "mode", $mode ] ],
25			[ [ undef, $mode ? $text{'index_'.$mode}
26					 : $text{'index_tgz'} ] ],
27			);
28		}
29	&ui_print_footer("/", $text{'index'});
30	exit;
31	}
32elsif (&same_file($config{'usermin_dir'}, $config_directory)) {
33	&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
34
35	print &text('index_esame', "<tt>$config{'usermin_dir'}</tt>",
36		    "$gconfig{'webprefix'}/config.cgi?$module_name"),"<p>\n";
37
38	&ui_print_footer("/", $text{'index'});
39	exit;
40	}
41&get_usermin_miniserv_config(\%miniserv);
42if (!$miniserv{'root'} && !-d $miniserv{'root'}) {
43	&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
44
45	print &text('index_eroot', "<tt>$config{'usermin_dir'}</tt>",
46		    "<tt>$miniserv{'root'}</tt>"),"<p>\n";
47
48	&ui_print_footer("/", $text{'index'});
49	exit;
50	}
51
52$ver = &get_usermin_version();
53&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1, 0,
54	&help_search_link("usermin", "google"), undef, undef,
55	&text('index_version', &get_usermin_version(1)));
56
57@links = ( "edit_access.cgi",
58	   "edit_bind.cgi",
59	   "edit_ui.cgi",
60	   "edit_mods.cgi",
61	   "edit_os.cgi",
62	   "edit_lang.cgi",
63	   "edit_upgrade.cgi",
64	   "edit_session.cgi",
65	   "edit_assignment.cgi",
66	   "edit_categories.cgi",
67	   "edit_descs.cgi",
68	   "edit_themes.cgi",
69	   "edit_referers.cgi",
70	   "edit_anon.cgi",
71	   "edit_ssl.cgi",
72	   "list_configs.cgi",
73	   "edit_acl.cgi",
74	   "list_restrict.cgi",
75	   "edit_users.cgi",
76	   "edit_defacl.cgi",
77	   "edit_logout.cgi",
78	   "edit_dav.cgi",
79	   $miniserv{'session'} ? ( "list_sessions.cgi", "edit_twofactor.cgi" ) : ( ),
80	   "edit_blocked.cgi",
81	   "edit_mobile.cgi",
82	   "edit_web.cgi",
83	   "edit_advanced.cgi" );
84@titles = map { /_(\S+).cgi/; $text{"${1}_title"} } @links;
85@icons = map { /_(\S+).cgi/; "images/$1.gif" } @links;
86for($i=0; $i<@links; $i++) {
87	$links[$i] =~ /_(\S+).cgi/;
88	$page = $1 eq "mods" ? "umods" : $1;
89	if (!$access{$page}) {
90		splice(@links, $i, 1);
91		splice(@titles, $i, 1);
92		splice(@icons, $i, 1);
93		}
94	}
95
96&icons_table(\@links, \@titles, \@icons);
97
98$init = &foreign_check("init") && $access{'bootup'};
99print &ui_hr();
100
101print &ui_buttons_start();
102
103if ($access{'stop'}) {
104	&get_usermin_miniserv_config(\%miniserv);
105	if (&check_pid_file($miniserv{'pidfile'})) {
106		print &ui_buttons_row("stop.cgi",
107			$text{'index_stop'}, $text{'index_stopmsg'});
108		}
109	else {
110		print &ui_buttons_row("start.cgi",
111			$text{'index_start'}, $text{'index_startmsg'});
112		}
113	}
114
115if ($init) {
116	&foreign_require("init");
117	$starting = &init::action_status("usermin");
118
119	print &ui_buttons_row("bootup.cgi",
120		$text{'index_boot'}, $text{'index_bootmsg'},
121		&ui_hidden("starting", $starting),
122		&ui_radio("boot", $starting == 2 ? 1 : 0,
123			  [ [ 1, $text{'yes'} ],
124			    [ 0, $text{'no'} ] ]));
125	}
126
127&get_usermin_miniserv_config(\%miniserv);
128if (&check_pid_file($miniserv{'pidfile'})) {
129	print &ui_buttons_row("restart.cgi",
130		$text{'index_restart'}, $text{'index_restartmsg'});
131	}
132
133print &ui_buttons_end();
134
135&ui_print_footer("/", $text{'index'});
136