Project

General

Profile

Download (10.4 KB) Statistics
| Branch: | Tag: | Revision:
1 0b2e3c64 Colin Smith
<?php
2
/* $Id$ */
3
/*
4 2094568a Colin Smith
	system_firmware_settings.php
5 1cecfbf7 Scott Ullrich
       	part of pfSense
6
		Copyright (C) 2008 Scott Ullrich <sullrich@gmail.com>
7 2094568a Colin Smith
        Copyright (C) 2005 Colin Smith
8 0b2e3c64 Colin Smith
9
	Redistribution and use in source and binary forms, with or without
10
	modification, are permitted provided that the following conditions are met:
11
12
	1. Redistributions of source code must retain the above copyright notice,
13
	   this list of conditions and the following disclaimer.
14
15
	2. Redistributions in binary form must reproduce the above copyright
16
	   notice, this list of conditions and the following disclaimer in the
17
	   documentation and/or other materials provided with the distribution.
18
19
	THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
20
	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
21
	AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
	AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
23
	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24
	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
	POSSIBILITY OF SUCH DAMAGE.
29
*/
30 1d333258 Scott Ullrich
/*
31
	pfSense_BUILDER_BINARIES:	/usr/bin/fetch
32
	pfSense_MODULE:	firmware
33
*/
34 0b2e3c64 Colin Smith
35 6b07c15a Matthew Grooms
##|+PRIV
36
##|*IDENT=page-system-firmware-settings
37
##|*NAME=System: Firmware: Settings page
38
##|*DESCR=Allow access to the 'System: Firmware: Settings' page.
39
##|*MATCH=system_firmware_settings.php*
40
##|-PRIV
41
42 0b2e3c64 Colin Smith
require("guiconfig.inc");
43
44
if ($_POST) {
45 9471afe1 Colin Smith
	if (!$input_errors) {
46
		if($_POST['alturlenable'] == "yes") {
47 da55e467 Scott Ullrich
			$config['system']['firmware']['alturl']['enable'] = true;
48 9471afe1 Colin Smith
			$config['system']['firmware']['alturl']['firmwareurl'] = $_POST['firmwareurl'];
49
		} else {
50
			unset($config['system']['firmware']['alturl']['enable']);
51 da55e467 Scott Ullrich
			unset($config['system']['firmware']['alturl']['firmwareurl']);
52 52629104 Scott Ullrich
			unset($config['system']['firmware']['alturl']);
53 7a058f06 jim-p
			unset($config['system']['firmware']);
54 9471afe1 Colin Smith
		}
55 a0116247 Ermal
		if($_POST['allowinvalidsig'] == "yes")
56 7a058f06 jim-p
			$config['system']['firmware']['allowinvalidsig'] = true;
57
		else
58
			unset($config['system']['firmware']['allowinvalidsig']);
59
60
		if($_POST['disablecheck'] == "yes")
61
			$config['system']['firmware']['disablecheck'] = true;
62
		else
63
			unset($config['system']['firmware']['disablecheck']);
64 a0116247 Ermal
65 f0ce6758 Erik Fonnesbeck
		if($_POST['synconupgrade'] == "yes")
66
			$config['system']['gitsync']['synconupgrade'] = true;
67
		else
68
			unset($config['system']['gitsync']['synconupgrade']);
69
		$config['system']['gitsync']['repositoryurl'] = $_POST['repositoryurl'];
70
		$config['system']['gitsync']['branch'] = $_POST['branch'];
71
72 9471afe1 Colin Smith
		write_config();
73
	}
74 0b2e3c64 Colin Smith
}
75
76
$curcfg = $config['system']['firmware'];
77 f0ce6758 Erik Fonnesbeck
$gitcfg = $config['system']['gitsync'];
78 0b2e3c64 Colin Smith
79 8395f51e Carlos Eduardo Ramos
$pgtitle = array(gettext("System"),gettext("Firmware"),gettext("Settings"));
80 52380979 Scott Ullrich
include("head.inc");
81
82 1d333258 Scott Ullrich
exec("/usr/bin/fetch -q -o /tmp/manifest \"{$g['update_manifest']}\"");
83 563f5b51 Scott Ullrich
if(file_exists("/tmp/manifest")) {
84 cfbfd941 smos
	$preset_urls_split = explode("\n", file_get_contents("/tmp/manifest"));
85 563f5b51 Scott Ullrich
}
86 52380979 Scott Ullrich
87 563f5b51 Scott Ullrich
?>
88 0b2e3c64 Colin Smith
<script language="JavaScript">
89
<!--
90
91
92 9471afe1 Colin Smith
function enable_altfirmwareurl(enable_over) {  	 
93
	if (document.iform.alturlenable.checked || enable_over) { 	 
94
		document.iform.firmwareurl.disabled = 0; 	 
95
	} else { 	 
96 53075520 Scott Ullrich
		document.iform.firmwareurl.disabled = 1;
97 5d5f69a2 Scott Ullrich
		document.iform.firmwareurl.value = '';
98 9471afe1 Colin Smith
	} 	 
99
}
100
101 0b2e3c64 Colin Smith
// -->
102
</script>
103
104
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
105 b30cacb2 Bill Marquette
<?php include("fbegin.inc");?>
106 9471afe1 Colin Smith
<?php if ($input_errors) print_input_errors($input_errors); ?>
107 fd3e7e5d Scott Ullrich
108 0b2e3c64 Colin Smith
<form action="system_firmware_settings.php" method="post" name="iform" id="iform">
109
            <?php if ($savemsg) print_info_box($savemsg); ?>
