add user info to JWT token response
This commit is contained in:
@@ -10,6 +10,8 @@ class Wiaas_User {
|
|||||||
public static function init() {
|
public static function init() {
|
||||||
add_action('init', array(__CLASS__, 'load_user_organization'));
|
add_action('init', array(__CLASS__, 'load_user_organization'));
|
||||||
add_action('plugins_loaded', array(__CLASS__, 'remove_default_user_groups'), 30);
|
add_action('plugins_loaded', array(__CLASS__, 'remove_default_user_groups'), 30);
|
||||||
|
add_filter('woocommerce_rest_prepare_customer', array(__CLASS__, 'transform_rest_customer'), 10, 3);
|
||||||
|
add_filter('jwt_auth_token_before_dispatch', array(__CLASS__, 'transform_jwt_token_response'), 10, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function load_user_organization() {
|
public static function load_user_organization() {
|
||||||
@@ -24,6 +26,58 @@ class Wiaas_User {
|
|||||||
remove_action( 'init', 'wp_register_default_user_group_taxonomy' );
|
remove_action( 'init', 'wp_register_default_user_group_taxonomy' );
|
||||||
remove_action( 'init', 'wp_register_default_user_type_taxonomy' );
|
remove_action( 'init', 'wp_register_default_user_type_taxonomy' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Apply wiaas custom transformation on retrieved JSON customer object
|
||||||
|
*
|
||||||
|
* @param $response
|
||||||
|
* @param $order
|
||||||
|
* @param $request
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function transform_rest_customer($response, $order, $request) {
|
||||||
|
$data = $response->get_data();
|
||||||
|
$result = array(
|
||||||
|
'id' => $data['id'],
|
||||||
|
'idCompany' => 0,
|
||||||
|
'isCompanyAdmin' => 1,
|
||||||
|
'mail' => $data['email'],
|
||||||
|
'phone' => $phone,
|
||||||
|
'name' => $data['first_name'] . ' ' . $data['last_name'],
|
||||||
|
'companyName' => '',
|
||||||
|
'billingAddresses' => [],
|
||||||
|
'profileAddresses' => [],
|
||||||
|
'userType' => $data['role'],
|
||||||
|
'vatCode' => 0,
|
||||||
|
);
|
||||||
|
|
||||||
|
return new WP_REST_Response($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Apply wiaas custom transformation on JWT token response
|
||||||
|
*
|
||||||
|
* @param $data
|
||||||
|
* @param $user
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function transform_jwt_token_response($data, $user) {
|
||||||
|
return new WP_REST_Response(array(
|
||||||
|
'token' => $data['token'],
|
||||||
|
'userInfo' => array(
|
||||||
|
'wiaas_id_user' => $user->ID,
|
||||||
|
'wiaas_is_company_admin' => 1, //TODO: don't hardcode this
|
||||||
|
'wiaas_user_full_name' => $user->first_name . ' ' . $user->last_name,
|
||||||
|
'wiaas_user_type' => $user->roles,
|
||||||
|
'wiaas_username' => $user->data->user_login
|
||||||
|
)
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Wiaas_User::init();
|
Wiaas_User::init();
|
||||||
Reference in New Issue
Block a user