Project

General

Profile

1
<?php
2
/**
3
 *
4
 * @category        modules
5
 * @package         SecureFormSwitcher
6
 * @author          WebsiteBaker Project
7
 * @copyright       (C) 2011, D Woellbrink
8
 * @copyright       2009-2011, Website Baker Org. e.V.
9
 * @link			http://www.websitebaker2.org/
10
 * @license         http://www.gnu.org/licenses/gpl.html
11
 * @platform        WebsiteBaker 2.8.2
12
 * @requirements    PHP 5.2.2 and higher
13
 * @version         $Id: tool.php 1479 2011-07-25 00:42:10Z Luisehahne $
14
 * @filesource		$HeadURL: svn://isteam.dynxs.de/wb-archiv/branches/2.8.x/wb/modules/SecureFormSwitcher/tool.php $
15
 * @lastmodified    $Date: 2011-07-25 02:42:10 +0200 (Mon, 25 Jul 2011) $
16
 *
17
 */
18

    
19
// Must include code to stop this file being access directly
20
if(defined('WB_PATH') == false)
21
{
22
	die('<head><title>Access denied</title></head><body><h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2></body></html>');
23
}
24

    
25
// load module language file
26
$mod_path = (dirname(__FILE__));
27
require_once( $mod_path.'/language_load.php' );
28
// callback function for settings name
29
function converttoupper($val, $key, $vars) {
30
	$vars[0][$key] = strtoupper($key);
31
	$vars[1][$vars[0][$key]] = ($val);
32
}
33

    
34
// create backlinks
35
$js_back =  ADMIN_URL.'/admintools/tool.php?tool=SecureFormSwitcher';
36
$backlink =  ADMIN_URL.'/admintools/index.php';
37
$FileNotFound = '&nbsp;';
38
// defaults settings
39
$default_cfg = array(
40
	'secure_form_module' => '',
41
	'wb_secform_secret' => '5609bnefg93jmgi99igjefg',
42
	'wb_secform_secrettime' => '86400',
43
	'wb_secform_timeout' => '7200',
44
	'wb_secform_tokenname' => 'formtoken',
45
	'wb_secform_usefp' => 'true',
46
	'fingerprint_with_ip_octets' => '2',
47
);
48
$setting = $default_cfg;
49
$MultitabTarget = WB_PATH.'/framework/SecureForm.mtab.php';
50
// get stored settings to set in mask
51
$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'settings` ';
52
$sql .= 'WHERE `name` = \'secure_form_module\'';
53
$sql .=    'OR `name`=\'fingerprint_with_ip_octets\' ';
54
$sql .=    'OR `name`=\'wb_secform_usefp\' ';
55
$sql .=    'OR `name`=\'wb_secform_tokenname\' ';
56
$sql .=    'OR `name`=\'wb_secform_timeout\' ';
57
$sql .=    'OR `name`=\'wb_secform_secrettime\' ';
58
$sql .=    'OR `name`=\'wb_secform_secret\' ';
59
if($res = $database->query($sql) ) {
60
	if($res->numRows() > 0) {
61
		while($rec = $res->fetchRow(MYSQL_ASSOC)) {
62
	        $setting[$rec['name']] = $rec['value'];
63
		}
64
	} else {
65
		// add missing values
66
		db_update_key_value('settings', $setting );
67
	}
68
}
69

    
70
$action = 'show';
71
$action = isset($_POST['save_settings']) ? 'save_settings' : $action;
72
$action = isset($_POST['save_settings_default']) ? 'save_settings_default' : $action;
73

    
74
switch ($action) :
75
	case 'save_settings':
76
		$cfg = array(
77
			'secure_form_module' => (isset($_POST['ftan_switch']) ? $_POST['ftan_switch'] : 'mtab'),
78
			'wb_secform_secret' => (isset($_POST['wb_secform_secret']) ? $_POST['wb_secform_secret'] : $setting['wb_secform_secret'] ),
79
			'wb_secform_secrettime' => (isset($_POST['wb_secform_secrettime']) ? $_POST['wb_secform_secrettime'] : $setting['wb_secform_secrettime'] ),
80
			'wb_secform_timeout' => (isset($_POST['wb_secform_timeout']) ? $_POST['wb_secform_timeout'] : $setting['wb_secform_timeout'] ),
81
			'wb_secform_tokenname' => (isset($_POST['wb_secform_tokenname']) ? $_POST['wb_secform_tokenname'] : $setting['wb_secform_tokenname'] ),
82
			'wb_secform_usefp' => (isset($_POST['wb_secform_usefp']) ? $_POST['wb_secform_usefp'] : $setting['wb_secform_usefp'] ),
83
			'fingerprint_with_ip_octets' => (isset($_POST['fingerprint_with_ip_octets']) ? $_POST['fingerprint_with_ip_octets'] : $setting['fingerprint_with_ip_octets'] ),
84
		);
