summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYury German <blueknight@gentoo.org>2017-03-07 20:49:57 -0500
committerYury German <blueknight@gentoo.org>2017-03-07 20:49:57 -0500
commit4aef42856734c8d67b06814ff6c97b101869836b (patch)
treedd94b6858923fa285673285940bcd74be3bb5eb9 /plugins/jetpack/modules/sso
parentUpdate plugin wordpress-mobile-pack 2.2.8 (diff)
downloadblogs-gentoo-4aef42856734c8d67b06814ff6c97b101869836b.tar.gz
blogs-gentoo-4aef42856734c8d67b06814ff6c97b101869836b.tar.bz2
blogs-gentoo-4aef42856734c8d67b06814ff6c97b101869836b.zip
Jetpack upgrade 4.7
Diffstat (limited to 'plugins/jetpack/modules/sso')
-rw-r--r--plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php92
-rw-r--r--plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/sso/jetpack-sso-login.min.css2
3 files changed, 90 insertions, 6 deletions
diff --git a/plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php b/plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php
index 9d9c5477..f7c6eb92 100644
--- a/plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php
+++ b/plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php
@@ -54,19 +54,32 @@ class Jetpack_SSO_Helpers {
*
* @return bool
*/
- static function new_user_override() {
+ static function new_user_override( $user_data = null ) {
$new_user_override = defined( 'WPCC_NEW_USER_OVERRIDE' ) ? WPCC_NEW_USER_OVERRIDE : false;
/**
- * Allow users to register on your site with a WordPress.com account, even though you disallow normal registrations.
+ * Allow users to register on your site with a WordPress.com account, even though you disallow normal registrations.
+ * If you return a string that corresponds to a user role, the user will be given that role.
*
* @module sso
*
* @since 2.6.0
+ * @since 4.6 $user_data object is now passed to the jetpack_sso_new_user_override filter
*
- * @param bool $new_user_override Allow users to register on your site with a WordPress.com account. Default to false.
+ * @param bool $new_user_override Allow users to register on your site with a WordPress.com account. Default to false.
+ * @param object|null $user_data An object containing the user data returned from WordPress.com.
*/
- return (bool) apply_filters( 'jetpack_sso_new_user_override', $new_user_override );
+ $role = apply_filters( 'jetpack_sso_new_user_override', $new_user_override, $user_data );
+
+ if ( $role ) {
+ if ( is_string( $role ) && get_role( $role ) ) {
+ return $role;
+ } else {
+ return get_option( 'default_role' );
+ }
+ }
+
+ return false;
}
/**
@@ -162,6 +175,7 @@ class Jetpack_SSO_Helpers {
* default for $api_base due to restrictions with testing constants in our tests.
*
* @since 4.3.0
+ * @since 4.6.0 Added public-api.wordpress.com as an allowed redirect
*
* @param array $hosts
* @param string $api_base
@@ -175,6 +189,7 @@ class Jetpack_SSO_Helpers {
$hosts[] = 'wordpress.com';
$hosts[] = 'jetpack.wordpress.com';
+ $hosts[] = 'public-api.wordpress.com';
if (
( Jetpack::is_development_mode() || Jetpack::is_development_version() ) &&
@@ -221,6 +236,11 @@ class Jetpack_SSO_Helpers {
$user->last_name = $user_data->last_name;
$user->url = $user_data->url;
$user->description = $user_data->description;
+
+ if ( isset( $user_data->role ) && $user_data->role ) {
+ $user->role = $user_data->role;
+ }
+
wp_update_user( $user );
update_user_meta( $user->ID, 'wpcom_user_id', $user_data->ID );
@@ -240,6 +260,70 @@ class Jetpack_SSO_Helpers {
*/
return intval( apply_filters( 'jetpack_sso_auth_cookie_expirtation', YEAR_IN_SECONDS ) );
}
+
+ /**
+ * Determines if the SSO form should be displayed for the current action.
+ *
+ * @since 4.6.0
+ *
+ * @param string $action
+ *
+ * @return bool Is SSO allowed for the current action?
+ */
+ static function display_sso_form_for_action( $action ) {
+ /**
+ * Allows plugins the ability to overwrite actions where the SSO form is allowed to be used.
+ *
+ * @module sso
+ *
+ * @since 4.6.0
+ *
+ * @param array $allowed_actions_for_sso
+ */
+ $allowed_actions_for_sso = (array) apply_filters( 'jetpack_sso_allowed_actions', array(
+ 'login',
+ 'jetpack-sso',
+ 'jetpack_json_api_authorization',
+ ) );
+ return in_array( $action, $allowed_actions_for_sso );
+ }
+
+ /**
+ * This method returns an environment array that is meant to simulate `$_REQUEST` when the initial
+ * JSON API auth request was made.
+ *
+ * @since 4.6.0
+ *
+ * @return array|bool
+ */
+ static function get_json_api_auth_environment() {
+ if ( empty( $_COOKIE['jetpack_sso_original_request'] ) ) {
+ return false;
+ }
+
+ $original_request = esc_url_raw( $_COOKIE['jetpack_sso_original_request'] );
+
+ $parsed_url = wp_parse_url( $original_request );
+ if ( empty( $parsed_url ) || empty( $parsed_url['query'] ) ) {
+ return false;
+ }
+
+ $args = array();
+ wp_parse_str( $parsed_url['query'], $args );
+
+ if ( empty( $args ) || empty( $args['action'] ) ) {
+ return false;
+ }
+
+ if ( 'jetpack_json_api_authorization' != $args['action'] ) {
+ return false;
+ }
+
+ return array_merge(
+ $args,
+ array( 'jetpack_json_api_original_query' => $original_request )
+ );
+ }
}
endif;
diff --git a/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css b/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css
index 1d92ae00..513d726f 100644
--- a/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css
+++ b/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css
@@ -1 +1 @@
-#loginform{position:relative!important;padding-bottom:92px}.jetpack-sso-repositioned #loginform{padding-bottom:26px}#loginform #jetpack-sso-wrap,#loginform #jetpack-sso-wrap *{box-sizing:border-box}#jetpack-sso-wrap__action,#jetpack-sso-wrap__user{display:none}.jetpack-sso-form-display #jetpack-sso-wrap__action,.jetpack-sso-form-display #jetpack-sso-wrap__user{display:block}#jetpack-sso-wrap{position:absolute;bottom:20px;padding:0 24px;margin-right:-24px;margin-left:-24px;width:100%}.jetpack-sso-repositioned #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:16px;margin-right:0;margin-left:0}.jetpack-sso-form-display #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:0;margin-right:0;margin-left:0}#loginform #jetpack-sso-wrap p{color:#777;margin-bottom:16px}#jetpack-sso-wrap a{display:block;width:100%;text-align:center;text-decoration:none}#jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:none}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:block}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.default,.jetpack-sso-form-display #loginform>div,.jetpack-sso-form-display #loginform>p{display:none}.jetpack-sso-form-display #loginform #jetpack-sso-wrap{display:block}.jetpack-sso-form-display #loginform{padding:26px 24px}.jetpack-sso-or{margin-bottom:16px;position:relative;text-align:center}.jetpack-sso-or:before{background:#E5E5E5;content:'';height:1px;position:absolute;right:0;top:50%;width:100%}.jetpack-sso-or span{background:#fff;color:#777;position:relative;padding:0 8px;text-transform:uppercase}.jetpack-sso.button{height:36px;line-height:34px;float:none;margin-bottom:16px;position:relative;width:100%}.jetpack-sso.button>span{position:relative;padding-right:30px}.jetpack-sso.button .genericon-wordpress{position:absolute;right:0;top:-3px;font-size:24px}@media screen and (max-width:782px){.jetpack-sso.button{line-height:22px}}#jetpack-sso-wrap__user img{border-radius:50%;display:block;margin:0 auto 16px}#jetpack-sso-wrap__user h2{font-size:21px;font-weight:300;margin-bottom:16px;text-align:center}#jetpack-sso-wrap__user h2 span{font-weight:700}.jetpack-sso-wrap__reauth{margin-bottom:16px}.jetpack-sso-form-display #nav{display:none}.jetpack-sso-form-display #backtoblog{margin:24px 0 0}.jetpack-sso-clear:after{content:"";display:table;clear:both} \ No newline at end of file
+#loginform{position:relative!important;padding-bottom:92px}.jetpack-sso-repositioned #loginform{padding-bottom:26px}#loginform #jetpack-sso-wrap,#loginform #jetpack-sso-wrap *{box-sizing:border-box}#jetpack-sso-wrap__action,#jetpack-sso-wrap__user{display:none}.jetpack-sso-form-display #jetpack-sso-wrap__action,.jetpack-sso-form-display #jetpack-sso-wrap__user{display:block}#jetpack-sso-wrap{position:absolute;bottom:20px;padding:0 24px;margin-right:-24px;margin-left:-24px;width:100%}.jetpack-sso-repositioned #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:16px;margin-right:0;margin-left:0}.jetpack-sso-form-display #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:0;margin-right:0;margin-left:0}#loginform #jetpack-sso-wrap p{color:#777;margin-bottom:16px}#jetpack-sso-wrap a{display:block;width:100%;text-align:center;text-decoration:none}#jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:none}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:block}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.default{display:none}.jetpack-sso-form-display #loginform>div,.jetpack-sso-form-display #loginform>p{display:none}.jetpack-sso-form-display #loginform #jetpack-sso-wrap{display:block}.jetpack-sso-form-display #loginform{padding:26px 24px}.jetpack-sso-or{margin-bottom:16px;position:relative;text-align:center}.jetpack-sso-or:before{background:#e5e5e5;content:'';height:1px;position:absolute;right:0;top:50%;width:100%}.jetpack-sso-or span{background:#fff;color:#777;position:relative;padding:0 8px;text-transform:uppercase}.jetpack-sso.button{height:36px;line-height:34px;float:none;margin-bottom:16px;position:relative;width:100%}.jetpack-sso.button>span{position:relative;padding-right:30px}.jetpack-sso.button .genericon-wordpress{position:absolute;right:0;top:-3px;font-size:24px}@media screen and (max-width:782px){.jetpack-sso.button{line-height:22px}}#jetpack-sso-wrap__user img{border-radius:50%;display:block;margin:0 auto 16px}#jetpack-sso-wrap__user h2{font-size:21px;font-weight:300;margin-bottom:16px;text-align:center}#jetpack-sso-wrap__user h2 span{font-weight:700}.jetpack-sso-wrap__reauth{margin-bottom:16px}.jetpack-sso-form-display #nav{display:none}.jetpack-sso-form-display #backtoblog{margin:24px 0 0}.jetpack-sso-clear:after{content:"";display:table;clear:both} \ No newline at end of file
diff --git a/plugins/jetpack/modules/sso/jetpack-sso-login.min.css b/plugins/jetpack/modules/sso/jetpack-sso-login.min.css
index c066b8ae..eeaeff27 100644
--- a/plugins/jetpack/modules/sso/jetpack-sso-login.min.css
+++ b/plugins/jetpack/modules/sso/jetpack-sso-login.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-#loginform{position:relative!important;padding-bottom:92px}.jetpack-sso-repositioned #loginform{padding-bottom:26px}#loginform #jetpack-sso-wrap,#loginform #jetpack-sso-wrap *{box-sizing:border-box}#jetpack-sso-wrap__action,#jetpack-sso-wrap__user{display:none}.jetpack-sso-form-display #jetpack-sso-wrap__action,.jetpack-sso-form-display #jetpack-sso-wrap__user{display:block}#jetpack-sso-wrap{position:absolute;bottom:20px;padding:0 24px;margin-left:-24px;margin-right:-24px;width:100%}.jetpack-sso-repositioned #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:16px;margin-left:0;margin-right:0}.jetpack-sso-form-display #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:0;margin-left:0;margin-right:0}#loginform #jetpack-sso-wrap p{color:#777;margin-bottom:16px}#jetpack-sso-wrap a{display:block;width:100%;text-align:center;text-decoration:none}#jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:none}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:block}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.default,.jetpack-sso-form-display #loginform>div,.jetpack-sso-form-display #loginform>p{display:none}.jetpack-sso-form-display #loginform #jetpack-sso-wrap{display:block}.jetpack-sso-form-display #loginform{padding:26px 24px}.jetpack-sso-or{margin-bottom:16px;position:relative;text-align:center}.jetpack-sso-or:before{background:#E5E5E5;content:'';height:1px;position:absolute;left:0;top:50%;width:100%}.jetpack-sso-or span{background:#fff;color:#777;position:relative;padding:0 8px;text-transform:uppercase}.jetpack-sso.button{height:36px;line-height:34px;float:none;margin-bottom:16px;position:relative;width:100%}.jetpack-sso.button>span{position:relative;padding-left:30px}.jetpack-sso.button .genericon-wordpress{position:absolute;left:0;top:-3px;font-size:24px}@media screen and (max-width:782px){.jetpack-sso.button{line-height:22px}}#jetpack-sso-wrap__user img{border-radius:50%;display:block;margin:0 auto 16px}#jetpack-sso-wrap__user h2{font-size:21px;font-weight:300;margin-bottom:16px;text-align:center}#jetpack-sso-wrap__user h2 span{font-weight:700}.jetpack-sso-wrap__reauth{margin-bottom:16px}.jetpack-sso-form-display #nav{display:none}.jetpack-sso-form-display #backtoblog{margin:24px 0 0}.jetpack-sso-clear:after{content:"";display:table;clear:both} \ No newline at end of file
+#loginform{position:relative!important;padding-bottom:92px}.jetpack-sso-repositioned #loginform{padding-bottom:26px}#loginform #jetpack-sso-wrap,#loginform #jetpack-sso-wrap *{box-sizing:border-box}#jetpack-sso-wrap__action,#jetpack-sso-wrap__user{display:none}.jetpack-sso-form-display #jetpack-sso-wrap__action,.jetpack-sso-form-display #jetpack-sso-wrap__user{display:block}#jetpack-sso-wrap{position:absolute;bottom:20px;padding:0 24px;margin-left:-24px;margin-right:-24px;width:100%}.jetpack-sso-repositioned #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:16px;margin-left:0;margin-right:0}.jetpack-sso-form-display #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:0;margin-left:0;margin-right:0}#loginform #jetpack-sso-wrap p{color:#777;margin-bottom:16px}#jetpack-sso-wrap a{display:block;width:100%;text-align:center;text-decoration:none}#jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:none}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:block}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.default{display:none}.jetpack-sso-form-display #loginform>div,.jetpack-sso-form-display #loginform>p{display:none}.jetpack-sso-form-display #loginform #jetpack-sso-wrap{display:block}.jetpack-sso-form-display #loginform{padding:26px 24px}.jetpack-sso-or{margin-bottom:16px;position:relative;text-align:center}.jetpack-sso-or:before{background:#e5e5e5;content:'';height:1px;position:absolute;left:0;top:50%;width:100%}.jetpack-sso-or span{background:#fff;color:#777;position:relative;padding:0 8px;text-transform:uppercase}.jetpack-sso.button{height:36px;line-height:34px;float:none;margin-bottom:16px;position:relative;width:100%}.jetpack-sso.button>span{position:relative;padding-left:30px}.jetpack-sso.button .genericon-wordpress{position:absolute;left:0;top:-3px;font-size:24px}@media screen and (max-width:782px){.jetpack-sso.button{line-height:22px}}#jetpack-sso-wrap__user img{border-radius:50%;display:block;margin:0 auto 16px}#jetpack-sso-wrap__user h2{font-size:21px;font-weight:300;margin-bottom:16px;text-align:center}#jetpack-sso-wrap__user h2 span{font-weight:700}.jetpack-sso-wrap__reauth{margin-bottom:16px}.jetpack-sso-form-display #nav{display:none}.jetpack-sso-form-display #backtoblog{margin:24px 0 0}.jetpack-sso-clear:after{content:"";display:table;clear:both} \ No newline at end of file