Project

General

Profile

Download (10.7 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 4a76b802 Colin Fleming
$closehead = false;
81 52380979 Scott Ullrich
include("head.inc");
82
83 429f454d Renato Botelho
exec("/usr/bin/fetch -q -o {$g['tmp_path']}/manifest \"{$g['update_manifest']}\"");
84
if(file_exists("{$g['tmp_path']}/manifest")) {
85
	$preset_urls_split = explode("\n", file_get_contents("{$g['tmp_path']}/manifest"));
86 563f5b51 Scott Ullrich
}
87 52380979 Scott Ullrich
88 563f5b51 Scott Ullrich
?>
89 4a76b802 Colin Fleming
<script type="text/javascript">
90
//<![CDATA[
91 0b2e3c64 Colin Smith
92
93 9471afe1 Colin Smith
function enable_altfirmwareurl(enable_over) {  	 
94
	if (document.iform.alturlenable.checked || enable_over) { 	 
95
		document.iform.firmwareurl.disabled = 0; 	 
96
	} else { 	 
97 53075520 Scott Ullrich
		document.iform.firmwareurl.disabled = 1;
98 5d5f69a2 Scott Ullrich
		document.iform.firmwareurl.value = '';
99 9471afe1 Colin Smith
	} 	 
100
}
101
102 4a76b802 Colin Fleming
//]]>
103 0b2e3c64 Colin Smith
</script>
104 4a76b802 Colin Fleming
</head>
105 0b2e3c64 Colin Smith
106
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
107 b30cacb2 Bill Marquette
<?php include("fbegin.inc");?>
108 9471afe1 Colin Smith
<?php if ($input_errors) print_input_errors($input_errors); ?>
109 fd3e7e5d Scott Ullrich
110 0b2e3c64 Colin Smith
<form action="system_firmware_settings.php" method="post" name="iform" id="iform">
111
            <?php if ($savemsg) print_info_box($savemsg); ?>
112 4a76b802 Colin Fleming
              <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="firmware settings">
113 0b2e3c64 Colin Smith
	<tr>
114
		<td>
115 4820d297 Scott Ullrich
<?php
116
	$tab_array = array();
117 3ff39566 Scott Ullrich
	$tab_array[] = array(gettext("Manual Update"), false, "system_firmware.php");
118
	$tab_array[] = array(gettext("Auto Update"), false, "system_firmware_check.php");
119
	$tab_array[] = array(gettext("Updater Settings"), true, "system_firmware_settings.php");
120
	if($g['hidedownloadbackup'] == false)
121
		$tab_array[] = array(gettext("Restore Full Backup"), false, "system_firmware_restorefullbackup.php");
122 4820d297 Scott Ullrich
	display_top_tabs($tab_array);
123
?>
124 0b2e3c64 Colin Smith
		</td>
125
	</tr>
126 4a76b802 Colin Fleming
	<tr><td><div id="mainarea">
127
	      <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area">
128 0b2e3c64 Colin Smith
	<tr>
129 8395f51e Carlos Eduardo Ramos
		<td colspan="2" valign="top" class="listtopic"><?=gettext("Firmware Branch"); ?></td>
130 0b2e3c64 Colin Smith
	</tr>
131 563f5b51 Scott Ullrich
<?php if(is_array($preset_urls_split)): ?>
132
	<tr>
133 8395f51e Carlos Eduardo Ramos
		<td valign="top" class="vncell"><?=gettext("Default Auto Update URLs"); ?></td>
134 563f5b51 Scott Ullrich
		<td class="vtable">
135 4a76b802 Colin Fleming
			<select name='preseturls' id='preseturls' onchange="firmwareurl.value = preseturls.value; document.iform.firmwareurl.disabled = 0; alturlenable.checked=true; jQuery('#preseturls').parent().effect('highlight');">
136 563f5b51 Scott Ullrich
					<option></option>
137
				<?php 
138
					foreach($preset_urls_split as $pus) {
139 cfbfd941 smos
						$pus_text = explode("\t", $pus);
140 02f3e0bb jim-p
						if (empty($pus_text[0]))
141
							continue;
142
						if (stristr($pus_text[0], php_uname("m")) !== false) {
143
							$style = " style=\"font-weight: bold\"";
144
							$yourarch = " (Current architecture)";
145
						} else {
146
							$style = "";
147
							$yourarch = "";
148
						}
149
						echo "<option value='{$pus_text[1]}'{$style}>{$pus_text[0]}{$yourarch}</option>";
150 563f5b51 Scott Ullrich
					}
151
				?>
152
			</select>
153 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")); ?>
154 563f5b51 Scott Ullrich
		</td>
155
	</tr>
156
<?php endif; ?>
157 0b2e3c64 Colin Smith
	<tr>
158 8395f51e Carlos Eduardo Ramos
		<td valign="top" class="vncell"><?=gettext("Firmware Auto Update URL"); ?></td>
159 9471afe1 Colin Smith
		<td class="vtable">
160 4a76b802 Colin Fleming
			<input name="alturlenable" type="checkbox" id="alturlenable" value="yes" onclick="enable_altfirmwareurl()" <?php if(isset($curcfg['alturl']['enable'])) echo "checked=\"checked\""; ?> /> <?=gettext("Use a URL server for firmware upgrades other than") . " " . $g['product_website']; ?><br />
161
			<table summary="alternative Base URL">
162
			<tr><td><?=gettext("Base URL:"); ?></td><td><input name="firmwareurl" type="text" class="formfld url" id="firmwareurl" size="64" value="<?php if($curcfg['alturl']['firmwareurl']) echo $curcfg['alturl']['firmwareurl']; else echo $g['']; ?>" /></td></tr>
163 9471afe1 Colin Smith
			</table>
164 359f32dc Scott Ullrich
			<span class="vexpl">
165 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."); ?>
166 4a76b802 Colin Fleming
				<br/>
167 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']); ?>
168 359f32dc Scott Ullrich
				</span>
169
				</td>
170 9471afe1 Colin Smith
	</tr>
171 a0116247 Ermal
	<tr>
172
		<td colspan="2" class="list" height="12">&nbsp;</td>
173
	</tr>
174
	<tr>
175 8395f51e Carlos Eduardo Ramos
		<td colspan="2" valign="top" class="listtopic"><?=gettext("Updates"); ?></td>
176 a0116247 Ermal
	</tr>
177
	<tr>
178 3395ba20 jim-p
		<td width="22%" valign="top" class="vncell"><?=gettext("Unsigned images"); ?></td>
179 a0116247 Ermal
		<td width="78%" class="vtable">
180 4a76b802 Colin Fleming
			<input name="allowinvalidsig" type="checkbox" id="allowinvalidsig" value="yes" <?php if (isset($curcfg['allowinvalidsig'])) echo "checked=\"checked\""; ?> />
181 a0116247 Ermal
			<br />
182 3395ba20 jim-p
			<?=gettext("Allow auto-update firmware images with a missing or invalid digital signature to be used."); ?>
183 a0116247 Ermal
		</td>
184
	</tr>
185 7a058f06 jim-p
	<tr>
186
		<td width="22%" valign="top" class="vncell"><?=gettext("Dashboard check"); ?></td>
187
		<td width="78%" class="vtable">
188 4a76b802 Colin Fleming
			<input name="disablecheck" type="checkbox" id="disablecheck" value="yes" <?php if (isset($curcfg['disablecheck'])) echo "checked=\"checked\""; ?> />
189 7a058f06 jim-p
			<br />
190
			<?=gettext("Disable the automatic dashboard auto-update check."); ?>
191
		</td>
192
	</tr>
193 2d539f40 Erik Fonnesbeck
<?php if(file_exists("/usr/local/bin/git") && $g['platform'] == "pfSense"): ?>
194 f0ce6758 Erik Fonnesbeck
	<tr>
195
		<td colspan="2" class="list" height="12">&nbsp;</td>
196
	</tr>
197
	<tr>
198
		<td colspan="2" valign="top" class="listtopic"><?=gettext("Gitsync"); ?></td>
199
	</tr>
200
	<tr>
201
		<td width="22%" valign="top" class="vncell"><?=gettext("Auto sync on update"); ?></td>
202
		<td width="78%" class="vtable">
203 4a76b802 Colin Fleming
			<input name="synconupgrade" type="checkbox" id="synconupgrade" value="yes" <?php if (isset($gitcfg['synconupgrade'])) echo "checked=\"checked\""; ?> />
204 f0ce6758 Erik Fonnesbeck
			<br />
205
			<?=gettext("After updating, sync with the following repository/branch before reboot."); ?>
206
		</td>
207
	</tr>
208 b5efd82a Erik Fonnesbeck
<?php
209
	if(is_dir("/root/pfsense/pfSenseGITREPO/pfSenseGITREPO")) {
210
		exec("cd /root/pfsense/pfSenseGITREPO/pfSenseGITREPO && git config remote.origin.url", $output_str);
211
		if(is_array($output_str) && !empty($output_str[0]))
212
			$lastrepositoryurl = $output_str[0];
213
		unset($output_str);
214
	}
215
?>
216 f0ce6758 Erik Fonnesbeck
	<tr>
217
		<td width="22%" valign="top" class="vncell"><?=gettext("Repository URL"); ?></td>
218
		<td width="78%" class="vtable">
219 4a76b802 Colin Fleming
			<input name="repositoryurl" type="input" class="formfld url" id="repositoryurl" size="64" value="<?php if ($gitcfg['repositoryurl']) echo $gitcfg['repositoryurl']; ?>" />
220 b5efd82a Erik Fonnesbeck
<?php if($lastrepositoryurl): ?>
221
			<br />
222
			<?=sprintf(gettext("The most recently used repository was %s"), $lastrepositoryurl); ?>
223
			<br />
224
			<?=gettext("This will be used if the field is left blank."); ?>
225
<?php endif; ?>
226 f0ce6758 Erik Fonnesbeck
		</td>
227
	</tr>
228 b5efd82a Erik Fonnesbeck
<?php
229
	if(is_dir("/root/pfsense/pfSenseGITREPO/pfSenseGITREPO")) {
230
		exec("cd /root/pfsense/pfSenseGITREPO/pfSenseGITREPO && git branch", $output_str);
231
		if(is_array($output_str)) {
232
			foreach($output_str as $output_line) {
233
				if(strstr($output_line, '* ')) {
234
					$lastbranch = substr($output_line, 2);
235
					break;
236
				}
237
			}
238
		}
239
		unset($output_str);
240
	}
241
?>
242 f0ce6758 Erik Fonnesbeck
	<tr>
243
		<td width="22%" valign="top" class="vncell"><?=gettext("Branch name"); ?></td>
244
		<td width="78%" class="vtable">
245 4a76b802 Colin Fleming
			<input name="branch" type="input" class="formfld unknown" id="branch" size="64" value="<?php if ($gitcfg['branch']) echo $gitcfg['branch']; ?>" />
246 b5efd82a Erik Fonnesbeck
<?php if($lastbranch): ?>
247
			<br />
248
			<?=sprintf(gettext("The most recently used branch was %s"), $lastbranch); ?>
249
<?php else: ?>
250
			<br />
251
			<?=gettext("Usually the branch name is master"); ?>
252
<?php endif; ?>
253 f0ce6758 Erik Fonnesbeck
			<br />
254 b5efd82a Erik Fonnesbeck
			<?=gettext("Note: Sync will not be performed if a branch is not specified."); ?>
255 f0ce6758 Erik Fonnesbeck
		</td>
256
	</tr>
257
<?php endif; ?>
258 4a76b802 Colin Fleming
	<tr><td><script type="text/javascript">
259
	//<![CDATA[
260
	enable_altfirmwareurl();
261
	//]]>
262
	</script></td></tr>
263 0b2e3c64 Colin Smith
                <tr>
264
                  <td width="22%" valign="top">&nbsp;</td>
265
                  <td width="78%">
266 4a76b802 Colin Fleming
                    <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" />
267 0b2e3c64 Colin Smith
                  </td>
268
                </tr>
269 e12d98ea Bill Marquette
              </table></div></td></tr></table>
270 0b2e3c64 Colin Smith
</form>
271
<?php include("fend.inc"); ?>
272
</body>
273
</html>