[Slim-Checkins] r10602 - in /trunk/server: HTML/EN/setupsecurity.html Slim/Web/HTTP.pm Slim/Web/Pages.pm Slim/Web/Setup.pm

kdf at svn.slimdevices.com kdf at svn.slimdevices.com
Mon Nov 6 00:52:48 PST 2006


Author: kdf
Date: Mon Nov  6 00:52:45 2006
New Revision: 10602

URL: http://svn.slimdevices.com?rev=10602&view=rev
Log:
Bug: 3267
Description: convert security settings to new handlers.  added commented out lines for the rest of the server setting pages, plus generic handlers.  Some will need some specific code for the complex form segments.


Added:
    trunk/server/HTML/EN/setupsecurity.html
Modified:
    trunk/server/Slim/Web/HTTP.pm
    trunk/server/Slim/Web/Pages.pm
    trunk/server/Slim/Web/Setup.pm

Added: trunk/server/HTML/EN/setupsecurity.html
URL: http://svn.slimdevices.com/trunk/server/HTML/EN/setupsecurity.html?rev=10602&view=auto
==============================================================================
--- trunk/server/HTML/EN/setupsecurity.html (added)
+++ trunk/server/HTML/EN/setupsecurity.html Mon Nov  6 00:52:45 2006
@@ -1,0 +1,87 @@
+[% FILTER null %]
+
+	[% pwd_list = BLOCK %]
+
+		<a href="setup.html?page=BASIC_SERVER_SETTINGS">[% "SERVER_SETTINGS" | string %]</a>
+
+		 / <a href="setupsecurity.html">[% page | string %]</a>
+
+	[% END %]
+
+	[% pageHeaderInfo = BLOCK %]
+		[%- PROCESS setting_chooser.html setting_chooser_noHome = 1 %]
+	[% END %]
+
+[% END %]
+
+[% pagetitle = page | string; pageicon = 'settings'; noSpacer = 1; PROCESS pageheader.html %] 
+
+<div class="statusarea">
+	[% IF warning %]
+		[% warning %]
+	[% END %]
+</div>
+
+<form method="post" action="setupsecurity.html">
+
+	<input type=hidden value="[% page %]" name="page">
+
+	<div class="settingSection">
+
+		<div class="prefHead">[% "SETUP_AUTHORIZE" | string | upper %]</div>
+		<div class="prefDesc">[% "SETUP_AUTHORIZE_DESC" | string %]</div>
+
+		<select class="stdedit" name="authorize" id="authorize">
+
+			<option [% IF NOT authorize %]selected [% END %]value="0">[% 'SETUP_NO_AUTHORIZE' | getstring %]</option>
+			<option [% IF authorize %]selected [% END %]value="1">[% 'SETUP_AUTHORIZE' | getstring %]</option>
+		
+		</select>
+
+		<div class="prefHead">[% "SETUP_USERNAME" | string | upper %]</div>
+
+		<input type="text" class="stdedit" name="username" id="username" value="[% username %]" size="40">
+
+		<div class="prefHead">[% "SETUP_PASSWORD" | string | upper %]</div>
+
+		<input type="password" class="stdedit" name="password" id="password" value="[% password %]" size="40">
+	
+	</div>
+
+	<div class="settingSection">
+
+		<div class="prefHead">[% "SETUP_IPFILTER_HEAD" | string | upper %]</div>
+		<div class="prefDesc">[% "SETUP_IPFILTER_DESC" | string %]</div>
+
+		<select class="stdedit" name="filterHosts" id="filterHosts">
+
+			<option [% IF NOT filterHosts %]selected [% END %]value="0">[% 'SETUP_NO_IPFILTER' | getstring %]</option>
+			<option [% IF filterHosts %]selected [% END %]value="1">[% 'SETUP_IPFILTER' | getstring %]</option>
+		
+		</select>
+
+		<div class="prefHead">[% "SETUP_FILTERRULE_HEAD" | string | upper %]</div>
+		<div class="prefDesc">[% "SETUP_FILTERRULE_DESC" | string %]</div>
+
+		<input type="text" class="stdedit" name="allowedHosts" id="allowedHosts" value="[% allowedHosts %]" size="40">
+
+		<div class="prefHead">[% "SETUP_CSRFPROTECTIONLEVEL" | string | upper %]</div>
+		<div class="prefDesc">[% "SETUP_CSRFPROTECTIONLEVEL_DESC" | string %]</div>
+
+		<select class="stdedit" name="csrfProtectionLevel" id="csrfProtectionLevel">
+
+			<option [% IF csrfProtectionLevel == 0 %]selected [% END %]value="0">[% 'NONE' | getstring %]</option>
+			<option [% IF csrfProtectionLevel == 1 %]selected [% END %]value="1">[% 'MEDIUM' | getstring %]</option>
+			<option [% IF csrfProtectionLevel == 2 %]selected [% END %]value="2">[% 'HIGH' | getstring %]</option>
+		
+		</select>
+	
+	</div>
+
+	<p><input name="submit" type="submit" class="stdclick" value="[% "SAVE_SETTINGS" | string %]"></p>
+</form>
+
+<p></p>
+
+[% PROCESS pagefooter.html %]
+

