function fs_authenticate_wp_user() { // use wordpress users only when installed in hosted mode if (fs_full_installation()) { global $current_user; $path = fs_get_firestats_path(); require_once $path . '/php/auth.php'; $user = new stdClass(); $user->name = $current_user->user_login; $user->id = $current_user->id; if (fs_is_wpmu()) { if (is_site_admin()) { $user->security_level = SEC_ADMIN; } else { $user->security_level = current_user_can('publish_posts') ? SEC_USER : SEC_NONE; } } else { if (current_user_can('manage_options')) { $user->security_level = SEC_ADMIN; } else { if (current_user_can('moderate_comments')) { $user_level = 4; } else { if (current_user_can('publish_posts')) { $user_level = 3; } else { if (current_user_can('edit_posts')) { $user_level = 2; } else { if (current_user_can('read')) { $user_level = 1; } else { $user_level = 0; // a bumhug } } } } $required = (int) fs_get_local_option('firestats_min_view_security_level', 3); echo "required : {$required}, actual {$user_level}"; $user->security_level = $required <= $user_level ? SEC_USER : SEC_NONE; } } fs_start_user_session($user); } else { fs_resume_user_session(); if (!fs_authenticated()) { fs_start_user_session(null); // dummy session that can only be used to login. } } }
if (!$session_specified) { $response['message'] = 'Session id not specified'; $allowed = false; } else { if ($session_init !== true) { if ($session_init === false) { $response['status'] = 'session_expired'; $allowed = false; } else { if (is_string($session_init)) { ajax_error($response, "Error initializing session : {$session_init}"); $allowed = false; } } } else { if (!fs_authenticated($response)) { $response['message'] = 'Session not authenticated'; $allowed = false; } } } } if ($allowed) { $response['action'] = $action; $response['status'] = 'ok'; switch ($action) { case 'login': fs_ajax_login($response); break; case 'logout': fs_ajax_logout($response);