Changeset 2314 for sites/trunk/common/includes/wporg-sso/wp-plugin.php
- Timestamp:
- 01/18/2016 09:11:31 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/common/includes/wporg-sso/wp-plugin.php
r2204 r2314 73 73 if ( ! preg_match( '/\/wp-login\.php$/', $this->script ) ) { 74 74 // ... but not on its login screen. 75 if ( preg_match( '/^\/oauth([\/\?]{1}.*)?$/', $_SERVER['REQUEST_URI'] ) ) { 76 // Let the theme render for oauth paths (/oauth, /oauth/, /oauth/*, but not /notoauth or /oauthnot) 75 if ( preg_match( '/^\/(\?.*)?$/', $_SERVER['REQUEST_URI'] ) ) { 76 // If at host root (/) 77 if ( ! empty( $_GET['action'] ) ) { 78 // If there's an action, it's really meant for wp-login.php, redirect 79 $get = $_GET; 80 if ( in_array( $get['action'], array( 'logout', 'loggedout' ) ) ) { 81 // But make sure to show our custom screen when needed 82 $get['redirect_to'] = '/?screen=loggedout'; 83 } 84 $this->_safe_redirect( add_query_arg( $get, $this->sso_login_url . '/wp-login.php' ) ); 85 return; 86 } else { 87 // Else let the theme render, or redirect if logged in 88 if ( is_user_logged_in() ) { 89 $this->_redirect_to_profile(); 90 } else { 91 if ( empty( $_GET['screen'] ) ) { 92 add_filter( 'login_form_defaults', array( &$this, 'login_form_defaults' ) ); 93 } 94 } 95 return; 96 } 97 } else if ( preg_match( '/^\/oauth([\/\?]{1}.*)?$/', $_SERVER['REQUEST_URI'] ) ) { 98 // Let the theme render for oauth paths (/oauth, /oauth/, /oauth/*, but 99 // not /notoauth or /oauthnot), or redirect if logged in 100 if ( is_user_logged_in() ) { 101 $this->_redirect_to_profile(); 102 } 77 103 return; 78 104 } else if ( is_user_logged_in() ) { 79 // Or mimic what happens after a login without a specified redirect (send to profile).80 $this->_ safe_redirect( 'https://wordpress.org/support/profile/' . get_currentuserinfo()->user_login);105 // Logged in catch all, before last fallback 106 $this->_redirect_to_profile(); 81 107 } else { 82 108 // Otherwise, redirect to the login screen. … … 109 135 return $url; 110 136 } 137 138 139 /** 140 * Filters the defaults captions and options for the login form 141 * 142 * @param array $defaults 143 * @return array 144 */ 145 public function login_form_defaults( $defaults ) { 146 $defaults['label_remember'] = __( 'Remember me', 'wporg-sso' ); 147 $defaults['label_log_in'] = __( 'Log in', 'wporg-sso' ); 148 if ( ! empty( $_GET['redirect_to'] ) ) { 149 $defaults['redirect'] = $_GET['redirect_to']; // always ultimately checked for safety at redir time 150 } 151 return $defaults; 152 } 153 154 /** 155 * Redirects the user to her/his (support) profile. 156 */ 157 protected function _redirect_to_profile() { 158 if ( ! is_user_logged_in() ) { 159 return; 160 } 161 $this->_safe_redirect( 'https://wordpress.org/support/profile/' . get_currentuserinfo()->user_login ); 162 } 111 163 } 112 164
Note: See TracChangeset
for help on using the changeset viewer.