#!/usr/bin/perl # index.cgi # Display the user's current language, theme and password use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './change-user-lib.pl'; our (%text, %access, $base_remote_user, $default_lang, %gconfig); &ui_print_header(undef, $text{'index_title'}, "", undef, 0, 1); my @users = &acl::list_users(); my ($user) = grep { $_->{'name'} eq $base_remote_user } @users; my $locale_auto = &parse_accepted_language(); my @can; push(@can, 'lang') if ($access{'lang'}); push(@can, 'theme') if ($access{'theme'}); push(@can, 'pass') if ($access{'pass'} && &can_change_pass($user)); my $can = &text('index_d'.scalar(@can), map { $text{'index_d'.$_} } @can); print &text('index_desc2', $can),"<p>\n"; print &ui_form_start("change.cgi", "post"); print &ui_table_start(undef, undef, 2); if ($access{'lang'}) { # Show personal language my $glang = $locale_auto || safe_language($gconfig{"lang"}) || $default_lang; my $ulang = safe_language($user->{'lang'}); my @langs = &list_languages(); my ($linfo) = grep { $_->{'lang'} eq $glang } @langs; my ($ulinfo); if ($ulang) { ($ulinfo) = grep { $_->{'lang'} eq $ulang } @langs; } my $ulangused = ($ulang && $ulang ne $glang); my $ulangauto = $user->{'langauto'}; if (!defined($user->{'langauto'})) { if ($ulangused) { $ulangauto = $ulinfo->{'auto'}; } else { $ulangauto = defined($gconfig{"langauto"}) ? $gconfig{"langauto"} : $linfo->{'auto'}; } } print &ui_table_row($text{'index_lang'}, &ui_radio("lang_def", $ulang ? 0 : 1, [ [ 1, &text('index_langglobal2', $linfo->{'desc'}, $linfo->{'lang'})."<br>" ], [ 0, $text{'index_langset'} ] ])." ". &ui_select("lang", $ulang, [ map { [ $_->{'lang'}, $_->{'desc'} ] } &list_languages() ]) ." ". &ui_checkbox("langauto", 1, $text{'langauto_include'}, $ulangauto), undef, [ "valign=top","valign=top" ]); } # Old datetime format or a new locale if ($access{'locale'}) { eval "use DateTime; use DateTime::Locale; use DateTime::TimeZone;"; &foreign_require('webmin'); if (!$@) { my $locales = &list_locales(); my %localesrev = reverse %{$locales}; my $locale = $locale_auto || $gconfig{'locale'} || &get_default_system_locale(); print &ui_table_row($text{'index_locale'}, &ui_radio("locale_def", defined($user->{'locale'}) ? 0 : 1, [ [ 1, &text('index_localeglobal2', $locales->{$locale}, $locale)."<br>" ], [ 0, $text{'index_localeset'} ] ])." ". &ui_select("locale", $user->{'locale'}, [ map { [ $localesrev{$_}, $_ ] } sort values %{$locales} ] ), undef, [ "valign=top","valign=top" ]); } else { my %wtext = &load_language('webmin'); print &ui_table_row($text{'index_locale2'}, &ui_radio("dateformat_def", defined($user->{'dateformat'}) ? 0 : 1, [ [ 1, &text('index_dateformatglobal2', $gconfig{'dateformat'} || "dd/mon/yyyy")."<br>" ], [ 0, $text{'index_dateformatset'} ] ])." ". &ui_select("dateformat", $user->{'dateformat'} || "dd/mon/yyyy", [ map { [ $_, $wtext{'lang_dateformat_'.$_} ] } @webmin::webmin_date_formats ] ), undef, [ "valign=top","valign=top" ]); } } if ($access{'theme'}) { # Show personal theme my $tname; if ($gconfig{'theme'}) { my ($gtheme, $goverlay) = split(/\s+/, $gconfig{'theme'}); my %tinfo = &webmin::get_theme_info($gtheme); $tname = $tinfo{'desc'}; } else { $tname = $text{'index_themedef'}; } my @all = &webmin::list_visible_themes($user->{'theme'}); my @themes = grep { !$_->{'overlay'} } @all; my @overlays = grep { $_->{'overlay'} } @all; # Main theme print &ui_table_row($text{'index_theme'}, &ui_radio("theme_def", defined($user->{'theme'}) ? 0 : 1, [ [ 1, &text('index_themeglobal', $tname)."<br>" ], [ 0, $text{'index_themeset'} ] ])." ". &ui_select("theme", $user->{'theme'}, [ !$user->{'theme'} ? [ '', $text{'index_themedef'} ] : (), map { [ $_->{'dir'}, $_->{'desc'} ] } @themes ]), undef, [ "valign=top","valign=top" ]); # Overlay, if any if (@overlays) { print &ui_table_row($text{'index_overlay'}, &ui_select("overlay", $user->{'overlay'}, [ [ '', $text{'index_overlaydef'} ], map { [ $_->{'dir'}, $_->{'desc'} ] } @overlays ]), undef, [ "valign=middle","valign=middle" ]); } } if ($access{'pass'} && &can_change_pass($user)) { # Show password print &ui_table_row($text{'index_pass'}, &ui_radio("pass_def", 1, [ [ 1, $text{'index_passleave'}."<br>" ], [ 0, $text{'index_passset'} ] ])." ". &ui_password("pass", undef, 20)." ". $text{'index_passagain'}." ". &ui_password("pass2", undef, 20), undef, [ "valign=top","valign=middle" ]); } print &ui_table_end(); print &ui_form_end([ [ undef, $text{'index_ok'} ] ]); &ui_print_footer("/", $text{'index'});
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 466 B | 0644 |
|
acl_security.pl | File | 803 B | 0755 |
|
change-user-lib.pl | File | 620 B | 0755 |
|
change.cgi | File | 3.2 KB | 0755 |
|
defaultacl | File | 31 B | 0644 |
|
index.cgi | File | 4.81 KB | 0755 |
|
module.info | File | 206 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 150 B | 0644 |
|
module.info.ar | File | 167 B | 0644 |
|
module.info.ar.auto | File | 19 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 197 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 250 B | 0644 |
|
module.info.ca | File | 140 B | 0644 |
|
module.info.ca.auto | File | 19 B | 0644 |
|
module.info.cs | File | 32 B | 0644 |
|
module.info.cs.auto | File | 120 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 148 B | 0644 |
|
module.info.de | File | 116 B | 0644 |
|
module.info.de.auto | File | 26 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 291 B | 0644 |
|
module.info.es | File | 32 B | 0644 |
|
module.info.es.auto | File | 124 B | 0644 |
|
module.info.eu | File | 39 B | 0644 |
|
module.info.eu.auto | File | 118 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 227 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 155 B | 0644 |
|
module.info.fr | File | 47 B | 0644 |
|
module.info.fr.auto | File | 150 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 209 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 148 B | 0644 |
|
module.info.hu | File | 98 B | 0644 |
|
module.info.hu.auto | File | 19 B | 0644 |
|
module.info.it | File | 35 B | 0644 |
|
module.info.it.auto | File | 121 B | 0644 |
|
module.info.ja | File | 200 B | 0644 |
|
module.info.ko | File | 33 B | 0644 |
|
module.info.ko.auto | File | 131 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 166 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 150 B | 0644 |
|
module.info.ms | File | 122 B | 0644 |
|
module.info.ms.auto | File | 19 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 177 B | 0644 |
|
module.info.nl | File | 35 B | 0644 |
|
module.info.nl.auto | File | 129 B | 0644 |
|
module.info.no | File | 29 B | 0644 |
|
module.info.no.auto | File | 109 B | 0644 |
|
module.info.pl | File | 144 B | 0644 |
|
module.info.pl.auto | File | 28 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 151 B | 0644 |
|
module.info.pt_BR | File | 32 B | 0644 |
|
module.info.pt_BR.auto | File | 127 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 164 B | 0644 |
|
module.info.ru | File | 44 B | 0644 |
|
module.info.ru.auto | File | 209 B | 0644 |
|
module.info.sk | File | 32 B | 0644 |
|
module.info.sk.auto | File | 124 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 143 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 167 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 280 B | 0644 |
|
module.info.tr | File | 31 B | 0644 |
|
module.info.tr.auto | File | 141 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 217 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 263 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 216 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 139 B | 0644 |
|
module.info.zh_TW | File | 39 B | 0644 |
|
module.info.zh_TW.auto | File | 115 B | 0644 |
|
safeacl | File | 31 B | 0644 |
|