110 c03d45a2 Colin Smith
              <table width="100%" border="0" cellpadding="0" cellspacing="0">
111 0b2e3c64 Colin Smith
	<tr>
112
		<td>
113 4820d297 Scott Ullrich
<?php
114
	$tab_array = array();
115 3ff39566 Scott Ullrich
	$tab_array[] = array(gettext("Manual Update"), false, "system_firmware.php");
116
	$tab_array[] = array(gettext("Auto Update"), false, "system_firmware_check.php");
117
	$tab_array[] = array(gettext("Updater Settings"), true, "system_firmware_settings.php");
118
	if($g['hidedownloadbackup'] == false)
119
		$tab_array[] = array(gettext("Restore Full Backup"), false, "system_firmware_restorefullbackup.php");
120 4820d297 Scott Ullrich
	display_top_tabs($tab_array);
121
?>
122 0b2e3c64 Colin Smith
		</td>
123
	</tr>
124 e12d98ea Bill Marquette
	<tr><td><div id=mainarea>
125
	      <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0">
126 0b2e3c64 Colin Smith
	<tr>
127 8395f51e Carlos Eduardo Ramos
		<td colspan="2" valign="top" class="listtopic"><?=gettext("Firmware Branch"); ?></td>
128 0b2e3c64 Colin Smith
	</tr>
129 563f5b51 Scott Ullrich
<?php if(is_array($preset_urls_split)): ?>
130
	<tr>
131 8395f51e Carlos Eduardo Ramos
		<td valign="top" class="vncell"><?=gettext("Default Auto Update URLs"); ?></td>
132 563f5b51 Scott Ullrich
		<td class="vtable">
133 030e4b31 Vinicius Coque
			<select name='preseturls' id='preseturls' onChange="firmwareurl.value = preseturls.value; document.iform.firmwareurl.disabled = 0; alturlenable.checked=true; jQuery('#preseturls').parent().effect('highlight');">
134 563f5b51 Scott Ullrich
					<option></option>
135
				<?php 
136
					foreach($preset_urls_split as $pus) {
137 cfbfd941 smos
						$pus_text = explode("\t", $pus);
138 02f3e0bb jim-p
						if (empty($pus_text[0]))
139
							continue;
140
						if (stristr($pus_text[0], php_uname("m")) !== false) {
141
							$style = " style=\"font-weight: bold\"";
142
							$yourarch = " (Current architecture)";
143
						} else {
144
							$style = "";
145
							$yourarch = "";
146
						}
147
						echo "<option value='{$pus_text[1]}'{$style}>{$pus_text[0]}{$yourarch}</option>";
148 563f5b51 Scott Ullrich
					}
149
				?>