Modified: trunk/server/Slim/Web/HTTP.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/HTTP.pm?rev=10602&r1=10601&r2=10602&view=diff
==============================================================================
--- trunk/server/Slim/Web/HTTP.pm (original)
+++ trunk/server/Slim/Web/HTTP.pm Mon Nov  6 00:52:45 2006
@@ -106,7 +106,7 @@
 	\&Slim::Web::Setup::handleBehaviorSettings    => '.',
 #	\&Slim::Web::Setup::handleFormattingSettings   => '.',
 #	\&Slim::Web::Setup::handleNetworkingSettings   => '.',
-#	\&Slim::Web::Setup::handleSecuritySettings     => '.',
+	\&Slim::Web::Setup::handleSecuritySettings     => '.',
 #	\&Slim::Web::Setup::handleInterfaceSettings    => '.',
 #	\&Slim::Web::Setup::handleBasicServerSettings  => '.',
 	\&Slim::Web::EditPlaylist::editplaylist       => '.',

Modified: trunk/server/Slim/Web/Pages.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Pages.pm?rev=10602&r1=10601&r2=10602&view=diff
==============================================================================
--- trunk/server/Slim/Web/Pages.pm (original)
+++ trunk/server/Slim/Web/Pages.pm Mon Nov  6 00:52:45 2006
@@ -46,6 +46,11 @@
 	Slim::Web::HTTP::addPageFunction(qr/^setupfiletypes\.(?:htm|xml)/, \&Slim::Web::Setup::handleFileTypeSettings);
 	Slim::Web::HTTP::addPageFunction(qr/^setupperformance\.(?:htm|xml)/, \&Slim::Web::Setup::handlePerformanceSettings);
 	Slim::Web::HTTP::addPageFunction(qr/^setupbehavior\.(?:htm|xml)/, \&Slim::Web::Setup::handleBehaviorSettings);
+	Slim::Web::HTTP::addPageFunction(qr/^setupsecurity\.(?:htm|xml)/, \&Slim::Web::Setup::handleSecuritySettings);
+	#Slim::Web::HTTP::addPageFunction(qr/^setupnetworking\.(?:htm|xml)/, \&Slim::Web::Setup::handleNetworkingSettings);
+	#Slim::Web::HTTP::addPageFunction(qr/^setupformatting\.(?:htm|xml)/, \&Slim::Web::Setup::handleFormattingSettings);
+	#Slim::Web::HTTP::addPageFunction(qr/^setupinterface\.(?:htm|xml)/, \&Slim::Web::Setup::handleInterfaceSettings);
+	#Slim::Web::HTTP::addPageFunction(qr/^setupserverbasic\.(?:htm|xml)/, \&Slim::Web::Setup::handleBasicServerSettings);
 
 	# pull in the memory usage module if requested.
 	if (logger('server.memory')->is_info) {

Modified: trunk/server/Slim/Web/Setup.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Web/Setup.pm?rev=10602&r1=10601&r2=10602&view=diff
==============================================================================
--- trunk/server/Slim/Web/Setup.pm (original)
+++ trunk/server/Slim/Web/Setup.pm Mon Nov  6 00:52:45 2006
@@ -1710,70 +1710,8 @@
 					}
 			}
 		} #end of setup{'FORMATTING_SETTINGS'} hash