85
		// unset($_POST);
86
		$_SESSION['CFG'] = $cfg;
87
		break;
88
	case 'save_settings_default':
89
		$cfg = $default_cfg;
90
		$cfg['secure_form_module'] = $setting['secure_form_module'];
91
		break;
92
endswitch;
93

    
94

    
95
switch ($action) :
96
	case 'save_settings':
97
	case 'save_settings_default':
98
		if (!$admin->checkFTAN())
99
		{
100
			if(!$admin_header) { $admin->print_header(); }
101
			$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'],$_SERVER['REQUEST_URI']);
102
		}
103
		if(file_exists($MultitabTarget)) {
104
			$val = ( isset($_POST['ftan_switch'])  ? ($_POST['ftan_switch']) : 'mtab');
105
		} else {
106
			$cfg['secure_form_module'] = '';
107
			$FileNotFound = $SFS_TEXT['FILE_FORMTAB_NOT_GOUND'];
108
		}
109

    
110
		db_update_key_value('settings', $cfg );
111
		// check if there is a database error, otherwise say successful
112
		if(!$admin_header) { $admin->print_header(); }
113
		if($database->is_error()) {
114
			$admin->print_error($database->get_error(), $js_back);
115
		} else {
116
            if(isset($_SESSION['CFG'])) { unset($_SESSION['CFG']);}
117
			$admin->print_success($MESSAGE['PAGES_SAVED'], $js_back);
118
		}
119
		break;
120
endswitch;
121

    
122
// set template file and assign module and template block
123
$tpl = new Template(WB_PATH.'/modules/SecureFormSwitcher/htt','keep');
124
$tpl->set_file('page', 'switchform.htt');
125
$tpl->debug = false; // false, true
126
$tpl->set_block('page', 'main_block', 'main');
127

    
128
$checked = ($setting['secure_form_module']!='');
129

    
130
$ftanMode = ($checked ? $SFS_TEXT['SECURE_FORM'] : $SFS_TEXT['SECURE_FORMMTAB']);
131
$target = ($checked) ? '.'.$setting['secure_form_module'] : '';
132
$target = WB_PATH.'/framework/SecureForm'.$target.'.php';
133

    
134
$SingleTabStatus = intval($checked==false);
135
$MultitabStatus = intval($checked==true);
136
$NotFoundClass = '';
137
if(!file_exists($MultitabTarget)) {
138
	$SingleTabStatus = true;
139
	$MultitabStatus = false;
140
	$FileNotFound = $SFS_TEXT['FILE_FORMTAB_NOT_GOUND'];
141
	$NotFoundClass = 'class="warning"';
142
} else {
143
}
144

    
145
// convert settings name to upper
146
array_walk($setting,'converttoupper', array(&$search, &$replace ));
147

    
148
$tpl->set_var($replace);
149
$tpl->set_var(array(
150
	'FTAN' => $admin->getFTAN(),
151
	'SERVER_REQUEST_URI' => $_SERVER['REQUEST_URI'],
152
	'TEXT_CANCEL' => $TEXT['CANCEL'],
153
	'BACKLINK' => (isset($_POST['cancel'])) ? $backlink : '#',
154
	'TEXT_INFO' => $SFS_TEXT['INFO'],
155
	'TEXT_SUBMIT' => $SFS_TEXT['SUBMIT'],
156
	'TEXT_MSUBMIT' => $SFS_TEXT['RESET_SETTINGS'],
157
	'TXT_HEADING' => $SFS_TEXT['SECURE_FORM'.strtoupper($setting['secure_form_module'])],
158
	'SELECTED' => ( ($SingleTabStatus) ? ' checked="checked"' : ''),
159
	'SELECTED_TAB' => ( ($MultitabStatus) ? ' checked="checked"' : ''),
160
	'SUBMIT_TYPE' => ($checked ? 'multitab' : 'singletab'),
161
	'MSELECTED' => '',
162
	'MSELECTED_TAB' => '',
163
	'FTAN_COLOR' => ($checked ? 'grey' : 'norm'),
164
	'TXT_SUBMIT_FORM' => $SFS_TEXT['SUBMIT_FORM'],
165
	'TXT_SUBMIT_FORMTAB' => $SFS_TEXT['SUBMIT_FORMTAB'],
166
	'FILE_FORMTAB_WARNING' => $NotFoundClass,
167
	'FILE_FORMTAB_NOT_GOUND' => $FileNotFound,
168
	)
169
);
170

    
171
$tpl->set_var(array(
172
		'USEIP_SELECTED' => '',
173
		'TXT_SECFORM_USEIP' => $SFS_TEXT['WB_SECFORM_USEIP'],
174
        'TXT_SECFORM_USEIP_TOOLTIP' => $SFS_TEXT['WB_SECFORM_USEIP_TOOLTIP'], // Tooltip
175
		'TEXT_DEFAULT_SETTINGS' => $HEADING['DEFAULT_SETTINGS'],
176
		'USEIP_DEFAULT' => $default_cfg['fingerprint_with_ip_octets'],
177
		'USEFP_CHECKED_TRUE' => (($setting['wb_secform_usefp']=='true') ? ' checked="checked"' : ''),
178
		'USEFP_CHECKED_FALSE' => (($setting['wb_secform_usefp']=='false') ? ' checked="checked"' : ''),
179
		'TEXT_DEFAULT_SETTINGS' => $HEADING['DEFAULT_SETTINGS'],
180
	)
181
);
182

    
183
$tpl->set_block('main_block', 'useip_mtab_loop', 'mtab_loop');
184
	for($x=0; $x < 5; $x++) {
185
		// iu value == default set first option with standardtext
186
		if(intval($default_cfg['fingerprint_with_ip_octets'])==$x ) {
187
			$tpl->set_var(array(
188
					'USEIP_VALUE' => $x,
189
					'USEIP_DEFAULT_SELECTED' => ((intval($setting['fingerprint_with_ip_octets'])==$x) ? ' selected="selected"' : ''),
190
					'USEIP_SELECTED' => '',
191
					)
192
			);
193
		} else {
194
			$tpl->set_var(array(
195
					'USEIP_VALUE' => $x,
196
					'USEIP_SELECTED' => ((intval($setting['fingerprint_with_ip_octets'])==$x) && (intval($setting['fingerprint_with_ip_octets'])!=intval($default_cfg['fingerprint_with_ip_octets'])) ? ' selected="selected"' : ''),
197
				)
198
			);
199
		}
200
		$tpl->parse('mtab_loop','useip_mtab_loop', true);
201
	}
