178 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			178 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | #!/usr/bin/perl -wT | ||
|  | 
 | ||
|  | # vim: ft=xml ts=8 sw=4 noet: | ||
|  | #---------------------------------------------------------------------- | ||
|  | # heading     : Security | ||
|  | # description : Remote access | ||
|  | # navigation  : 5000 5200 | ||
|  | #---------------------------------------------------------------------- | ||
|  | #---------------------------------------------------------------------- | ||
|  | # copyright (C) 2002 Mitel Networks Corporation | ||
|  | #  | ||
|  | # This program is free software; you can redistribute it and/or modify | ||
|  | # it under the terms of the GNU General Public License as published by | ||
|  | # the Free Software Foundation; either version 2 of the License, or | ||
|  | # (at your option) any later version. | ||
|  | # 		 | ||
|  | # This program is distributed in the hope that it will be useful, | ||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||
|  | # GNU General Public License for more details. | ||
|  | # 		 | ||
|  | # You should have received a copy of the GNU General Public License | ||
|  | # along with this program; if not, write to the Free Software | ||
|  | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA | ||
|  | #---------------------------------------------------------------------- | ||
|  | 
 | ||
|  | use strict; | ||
|  | use esmith::FormMagick::Panel::remoteaccess; | ||
|  | my $f = esmith::FormMagick::Panel::remoteaccess->new(); | ||
|  | $f->display(); | ||
|  | 
 | ||
|  | =head1 TESTING | ||
|  | 
 | ||
|  | 
 | ||
|  | =begin testing | ||
|  | 
 | ||
|  | use esmith::FormMagick::Tester; | ||
|  | use esmith::TestUtils; | ||
|  | use esmith::ConfigDB; | ||
|  | my $panel = 'remoteaccess'; | ||
|  | my $panel_path = "/etc/e-smith/web/functions/".$panel; | ||
|  | my $ua = esmith::FormMagick::Tester->new(); | ||
|  | 
 | ||
|  | is  (mode($panel_path), '4750',              "Check permissions on script"); | ||
|  | ok  ($ua->get_panel($panel),            "ABOUT TO RUN L10N TESTS"); | ||
|  | is  ($ua->{status}, 200,                "200 OK"); | ||
|  | like($ua->{content}, qr/FORM_TITLE/,    "Saw untranslated form title"); | ||
|  | ok  ($ua->set_language("en-us"),        "Set language to U.S. English"); | ||
|  | ok  ($ua->get_panel($panel),            "Get panel"); | ||
|  | 
 | ||
|  | is  ($ua->{status}, 200,                "200 OK"); | ||
|  | 
 | ||
|  | like($ua->{content}, qr/remote access settings/, "Saw translated form title"); | ||
|  | 
 | ||
|  | # Testing changes | ||
|  | 
 | ||
|  | ok  ($ua->get_panel($panel),            "Testing panel retrieval"); | ||
|  | can_ok($ua, "field"); | ||
|  | ok ($ua->{form}->find_input('FTPAccess'), 'Finding the FTPAccess field'); | ||
|  | ok ($ua->{form}->find_input('sshAccess'), 'Finding the sshAccess field'); | ||
|  | ok ($ua->{form}->find_input('sshPermitRootLogin'), 'Finding the sshPermitRootLogin field'); | ||
|  | ok ($ua->{form}->find_input('sshTCPPort'), 'Finding the sshTCPPort field'); | ||
|  | ok ($ua->{form}->find_input('vpnSessions'), 'Finding the vpnSessions field'); | ||
|  | ok ($ua->{form}->find_input('sshPasswordAuthentication'), 'Finding the sshPasswordAuthentication field'); | ||
|  | ok ($ua->{form}->find_input('FTPLimits'), 'Finding the FTPLimits field'); | ||
|  | ok ($ua->{form}->find_input('TelnetAccess'), 'Finding the TelnetAccess field'); | ||
|  | 
 | ||
|  | if (destruction_ok()) { | ||
|  |     $ua->field('FTPAccess' => 'private'); | ||
|  |     $ua->field('sshAccess' => 'public'); | ||
|  |     $ua->field('sshPermitRootLogin' => 'yes'); | ||
|  |     $ua->field('sshTCPPort' => '22'); | ||
|  |     $ua->field('vpnSessions' => '10'); | ||
|  |     $ua->field('sshPasswordAuthentication' => 'yes'); | ||
|  |     $ua->field('FTPLimits' => 'normal'); | ||
|  |     $ua->field('TelnetAccess' => 'private'); | ||
|  | } | ||
|  | 
 | ||
|  | ok  ($ua->click("Save"),                "Click Save"); | ||
|  | is  ($ua->{status}, 200,                "200 OK"); | ||
|  | 
 | ||
|  | like($ua->{content}, qr/settings have been saved/, "Saw validation messages"); | ||
|  | 
 | ||
|  | # Gotta open this later, so we don't cache stale data | ||
|  | my $db = esmith::ConfigDB->open; | ||
|  | 
 | ||