-	,'SECURITY_SETTINGS' => {
-		'title' => string('SECURITY_SETTINGS')
-		,'parent' => 'BASIC_SERVER_SETTINGS'
-		,'GroupOrder' => ['BasicAuth','Default']
-		,'Groups' => {
-			'Default' => {
-					'PrefOrder' => ['filterHosts', 'allowedHosts','csrfProtectionLevel']
-				}
-			,'BasicAuth' => {
-					'PrefOrder' => ['authorize','username','password']
-					,'Suppress_PrefSub' => 1
-					,'GroupSub' => 1
-					,'GroupLine' => 1
-					,'Suppress_PrefLine' => 1
-				}
-			}
-		,'Prefs' => {
-			'authorize' => {
-						'validate' => \&Slim::Utils::Validate::trueFalse
-						,'options' => {
-								'0' => 'SETUP_NO_AUTHORIZE',
-								'1' => 'SETUP_AUTHORIZE',
-								}
-					}
-			,'username' => {
-						'validate' => \&Slim::Utils::Validate::acceptAll
-						,'PrefSize' => 'large'
-					}
-			,'password' => {
-						'validate' => \&Slim::Utils::Validate::password
-						,'inputTemplate' => 'setup_input_passwd.html'
-						,'changeMsg' => 'SETUP_PASSWORD_CHANGED'
-						,'PrefSize' => 'large'
-					}
-			,'filterHosts' => {
-						
-						'validate' => \&Slim::Utils::Validate::trueFalse
-						,'PrefHead' => 'SETUP_IPFILTER_HEAD'
-						,'PrefDesc' => 'SETUP_IPFILTER_DESC'
-						,'options' => {
-								'0' => 'SETUP_NO_IPFILTER',
-								'1' => 'SETUP_IPFILTER',
-							}
-					}
-			,'csrfProtectionLevel' => {
-							'validate' => \&Slim::Utils::Validate::isInt
-							,'validateArgs' => [0,2,1,1]
-							,'optionSort' => 'V'
-							,'options' => {
-									'0' => 'NONE',
-									'1' => 'MEDIUM',
-									'2' => 'HIGH',
-
-								}
-						}
-			,'allowedHosts' => {
-						'validate' => \&Slim::Utils::Validate::allowedHosts
-						,'PrefHead' => 'SETUP_FILTERRULE_HEAD'
-						,'PrefDesc' => 'SETUP_FILTERRULE_DESC'
-						,'PrefSize' => 'large'
-					}
-
-			}
-		} #end of setup{'security'} hash
+	,'SECURITY_SETTINGS' => { } #end of setup{'security'} hash
+
 	,'PERFORMANCE_SETTINGS' => { } #end of setup{'performance'} hash
 	
 	,'NETWORK_SETTINGS' => {
@@ -2060,29 +1998,199 @@
 	return Slim::Web::HTTP::filltemplatefile('setupperformance.html', $paramRef);
 }
 