202

    
203
$tpl->set_block('main_block', 'show_mtab_block', 'show_mtab');
204
$tpl->set_block('main_block', 'mtab_block', 'mtab');
205
if($checked) {
206
	$tpl->set_var(array(
207
			'TEXT_ENABLED' => $SFS_TEXT['ON_OFF'],
208
			'TXT_SECFORM_TOKENNAME' => $SFS_TEXT['WB_SECFORM_TOKENNAME'],
209
            'TXT_SECFORM_TOKENNAME_TOOLTIP' => $SFS_TEXT['WB_SECFORM_TOKENNAME_TOOLTIP'],
210
			'TXT_SECFORM_TIMEOUT' => $SFS_TEXT['WB_SECFORM_TIMEOUT'],
211
            'TXT_SECFORM_TIMEOUT_TOOLTIP' => $SFS_TEXT['WB_SECFORM_TIMEOUT_TOOLTIP'],
212
			'TXT_SECFORM_SECRETTIME' => $SFS_TEXT['WB_SECFORM_SECRETTIME'],
213
            'TXT_SECFORM_SECRETTIME_TOOLTIP' => $SFS_TEXT['WB_SECFORM_SECRETTIME_TOOLTIP'],
214
			'TXT_SECFORM_SECRET' => $SFS_TEXT['WB_SECFORM_SECRET'],
215
            'TXT_SECFORM_SECRET_TOOLTIP' => $SFS_TEXT['WB_SECFORM_SECRET_TOOLTIP'],
216
			'TXT_SECFORM_USEFP' => $SFS_TEXT['WB_SECFORM_USEFP'],
217
			'SECFORM_USEFP' => 'true',
218
            'TXT_SECFORM_USEFP_TOOLTIP' => $SFS_TEXT['WB_SECFORM_USEFP_TOOLTIP'],
219
		)
220
	);
221
	$tpl->parse('mtab','mtab_block', true);
222
	$tpl->parse('show_mtab','show_mtab_block', true);
223
} else  {
224
	$tpl->parse('mtab', '');
225
	$tpl->parse('show_mtab', '');
226
}
227

    
228
// Parse template object
229
$tpl->parse('main', 'main_block', false);
230
$output = $tpl->finish($tpl->parse('output', 'page'));
231
unset($tpl);
232
print $output;
233

    
(7-7/9)