150
			</select>
151 02f3e0bb jim-p
		<br/><br/><?php echo sprintf(gettext("Entries denoted by \"Current architecture\" match the architecture of your current installation, such as %s. Changing architectures during an upgrade is not recommended, and may require a manual reboot after the update completes."), php_uname("m")); ?>
152 563f5b51 Scott Ullrich
		</td>
153
	</tr>
154
<?php endif; ?>
155 0b2e3c64 Colin Smith
	<tr>
156 8395f51e Carlos Eduardo Ramos
		<td valign="top" class="vncell"><?=gettext("Firmware Auto Update URL"); ?></td>
157 9471afe1 Colin Smith
		<td class="vtable">
158 22a11a58 Larry Gilbert
			<input name="alturlenable" type="checkbox" id="alturlenable" value="yes" onClick="enable_altfirmwareurl()" <?php if(isset($curcfg['alturl']['enable'])) echo "checked"; ?>> <?=gettext("Use a URL server for firmware upgrades other than") . " " . $g['product_website']; ?><br>
159 9471afe1 Colin Smith
			<table>
160 ea53e38f Renato Botelho
			<tr><td><?=gettext("Base URL:"); ?></td><td><input name="firmwareurl" type="input" class="formfld url" id="firmwareurl" size="64" value="<?php if($curcfg['alturl']['firmwareurl']) echo $curcfg['alturl']['firmwareurl']; else echo $g['']; ?>"></td></tr>
161 9471afe1 Colin Smith
			</table>
162 359f32dc Scott Ullrich
			<span class="vexpl">
163 259159e0 Renato Botelho
				<?=gettext("This is where"); ?> <?php echo $g['product_name'] ?> <?=gettext("will check for newer firmware versions when the"); ?> <a href="system_firmware_check.php"><?=gettext("System: Firmware: Auto Update"); ?></a> <?=gettext("page is viewed."); ?>
164 359f32dc Scott Ullrich
				<p/>
165 3b7f0f53 Erik Fonnesbeck
				<b><?=gettext("NOTE:"); ?></b> <?php printf(gettext("When a custom URL is enabled, the system will not verify the digital signature from %s."), $g['product_website']); ?>
166 359f32dc Scott Ullrich
				</span>
167
				</td>
168 9471afe1 Colin Smith
	</tr>
169 a0116247 Ermal
	<tr>
170
		<td colspan="2" class="list" height="12">&nbsp;</td>
171
	</tr>
172
	<tr>
173 8395f51e Carlos Eduardo Ramos
		<td colspan="2" valign="top" class="listtopic"><?=gettext("Updates"); ?></td>
174 a0116247 Ermal
	</tr>
175
	<tr>
176 3395ba20 jim-p
		<td width="22%" valign="top" class="vncell"><?=gettext("Unsigned images"); ?></td>
177 a0116247 Ermal
		<td width="78%" class="vtable">
178
			<input name="allowinvalidsig" type="checkbox" id="allowinvalidsig" value="yes" <?php if (isset($curcfg['allowinvalidsig'])) echo "checked"; ?> />
179
			<br />
180 3395ba20 jim-p
			<?=gettext("Allow auto-update firmware images with a missing or invalid digital signature to be used."); ?>
181 a0116247 Ermal
		</td>
182
	</tr>
183 7a058f06 jim-p
	<tr>
184
		<td width="22%" valign="top" class="vncell"><?=gettext("Dashboard check"); ?></td>
185
		<td width="78%" class="vtable">
186
			<input name="disablecheck" type="checkbox" id="disablecheck" value="yes" <?php if (isset($curcfg['disablecheck'])) echo "checked"; ?> />
187
			<br />
188
			<?=gettext("Disable the automatic dashboard auto-update check."); ?>
189
		</td>
190
	</tr>
191 2d539f40 Erik Fonnesbeck
<?php if(file_exists("/usr/local/bin/git") && $g['platform'] == "pfSense"): ?>
192 f0ce6758 Erik Fonnesbeck
	<tr>
193
		<td colspan="2" class="list" height="12">&nbsp;</td>
194
	</tr>
195
	<tr>
