246 if( isset( $_REQUEST[
'option'] ) and strpos( $_REQUEST[
'option'],
'getOxdSocialLogin' ) !==
false ) {
247 echo
'<script type="application/javascript"> 248 jQuery("body div").hide(); 249 jQuery("#loading").show(); 251 $config_option = unserialize(Mage::getStoreConfig (
'gluu/oxd/oxd_config' ));
252 $oxd_id = Mage::getStoreConfig (
'gluu/oxd/gluu_oxd_id');
258 $get_tokens_by_code_array = array();
262 $get_tokens_by_code_array =
$get_tokens_by_code->getResponseObject()->data->id_token_claims;
264 echo
"<script type='application/javascript'> 265 alert('Missing claims : Please talk to your organizational system administrator or try again.'); 266 location.href='".$this->getBaseUrl().
"'; 274 $get_user_info_array =
$get_user_info->getResponseObject()->data->claims;
278 $_SESSION[
'session_state'] = $_REQUEST[
'session_state'];
280 $get_user_info_array =
$get_user_info->getResponseObject()->data->claims;
282 $reg_first_name =
'';
286 $reg_middle_name =
'';
291 $reg_postal_code =
'';
293 $reg_home_phone_number =
'';
294 $reg_phone_mobile_number =
'';
295 $reg_street_address =
'';
296 $reg_street_address_2 =
'';
298 $reg_user_permission =
'';
299 if (!empty($get_user_info_array->email[0])) {
300 $reg_email = $get_user_info_array->email[0];
302 elseif (!empty($get_tokens_by_code_array->email[0])) {
303 $reg_email = $get_tokens_by_code_array->email[0];
306 echo
"<script type='application/javascript'> 307 alert('Missing claim : (email). Please talk to your organizational system administrator.'); 308 location.href='".$this->getBaseUrl().
"'; 312 if($get_user_info_array->given_name[0]){
313 $reg_first_name = $get_user_info_array->given_name[0];
315 elseif($get_tokens_by_code_array->given_name[0]){
316 $reg_first_name = $get_tokens_by_code_array->given_name[0];
318 if($get_user_info_array->family_name[0]){
319 $reg_last_name = $get_user_info_array->family_name[0];
321 elseif($get_tokens_by_code_array->family_name[0]){
322 $reg_last_name = $get_tokens_by_code_array->family_name[0];
324 if($get_user_info_array->middle_name[0]){
325 $reg_middle_name = $get_user_info_array->middle_name[0];
327 elseif($get_tokens_by_code_array->middle_name[0]){
328 $reg_middle_name = $get_tokens_by_code_array->middle_name[0];
330 if($get_user_info_array->email[0]){
331 $reg_email = $get_user_info_array->email[0];
333 elseif($get_tokens_by_code_array->email[0]){
334 $reg_email = $get_tokens_by_code_array->email[0];
336 if($get_user_info_array->country[0]){
337 $reg_country = $get_user_info_array->country[0];
339 elseif($get_tokens_by_code_array->country[0]){
340 $reg_country = $get_tokens_by_code_array->country[0];
342 if($get_user_info_array->gender[0]){
343 if($get_user_info_array->gender[0] ==
'male'){
349 elseif($get_tokens_by_code_array->gender[0]){
350 if($get_tokens_by_code_array->gender[0] ==
'male'){
356 if($get_user_info_array->locality[0]){
357 $reg_city = $get_user_info_array->locality[0];
359 elseif($get_tokens_by_code_array->locality[0]){
360 $reg_city = $get_tokens_by_code_array->locality[0];
362 if($get_user_info_array->postal_code[0]){
363 $reg_postal_code = $get_user_info_array->postal_code[0];
365 elseif($get_tokens_by_code_array->postal_code[0]){
366 $reg_postal_code = $get_tokens_by_code_array->postal_code[0];
368 if($get_user_info_array->phone_number[0]){
369 $reg_home_phone_number = $get_user_info_array->phone_number[0];
371 elseif($get_tokens_by_code_array->phone_number[0]){
372 $reg_home_phone_number = $get_tokens_by_code_array->phone_number[0];
374 if($get_user_info_array->phone_mobile_number[0]){
375 $reg_phone_mobile_number = $get_user_info_array->phone_mobile_number[0];
377 elseif($get_tokens_by_code_array->phone_mobile_number[0]){
378 $reg_phone_mobile_number = $get_tokens_by_code_array->phone_mobile_number[0];
380 if($get_user_info_array->picture[0]){
381 $reg_avatar = $get_user_info_array->picture[0];
383 elseif($get_tokens_by_code_array->picture[0]){
384 $reg_avatar = $get_tokens_by_code_array->picture[0];
386 if($get_user_info_array->street_address[0]){
387 $reg_street_address = $get_user_info_array->street_address[0];
389 elseif($get_tokens_by_code_array->street_address[0]){
390 $reg_street_address = $get_tokens_by_code_array->street_address[0];
392 if($get_user_info_array->birthdate[0]){
393 $reg_birthdate = $get_user_info_array->birthdate[0];
395 elseif($get_tokens_by_code_array->birthdate[0]){
396 $reg_birthdate = $get_tokens_by_code_array->birthdate[0];
398 if($get_user_info_array->region[0]){
399 $reg_region = $get_user_info_array->region[0];
401 elseif($get_tokens_by_code_array->region[0]){
402 $reg_region = $get_tokens_by_code_array->region[0];
405 if (!empty($get_user_info_array->user_name[0])) {
406 $username = $get_user_info_array->user_name[0];
409 $email_split = explode(
"@", $reg_email);
410 $username = $email_split[0];
412 if(!empty($get_user_info_array->permission[0])){
413 $world = str_replace(
"[",
"",$get_user_info_array->permission[0]);
414 $reg_user_permission = str_replace(
"]",
"",$world);
416 elseif(!empty($get_tokens_by_code_array->permission[0])){
417 $world = str_replace(
"[",
"",$get_user_info_array->permission[0]);
418 $reg_user_permission = str_replace(
"]",
"",$world);
421 $gluu_new_roles = json_decode(
select_query(
'gluu/oxd/gluu_new_role'));
422 $gluu_users_can_register =
select_query(
'gluu/oxd/gluu_users_can_register');
423 $gluu_user_role =
select_query(
'gluu/oxd/gluu_user_role');
424 if($gluu_users_can_register == 2 and !empty($gluu_new_roles)){
425 foreach ($gluu_new_roles as $gluu_new_role) {
426 if (strstr($reg_user_permission, $gluu_new_role)) {
432 alert('You are not authorized for an account on this application. If you think this is an error, please contact your OpenID Connect Provider (OP) admin.'); 433 location.href='".$this->getBaseUrl().
"'; 440 $customer = Mage::getModel(
'customer/customer');
441 $customer->setWebsiteId(Mage::app()->getWebsite()->getId());
442 $customer->loadByEmail($reg_email);
443 if($customer->getId()>=1){
445 $customer->setFirstname($reg_first_name);
446 $customer->setLastname ($reg_last_name);
447 $customer->setMiddleName($reg_middle_name);
448 $customer->setGender($reg_gender);
449 $customer->setDob($reg_birthdate);
452 $dataShipping = array(
453 'firstname' => $reg_first_name,
454 'lastname' => $reg_last_name,
455 'street' => array($reg_street_address),
456 'region' => $reg_region,
458 'postcode' => $reg_postal_code,
459 'country_id' => $reg_country,
460 'telephone' => $reg_phone_mobile_number.
' '. $reg_home_phone_number,
462 $customerAddress = Mage::getModel(
'customer/address');
464 if ($defaultShippingId = $customer->getDefaultShipping()){
465 $customerAddress->load($defaultShippingId);
467 $customerAddress->setCustomerId($customer->getId())->setIsDefaultShipping(
'1')->setSaveInAddressBook(
'1');
469 $customer->addAddress($customerAddress);
471 $customerAddress->addData($dataShipping)->save();
472 $session = Mage::getSingleton(
"customer/session");
473 $session->loginById($customer->getId());
474 $session->setCustomerAsLoggedIn($customer);
478 if($gluu_users_can_register == 3){
480 alert('You are not authorized for an account on this application. If you think this is an error, please contact your OpenID Connect Provider (OP) admin.'); 481 location.href='".$this->getBaseUrl().
"'; 485 $websiteId = Mage::app()->getWebsite()->getId();
486 $store = Mage::app()->getStore();
487 $password = md5(Mage::helper(
'core')->getRandomString($length = 7));
488 $customer = Mage::getModel(
"customer/customer");
489 $customer->setWebsiteId($websiteId)
490 ->setGroupId($gluu_user_role)
492 ->setFirstname($reg_first_name)
493 ->setLastname($reg_last_name)
494 ->setMiddleName($reg_middle_name)
495 ->setDob($reg_birthdate)
496 ->setGender($reg_gender)
497 ->setEmail($reg_email)
498 ->setPassword($password);
501 $address = Mage::getModel(
"customer/address");
502 $address->setCustomerId($customer->getId())
503 ->setFirstname($customer->getFirstname())
504 ->setMiddleName($reg_middle_name)
505 ->setLastname($customer->getLastname())
506 ->setCountryId($reg_country)
507 ->setPostcode($reg_postal_code)
508 ->setFax($reg_postal_code)
510 ->setRegion($reg_region)
511 ->setTelephone($reg_phone_mobile_number.
' '. $reg_home_phone_number)
512 ->setStreet($reg_street_address)
513 ->setIsDefaultBilling(
'1')
514 ->setIsDefaultShipping(
'1')
515 ->setSaveInAddressBook(
'1');
517 $session = Mage::getSingleton(
"customer/session");
518 $session->loginById($customer->getId());
519 $session->setCustomerAsLoggedIn($customer);
522 catch (Exception $e) {
523 Zend_Debug::dump($e->getMessage());
getGetUserInfo()
Definition: GluuOxOpenidConfig.php:134
$get_user_info
Definition: Get_user_info_test.php:8
select_query($action)
Definition: GluuOxOpenidConfig.php:781
getGetTokensByCode()
Definition: GluuOxOpenidConfig.php:130
$get_tokens_by_code
Definition: Get_tokens_by_code_test.php:6
$_SESSION['id_token']
Definition: Get_tokens_by_code_test.php:15