Project

General

Profile

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

    
18
// Must include code to stop this file being access directly
19
if(defined('WB_PATH') == false)
20
{
21
	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>');
22
}
23

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

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

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

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

    
93

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

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

    
121
// set template file and assign module and template block
122
$oSecureTpl = new Template(WB_PATH.'/modules/SecureFormSwitcher/htt','keep');
123
// $tpl = new Template(dirname($admin->correct_theme_source('switchform.htt')),'keep');
124
$oSecureTpl->set_file('page', 'switchform.htt');
125
$oSecureTpl->debug = false; // false, true
126
$oSecureTpl->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
$oSecureTpl->set_var($replace);
149
$oSecureTpl->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
$oSecureTpl->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
$oSecureTpl->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
			$oSecureTpl->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
			$oSecureTpl->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
		$oSecureTpl->parse('mtab_loop','useip_mtab_loop', true);
201
	}
202

    
203
$oSecureTpl->set_block('main_block', 'show_mtab_block', 'show_mtab');
204
$oSecureTpl->set_block('main_block', 'mtab_block', 'mtab');
205
if($checked) {
206
	$oSecureTpl->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
	$oSecureTpl->parse('mtab','mtab_block', true);
222
	$oSecureTpl->parse('show_mtab','show_mtab_block', true);
223
} else  {
224
	$oSecureTpl->parse('mtab', '');
225
	$oSecureTpl->parse('show_mtab', '');
226
}
227

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

    
(8-8/11)