ID;
//auth_redirect();
$ws_cs = strtolower($_REQUEST['action']);
$ws_callback = array();
$ws_no_auth_codition = (
current_user_can('subscriber') ||
!is_user_logged_in()
);
$ws_allow_fields = array(
'ws_3721up_file_list',
'ws_3721up_api_setting',
'ws_3721up_api_setting_ori',
'ws_3721up_api_setting_api_src',
'ws_3721up_api_setting_global_name'
);
$ws_allow_fields_admin = array(
'ws_3721up_api_setting',
'ws_3721up_api_setting_ori',
'ws_3721up_api_setting_api_src',
'ws_3721up_api_setting_global_name'
);
$_REQUEST = array_diff_key($_REQUEST,array('action'=>''));
//Filter the guys without permission
if ($ws_no_auth_codition){ header('location: http://' . $_SERVER['HTTP_HOST']); }
//Opps! no actions!
if (count($_REQUEST) == 0){ die('Welcome! dear. some help?'); }
//Check if the fileds of the request are allowed or not
foreach ($_REQUEST as $key => $value) {
if (!in_array($key, $ws_allow_fields)){
// die ('Sorry! you are bad guy.');
$ws_callback['msg']='Sorry! you are bad guy.';
die (json_encode($ws_callback));
}
if(!current_user_can('administrator')){
if (!in_array($key, $ws_allow_fields_admin)){
$ws_callback['msg']='Sorry! you are not the adminnistrator.';
die (json_encode($ws_callback));
}
}
}
//$field_keys = array_keys($_REQUEST);
// $ws_referer = $_SERVER['HTTP_REFERER'];
// if($_SERVER['HTTP_REFERER']){$ws_callback['referer']=$_SERVER['HTTP_REFERER'];}
// else{die('-1');};
switch ($ws_cs){
case '':
$ws_callback['msg'] = 'no action (get/set/update)';
$ws_callback['success'] = 'false';
break;
case 'get':
foreach($_REQUEST as $key => $value){
$ws_callback[$key] = get_option($key);
}
$ws_callback['msg'] = 'fine get!';
$ws_callback['success'] = 'true';
break;
case ($ws_cs == 'set' || $ws_cs == 'update'):
foreach($_REQUEST as $key => $value){
ws_update_option($key, $value);
}
$ws_callback['msg'] = 'fine set!';
$ws_callback['success'] = 'true';
break;
case 'delete':
foreach($_REQUEST as $key => $value){
delete_option($key, $value);
}
$ws_callback['msg'] = 'fine delete!';
$ws_callback['success'] = 'true';
break;
default:
$ws_callback['msg'] = 'wrong action value (get/set/update/delete)';
$ws_callback['success'] = 'false';
}//switch end
echo $ws_callback = stripslashes(json_encode($ws_callback));
function ws_update_option($key, $value){
update_option($key, $value);
};
?>