196
		<td colspan="2" valign="top" class="listtopic"><?=gettext("Gitsync"); ?></td>
197
	</tr>
198
	<tr>
199
		<td width="22%" valign="top" class="vncell"><?=gettext("Auto sync on update"); ?></td>
200
		<td width="78%" class="vtable">
201
			<input name="synconupgrade" type="checkbox" id="synconupgrade" value="yes" <?php if (isset($gitcfg['synconupgrade'])) echo "checked"; ?> />
202
			<br />
203
			<?=gettext("After updating, sync with the following repository/branch before reboot."); ?>
204
		</td>
205
	</tr>
206 b5efd82a Erik Fonnesbeck
<?php
207
	if(is_dir("/root/pfsense/pfSenseGITREPO/pfSenseGITREPO")) {
208
		exec("cd /root/pfsense/pfSenseGITREPO/pfSenseGITREPO && git config remote.origin.url", $output_str);
209
		if(is_array($output_str) && !empty($output_str[0]))
210
			$lastrepositoryurl = $output_str[0];
211
		unset($output_str);
212
	}
213
?>
214 f0ce6758 Erik Fonnesbeck
	<tr>
215
		<td width="22%" valign="top" class="vncell"><?=gettext("Repository URL"); ?></td>
216
		<td width="78%" class="vtable">
217
			<input name="repositoryurl" type="input" class="formfld url" id="repositoryurl" size="64" value="<?php if ($gitcfg['repositoryurl']) echo $gitcfg['repositoryurl']; ?>">
218 b5efd82a Erik Fonnesbeck
<?php if($lastrepositoryurl): ?>
219
			<br />
220
			<?=sprintf(gettext("The most recently used repository was %s"), $lastrepositoryurl); ?>
221
			<br />
222
			<?=gettext("This will be used if the field is left blank."); ?>
223
<?php endif; ?>
224 f0ce6758 Erik Fonnesbeck
		</td>
225
	</tr>
226 b5efd82a Erik Fonnesbeck
<?php
227
	if(is_dir("/root/pfsense/pfSenseGITREPO/pfSenseGITREPO")) {
228
		exec("cd /root/pfsense/pfSenseGITREPO/pfSenseGITREPO && git branch", $output_str);
229
		if(is_array($output_str)) {
230
			foreach($output_str as $output_line) {
231
				if(strstr($output_line, '* ')) {
232
					$lastbranch = substr($output_line, 2);
233
					break;
234
				}
235
			}
236
		}
237
		unset($output_str);
238
	}
239
?>
240 f0ce6758 Erik Fonnesbeck
	<tr>
241
		<td width="22%" valign="top" class="vncell"><?=gettext("Branch name"); ?></td>
242
		<td width="78%" class="vtable">
243
			<input name="branch" type="input" class="formfld unknown" id="branch" size="64" value="<?php if ($gitcfg['branch']) echo $gitcfg['branch']; ?>">
244 b5efd82a Erik Fonnesbeck
<?php if($lastbranch): ?>
245
			<br />
246
			<?=sprintf(gettext("The most recently used branch was %s"), $lastbranch); ?>
247
<?php else: ?>
248
			<br />
249
			<?=gettext("Usually the branch name is master"); ?>
250
<?php endif; ?>
251 f0ce6758 Erik Fonnesbeck
			<br />
252 b5efd82a Erik Fonnesbeck
			<?=gettext("Note: Sync will not be performed if a branch is not specified."); ?>
253 f0ce6758 Erik Fonnesbeck
		</td>
254
	</tr>
255
<?php endif; ?>
256 9471afe1 Colin Smith
	<script>enable_altfirmwareurl();</script>
257 0b2e3c64 Colin Smith
                <tr>
258
                  <td width="22%" valign="top">&nbsp;</td>
259
                  <td width="78%">
260 8395f51e Carlos Eduardo Ramos
                    <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>">
261 0b2e3c64 Colin Smith
                  </td>
262
                </tr>
263 e12d98ea Bill Marquette
              </table></div></td></tr></table>
264 0b2e3c64 Colin Smith
</form>
265
<?php include("fend.inc"); ?>
266
</body>
267
</html>