|  | SKIP:  | ||
|  | { | ||
|  |     skip 9, "Unsafe!" unless destruction_ok(); | ||
|  | 
 | ||
|  |     is($db->get('sshd')->prop('access'), 'public', "We have public ssh"); | ||
|  |     is($db->get('sshd')->prop('PasswordAuthentication'), 'yes', "We have password auth"); | ||
|  |     is($db->get('sshd')->prop('PermitRootLogin'), 'yes', "We have root login"); | ||
|  |     is($db->get('sshd')->prop('TCPPort'), '22', "Got the right tcp port for ssh');     | ||
|  |     is($db->get('sshd')->prop('status'), 'enabled', "ssh is enabled"); | ||
|  |      | ||
|  |     is ($db->get('ftp')->prop('access'), 'private', "ftp access is private"); | ||
|  |     is ($db->get('ftp')->prop('accessLimits'), 'normal', "ftp access limits are normal"); | ||
|  |     is ($db->get('vpn')->prop('sessions') ,'10', "Got the right session count for vpn"); | ||
|  |     is ($db->get('vpn')->prop('status') ,'enabled', "vpn is enabled"); | ||
|  |     is ($db->get('telnet')->prop('access'), 'private', "Private telnet turned on"); | ||
|  | } | ||
|  | 
 | ||
|  | =end testing | ||
|  | 
 | ||
|  | =cut | ||
|  | 
 | ||
|  | __DATA__ | ||
|  | <form title="FORM_TITLE" header="/etc/e-smith/web/common/head.tmpl" | ||
|  |     footer="/etc/e-smith/web/common/foot.tmpl"> | ||
|  |     <page name="First"  post-event="change_settings()" | ||
|  | 	pre-event="print_status_message()"> | ||
|  | 
 | ||
|  |        <field type="text" id="vpnSessions" size="3" validation="zero_or_positive(), vpn_and_dhcp_range()" | ||
|  |            value="get_vpn_sessions()"> | ||
|  |            <label>LABEL_PPTP</label> | ||
|  |            <description>DESC_VPN</description> | ||
|  |        </field> | ||
|  | 
 | ||
|  |         <subroutine src="show_ipsecrw_section()"/> | ||
|  | 
 | ||
|  |         <subroutine src="show_valid_from_list()"/> | ||
|  |         <field type="text" id="validFromNetwork" size="15"  | ||
|  | 	    value="" validation="ip_number_or_blank"> | ||
|  | 	    <description>DESC_VALID_FROM_ENTRIES</description> | ||
|  | 	    <label>NETWORK</label> | ||
|  | 	</field> | ||
|  | 	<field type="text" id="validFromMask" size="15"  | ||
|  | 	    value="" validation="subnet_mask_or_blank, validate_network_and_mask"> | ||
|  | 	    <label>SUBNET_MASK</label> | ||
|  | 	</field> | ||
|  |          | ||
|  |         <field type="select"  | ||
|  |             id="sshAccess"  | ||
|  |             options=" 'off' => 'NO_ACCESS', 'private' => 'NETWORKS_ALLOW_LOCAL', 'public' => 'NETWORKS_ALLOW_PUBLIC'" | ||
|  |             value="get_ssh_access()"> | ||
|  |             <label>LABEL_SSH</label> | ||
|  |             <description>DESC_SSH</description> | ||
|  |         </field> | ||
|  |         <field type="select"  | ||
|  |             id="sshPermitRootLogin"  | ||
|  |             options=" 'no'=>'NO', 'yes'=>'YES'" | ||
|  |             value="get_ssh_permit_root_login()"> | ||
|  |             <label>LABEL_SSH_ADMIN</label> | ||
|  |         </field> | ||
|  |         <field type="select"  | ||
|  |             id="sshPasswordAuthentication"  | ||
|  |             options=" 'no'=>'NO', 'yes'=>'YES'" | ||
|  |             value="get_ssh_password_auth()"> | ||
|  |             <label>LABEL_SSH_PASSWORD_ACCESS</label> | ||
|  |         </field> | ||
|  |         <field type="text" id="sshTCPPort" size="5" | ||
|  |             validation="zero_or_positive" | ||
|  |             value="get_ssh_port()"> | ||
|  |             <label>LABEL_SSH_PORT</label> | ||
|  |         </field> | ||
|  | 
 | ||
|  |         <subroutine src="show_ftp_section()"/> | ||
|  | 
 | ||
|  | 	<subroutine src="show_telnet_section()"/> | ||
|  | 
 | ||
|  |         <!-- field type="select"  | ||
|  |             id="serialConsole"  | ||
|  |             options="     | ||
|  |             'disabled' => 'DISABLED' , | ||
|  |             'ttyS0' => 'PORT1_ENABLED' , | ||
|  |             'ttyS1' => 'PORT2_ENABLED' | ||
|  |             " | ||
|  |             value="get_serial_console()"> | ||
|  | 
 | ||
|  |             <label>LABEL_SERIAL_CONSOLE_ACCESS</label> | ||
|  |             <description>DESC_SERIAL_CONSOLE_ACCESS</description> | ||
|  |         </field --> | ||
|  | 
 | ||
|  | 	<subroutine src="print_button('SAVE')" /> | ||
|  |     </page> | ||
|  | </form> |