+sub handleBasicServerSettings {
+	my ($client, $paramRef, $pageSetup) = @_;
+
+	my @prefs = qw(
+					language
+					audiodir
+					playlistdir
+					rescantype
+					rescan
+				);
+				#itunes?
+				#musicmagic?
+				#moodlogic?
+
+	# If this is a settings update
+	if ($paramRef->{'submit'}) {
+
+		for my $pref (@prefs) {
+
+			Slim::Utils::Prefs::set($pref,    $paramRef->{$pref});
+		}
+	}
+
+	$paramRef->{'page'}       = 'BASIC_SERVER_SETTINGS';
+
+	# Needed to generate the drop down settings chooser list.
+	$paramRef->{'additionalLinks'} = \%Slim::Web::Pages::additionalLinks;
+
+	for my $pref (@prefs) {
+		$paramRef->{$pref} = Slim::Utils::Prefs::get($pref);
+	}
+	
+	return Slim::Web::HTTP::filltemplatefile('setupserverbasic.html', $paramRef);
+}
+
+sub handleNetworkingSettings {
+	my ($client, $paramRef, $pageSetup) = @_;
+
+	my @prefs = qw(
+					webproxy
+					httpport
+					bufferSecs
+					remotestreamtimeout
+					maxWMArate
+					tcpReadMaximum
+					tcpWriteMaximum
+					udpChunkSize
+				);
+
+	# If this is a settings update
+	if ($paramRef->{'submit'}) {
+
+		for my $pref (@prefs) {
+
+			Slim::Utils::Prefs::set($pref,    $paramRef->{$pref});
+		}
+	}
+
+	$paramRef->{'page'}       = 'NETWORK_SETTINGS';
+
+	# Needed to generate the drop down settings chooser list.
+	$paramRef->{'additionalLinks'} = \%Slim::Web::Pages::additionalLinks;
+
+	for my $pref (@prefs) {
+		$paramRef->{$pref} = Slim::Utils::Prefs::get($pref);
+	}
+	
+	return Slim::Web::HTTP::filltemplatefile('setupnetworking.html', $paramRef);
+}
+
+sub handleSecuritySettings {
+	my ($client, $paramRef, $pageSetup) = @_;
+
+	my @prefs = qw(
+					filterHosts
+					allowedHosts
+					csrfProtectionLevel
+					authorize
+					username
+					password
+				);
+
+	# If this is a settings update
+	if ($paramRef->{'submit'}) {
+
+		for my $pref (@prefs) {
+
+			Slim::Utils::Prefs::set($pref,    $paramRef->{$pref});
+		}
+	}
+
+	$paramRef->{'page'}       = 'SECURITY_SETTINGS';
+
+	# Needed to generate the drop down settings chooser list.
+	$paramRef->{'additionalLinks'} = \%Slim::Web::Pages::additionalLinks;
+
+	for my $pref (@prefs) {
+		$paramRef->{$pref} = Slim::Utils::Prefs::get($pref);
+	}
+	
+	return Slim::Web::HTTP::filltemplatefile('setupsecurity.html', $paramRef);
+}
+
+sub handleFormattingSettings {
+	my ($client, $paramRef, $pageSetup) = @_;
+
+	my @prefs = qw(
+					guessFileFormats
+					titleFormat
+					longdateFormat
+					shortdateFormat
+					timeFormat
+					showArtist
+					showYear
+				);
+
+	# If this is a settings update
+	if ($paramRef->{'submit'}) {
+
+		for my $pref (@prefs) {
+
+			Slim::Utils::Prefs::set($pref,    $paramRef->{$pref});
+		}
+	}
+
+	$paramRef->{'page'}       = 'FORMATTING_SETTINGS';
+
+	# Needed to generate the drop down settings chooser list.
+	$paramRef->{'additionalLinks'} = \%Slim::Web::Pages::additionalLinks;
+
+	for my $pref (@prefs) {
+		$paramRef->{$pref} = Slim::Utils::Prefs::get($pref);
+	}
+	
+	return Slim::Web::HTTP::filltemplatefile('setupformatting.html', $paramRef);
+}
+
+sub handleInterfaceSettings {
+	my ($client, $paramRef, $pageSetup) = @_;
+
+	my @prefs = qw(
+					skin
+					itemsPerPage
+					refreshRate
+					coverArt
+					artfolder
+					thumbSize
+				);
+
+	# If this is a settings update
+	if ($paramRef->{'submit'}) {
+
+		for my $pref (@prefs) {
+
+			Slim::Utils::Prefs::set($pref,    $paramRef->{$pref});
+		}
+	}
+
+	$paramRef->{'page'}       = 'INTERFACE_SETTINGS';
+
+	# Needed to generate the drop down settings chooser list.
+	$paramRef->{'additionalLinks'} = \%Slim::Web::Pages::additionalLinks;
+
+	for my $pref (@prefs) {
+		$paramRef->{$pref} = Slim::Utils::Prefs::get($pref);
+	}
+	
+	return Slim::Web::HTTP::filltemplatefile('setupinterface.html', $paramRef);
+}
+
 sub handleBehaviorSettings {
 	my ($client, $paramRef, $pageSetup) = @_;
 
 	my @prefs = qw(
-				displaytexttimeout
-				checkVersion
-				noGenreFilter
-				playtrackalbum
-				searchSubString
-				ignoredarticles
-				splitList
-				browseagelimit
-				groupdiscs
-				persistPlaylists
-				reshuffleOnRepeat
-				saveShuffled
-				composerInArtists
-				conductorInArtists
-				bandInArtists
-				variousArtistAutoIdentification
-				useBandAsAlbumArtist
-				variousArtistsString
-			);
+					displaytexttimeout
+					checkVersion
+					noGenreFilter
+					playtrackalbum
+					searchSubString
+					ignoredarticles
+					splitList
+					browseagelimit
+					groupdiscs
+					persistPlaylists
+					reshuffleOnRepeat
+					saveShuffled
+					composerInArtists
+					conductorInArtists
+					bandInArtists
+					variousArtistAutoIdentification
+					useBandAsAlbumArtist
+					variousArtistsString
+				);
 
 	my %scanOn = map {$_ => 1} qw(splitList ignoredarticles groupDiscs);
 
