コード例 #1
0
/**
 * Handle OpenID profile management.
 */
function openid_profile_management()
{
    global $wp_version;
    if (!isset($_REQUEST['action'])) {
        return;
    }
    switch ($_REQUEST['action']) {
        case 'verify':
            finish_openid($_REQUEST['action']);
            break;
        case 'add':
            check_admin_referer('openid-add_openid');
            $user = wp_get_current_user();
            $auth_request = openid_begin_consumer($_POST['openid_identifier']);
            $userid = get_user_by_openid($auth_request->endpoint->claimed_id);
            if ($userid) {
                global $error;
                if ($user->ID == $userid) {
                    $error = __('You already have this OpenID!', 'openid');
                } else {
                    $error = __('This OpenID is already associated with another user.', 'openid');
                }
                return;
            }
            $return_to = admin_url(current_user_can('edit_users') ? 'users.php' : 'profile.php');
            openid_start_login($_POST['openid_identifier'], 'verify', array('page' => $_REQUEST['page']), $return_to);
            break;
        case 'delete':
            openid_profile_delete_openids($_REQUEST['delete']);
            break;
    }
}
コード例 #2
0
/**
 * Handle OpenID profile management.
 */
function openid_profile_management()
{
    global $action;
    wp_reset_vars(array('action'));
    switch ($action) {
        case 'add':
            check_admin_referer('openid-add_openid');
            $user = wp_get_current_user();
            $auth_request = openid_begin_consumer($_POST['openid_identifier']);
            $userid = get_user_by_openid($auth_request->endpoint->claimed_id);
            if ($userid) {
                global $error;
                if ($user->ID == $userid) {
                    $error = __('You already have this OpenID!', 'openid');
                } else {
                    $error = __('This OpenID is already associated with another user.', 'openid');
                }
                return;
            }
            $finish_url = admin_url(current_user_can('edit_users') ? 'users.php' : 'profile.php');
            $finish_url = add_query_arg('page', $_REQUEST['page'], $finish_url);
            openid_start_login($_POST['openid_identifier'], 'verify', $finish_url);
            break;
        case 'delete':
            openid_profile_delete_openids($_REQUEST['delete']);
            break;
        default:
            if (array_key_exists('message', $_REQUEST)) {
                $message = $_REQUEST['message'];
                $messages = array('', __('Unable to authenticate OpenID.', 'openid'), __('OpenID assertion successful, but this URL is already associated with another user on this blog.', 'openid'), __('Added association with OpenID.', 'openid'));
                if (is_numeric($message)) {
                    $message = $messages[$message];
                } else {
                    $message = htmlentities2($message);
                }
                $message = __($message, 'openid');
                if (array_key_exists('update_url', $_REQUEST) && $_REQUEST['update_url']) {
                    $message .= '<br />' . __('<strong>Note:</strong> For security reasons, your profile URL has been updated to match your OpenID.', 'openid');
                }
                openid_message($message);
                openid_status($_REQUEST['status']);
            }
            break;
    }
}