Пример #1
0
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.
        }
    }
}
Пример #2
0
     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);