WordPress.org

Make WordPress Core

Ticket #23295: 23295.diff

File 23295.diff, 4.0 KB (added by nacin, 5 years ago)
  • wp-includes/js/heartbeat.js

     
    410410        wp.heartbeat = new Heartbeat();
    411411
    412412}(jQuery));
     413
     414(function($){
     415        $( document ).on( 'heartbeat-tick.wp-auth-check', function( e, data ) {
     416                var wrap = $('#wp-auth-check-notice-wrap');
     417
     418                if ( data['wp-auth-check-html'] && ! wrap.length ) {
     419                        $('body').append( data['wp-auth-check-html'] );
     420                } else if ( !data['wp-auth-check-html'] && wrap.length && ! wrap.data('logged-in') ) {
     421                        wrap.remove();
     422                }
     423        }).on( 'heartbeat-send.wp-auth-check', function( e, data ) {
     424                data['wp-auth-check'] = 1;
     425        });
     426}(jQuery));
  • wp-includes/functions.php

     
    38943894 * @return void
    38953895 */
    38963896function wp_auth_check_load() {
    3897         if ( ! class_exists('WP_Auth_Check') ) {
    3898                 require( ABSPATH . WPINC . '/class-wp-auth-check.php' );
    3899                 WP_Auth_Check::get_instance();
     3897        wp_enqueue_script( 'heartbeat' );
     3898        add_filter( 'heartbeat_received', 'wp_auth_check', 10, 2 );
     3899        add_filter( 'heartbeat_nopriv_received', 'wp_auth_check', 10, 2 );
     3900}
     3901
     3902/**
     3903 * Check whether a user is still logged in, and act accordingly if not.
     3904 *
     3905 * @since 3.6.0
     3906 */
     3907function wp_auth_check( $response, $data ) {
     3908        if ( ! isset( $data['wp-auth-check'] ) )
     3909                return $response;
     3910
     3911        // If the user is logged in and we are outside the login grace period, bail.
     3912        if ( is_user_logged_in() && empty( $GLOBALS['login_grace_period'] ) )
     3913                return $response;
     3914
     3915        return array_merge( $response, array(
     3916                'wp-auth-check-html' => '<div id="wp-auth-check-notice-wrap">
     3917<style type="text/css" scoped>
     3918#wp-auth-check {
     3919        position: fixed;
     3920        height: 90%;
     3921        left: 50%;
     3922        max-height: 415px;
     3923        overflow: auto;
     3924        top: 35px;
     3925        width: 300px;
     3926        margin: 0 0 0 -160px;
     3927        padding: 12px 20px;
     3928        border: 1px solid #ddd;
     3929        background-color: #fbfbfb;
     3930        -webkit-border-radius: 3px;
     3931        border-radius: 3px;
     3932        z-index: 1000000000;
     3933}
     3934#wp-auth-check-form {
     3935        background: url("' . admin_url('/images/wpspin_light-2x.gif') . '") no-repeat center center;
     3936        background-size: 16px 16px;
     3937}
     3938#wp-auth-check-form iframe {
     3939        height: 100%;
     3940        overflow: hidden;
     3941}
     3942#wp-auth-check a.wp-auth-check-close {
     3943        position: absolute;
     3944        right: 8px;
     3945        top: 8px;
     3946        width: 24px;
     3947        height: 24px;
     3948        background: url("' . includes_url('images/uploader-icons.png') . '") no-repeat scroll -95px center transparent;
     3949}
     3950#wp-auth-check h3 {
     3951        margin: 0 0 12px;
     3952        padding: 0;
     3953        font-size: 1.25em;
     3954}
     3955@media print,
     3956  (-o-min-device-pixel-ratio: 5/4),
     3957  (-webkit-min-device-pixel-ratio: 1.25),
     3958  (min-resolution: 120dpi) {
     3959        #wp-auth-check a.wp-auth-check-close {
     3960                background-image: url("' . includes_url('images/uploader-icons-2x.png') . '");
     3961                background-size: 134px 15px;
    39003962        }
    39013963}
     3964</style>
     3965<div id="wp-auth-check" tabindex="0">
     3966<h3>' .  __('Session expired') . '</h3>
     3967<a href="#" class="wp-auth-check-close"><span class="screen-reader-text">' . __('close') . '</span></a>
     3968<div id="wp-auth-check-form">
     3969        <iframe src="' . esc_url( add_query_arg( array( 'interim-login' => 1 ), wp_login_url() ) ) . '" frameborder="0"></iframe>
     3970</div>
     3971</div>
     3972<script type="text/javascript">
     3973(function($){
     3974var el, wrap = $("#wp-auth-check-notice-wrap");
     3975el = $("#wp-auth-check").focus().find("a.wp-auth-check-close").on("click", function(e){
     3976        el.fadeOut(200, function(){ wrap.remove(); });
     3977        e.preventDefault();
     3978});
     3979$("#wp-auth-check-form iframe").load(function(){
     3980        var height;
     3981        try { height = $(this.contentWindow.document).find("#login").height(); } catch(er){}
     3982        if ( height ) {
     3983                $("#wp-auth-check").css("max-height", height + 40 + "px");
     3984                $(this).css("height", height + 5 + "px");
     3985                if ( height < 200 ) {
     3986                        wrap.data("logged-in", true);
     3987                        setTimeout( function(){ wrap.fadeOut(200, function(){ wrap.remove(); }); }, 5000 );
     3988                }
     3989        }
     3990});
     3991}(jQuery));
     3992</script>
     3993</div>' ) );
     3994}