@@ -2116,7 +2224,6 @@
 	
 	return Slim::Web::HTTP::filltemplatefile('setupbehavior.html', $paramRef);
 }
-
 
 sub getSetupOptions {
 	my ($category, $pref) = @_;
@@ -2689,19 +2796,39 @@
 			# global setup pages, need to do this at startup too
 			if ($page eq "DEBUGGING_SETTINGS") {
 
-				Slim::Web::Pages->addPageLinks('setup', { 'DEBUGGING_SETTINGS' => 'debugging.html' });
+				Slim::Web::Pages->addPageLinks('setup', { $page => 'debugging.html' });
 
 			} elsif ($page eq "FORMATS_SETTINGS") {
 
-				Slim::Web::Pages->addPageLinks('setup', { 'FORMATS_SETTINGS' => 'setupfiletypes.html' });
+				Slim::Web::Pages->addPageLinks('setup', { $page => 'setupfiletypes.html' });
 
 			} elsif ($page eq "PERFORMANCE_SETTINGS") {
 
-				Slim::Web::Pages->addPageLinks('setup', { 'PERFORMANCE_SETTINGS' => 'setupperformance.html' });
+				Slim::Web::Pages->addPageLinks('setup', { $page => 'setupperformance.html' });
 
 			} elsif ($page eq "BEHAVIOR_SETTINGS") {
 
-				Slim::Web::Pages->addPageLinks('setup', { 'BEHAVIOR_SETTINGS' => 'setupbehavior.html' });
+				Slim::Web::Pages->addPageLinks('setup', { $page => 'setupbehavior.html' });
+
+			} elsif ($page eq "SECURITY_SETTINGS") {
+
+				Slim::Web::Pages->addPageLinks('setup', { $page => 'setupsecurity.html' });
+
+#			} elsif ($page eq "NETWORK_SETTINGS") {
+
+#				Slim::Web::Pages->addPageLinks('setup', { $page => 'setupnetworking.html' });
+
+#			} elsif ($page eq "FORMATTING_SETTINGS") {
+
+#				Slim::Web::Pages->addPageLinks('setup', { $page => 'setupformatting.html' });
+
+#			} elsif ($page eq "INTERFACE_SETTINGS") {
+
+#				Slim::Web::Pages->addPageLinks('setup', { $page => 'setupinterface.html' });
+
+#			} elsif ($page eq "BASIC_SERVER_SETTINGS") {
+
+#				Slim::Web::Pages->addPageLinks('setup', { $page => 'setupbasicserver.html' });
 
 			} else {
 



More information about the checkins mailing list