gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
GluuOxd_Gluufolder_Adminhtml_IndexController クラス
GluuOxd_Gluufolder_Adminhtml_IndexController の継承関係図
Inheritance graph
GluuOxd_Gluufolder_Adminhtml_IndexController 連携図
Collaboration graph

公開メンバ関数

 getOxdRegisterSiteHelper ()
 
 getBaseUrl ()
 
 getIconImage ($image)
 
 logoutAction ()
 
 getOxdUpdateSiteRegistrationHelper ()
 
 indexAction ()
 
 ajaxconfigAction ()
 
 logoutfromallAction ()
 
 ajaxopenidAction ()
 
 generalAction ()
 
 openidconfigpageAction ()
 
 getDataHelper ()
 
 generalFunctionAction ()
 
 resetConfigAction ()
 
 empty_or_null ( $value)
 
 select_query ($action)
 
 insert_query ($action, $value)
 
 update_query ($action, $value)
 

非公開メンバ関数

 getSession ()
 
 redirect ($url)
 
 saveConfig ($url, $value, $id)
 
 getId ()
 

非公開変数類

 $dataHelper = "GluuOxd_Gluufolder"
 
 $oxdRegisterSiteHelper = "GluuOxd_Gluufolder/registerSite"
 
 $oxdUpdateSiteRegistrationHelper = "GluuOxd_Gluufolder/updateSiteRegistration"
 

詳解

関数詳解

◆ ajaxconfigAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::ajaxconfigAction ( )
戻り値
gluuOxd admin index page
174  {
175  if( isset( $_REQUEST['form_key_value'] ) and strpos( $_REQUEST['form_key_value'], 'openid_config_page' ) !== false ) {
176  $params = $_REQUEST;
177  if(!empty($params['scope']) && isset($params['scope'])){
178  $gluu_config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
179  $gluu_config['config_scopes'] = $params['scope'];
180  $gluu_config = json_encode($gluu_config);
181  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', $gluu_config),true);
182  return true;
183  }
184  }
185  }
select_query($action)
Definition: IndexController.php:1227
update_query($action, $value)
Definition: IndexController.php:1237

◆ ajaxopenidAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::ajaxopenidAction ( )
戻り値
gluuOxd admin index page
206  {
207  if( isset( $_POST['form_key_scope_delete'] ) and strpos( $_POST['form_key_scope_delete'], 'form_key_scope_delete' ) !== false ) {
208  $get_scopes = json_decode($this->select_query('gluu/oxd/gluu_scopes'),true);
209  $up_cust_sc = array();
210  foreach($get_scopes as $custom_scop){
211  if($custom_scop !=$_POST['delete_scope']){
212  array_push($up_cust_sc,$custom_scop);
213  }
214  }
215  $get_scopes = json_encode($up_cust_sc);
216  $get_scopes = $this->update_query('gluu/oxd/gluu_scopes', $get_scopes);
217 
218 
219  $gluu_config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
220  $up_cust_scope = array();
221  foreach($gluu_config['config_scopes'] as $custom_scop){
222  if($custom_scop !=$_POST['delete_scope']){
223  array_push($up_cust_scope,$custom_scop);
224  }
225  }
226  $gluu_config['config_scopes'] = $up_cust_scope;
227  $gluu_config = json_encode($gluu_config);
228  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', $gluu_config),true);
229  return true;
230  }
231  else if (isset($_POST['form_key_scope']) and strpos( $_POST['form_key_scope'], 'oxd_openid_config_new_scope' ) !== false) {
232  if (!empty($_POST['new_value_scope']) && isset($_POST['new_value_scope'])) {
233 
234  $get_scopes = json_decode($this->select_query('gluu/oxd/gluu_scopes'),true);
235  if($_POST['new_value_scope'] && !in_array($_POST['new_value_scope'],$get_scopes)){
236  array_push($get_scopes, $_POST['new_value_scope']);
237  }
238  $get_scopes = json_encode($get_scopes);
239  $this->update_query('gluu/oxd/gluu_scopes', $get_scopes);
240  return true;
241  }
242 
243  }
244 
245  }
select_query($action)
Definition: IndexController.php:1227
update_query($action, $value)
Definition: IndexController.php:1237

◆ empty_or_null()

GluuOxd_Gluufolder_Adminhtml_IndexController::empty_or_null (   $value)

checking $_POST data

1215  {
1216  if( ! isset( $value ) || empty( $value ) ) {
1217  return true;
1218  }
1219  return false;
1220  }

◆ generalAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::generalAction ( )
戻り値
admin generalEdit page
249  {
250  $this->loadLayout();
251  $this->_addContent($this->getLayout()->createBlock('core/template'));
252  $this->renderLayout();
253  }

◆ generalFunctionAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::generalFunctionAction ( )

saving and registration data geting oxd_id

293  {
294  $datahelper = $this->getDataHelper();
295 
296  if( isset( $_REQUEST['form_key'] ) and strpos( $_REQUEST['form_key_value'], 'general_register_page' ) !== false ) {
297 
298  if(!isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] != "on") {
299  $datahelper->displayMessage('OpenID Connect requires https. This extension will not work if your website uses http only.',"ERROR");
300  $this->redirect("*/*/index");
301  return;
302  }
303  if($_POST['gluu_user_role']){
304  $this->update_query('gluu/oxd/gluu_user_role', trim($_POST['gluu_user_role']));
305  }
306  if($_POST['gluu_users_can_register']==1){
307  $this->update_query('gluu/oxd/gluu_users_can_register', $_POST['gluu_users_can_register']);
308  if(!empty(array_values(array_filter($_POST['gluu_new_role'])))){
309  $this->update_query('gluu/oxd/gluu_new_role', json_encode(array_values(array_filter($_POST['gluu_new_role']))));
310  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
311  array_push($config['config_scopes'],'permission');
312  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
313  }else{
314  $this->update_query('gluu/oxd/gluu_new_role', json_encode(null));
315  }
316  }
317  if($_POST['gluu_users_can_register']==2){
318  $this->update_query('gluu/oxd/gluu_users_can_register', 2);
319  if(!empty(array_values(array_filter($_POST['gluu_new_role'])))){
320  $this->update_query('gluu/oxd/gluu_new_role', json_encode(array_values(array_filter($_POST['gluu_new_role']))));
321  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
322  array_push($config['config_scopes'],'permission');
323  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
324  }else{
325  $this->update_query('gluu/oxd/gluu_new_role', json_encode(null));
326  $datahelper->displayMessage('Please enter a role to use for automatic registration or choose one of the other enrollment options.',"ERROR");
327  $this->redirect("*/*/index");
328  return;
329  }
330  }
331  if($_POST['gluu_users_can_register']==3){
332  $this->update_query('gluu/oxd/gluu_users_can_register', 3);
333 
334  if(!empty(array_values(array_filter($_POST['gluu_new_role'])))){
335  $this->update_query('gluu/oxd/gluu_new_role', json_encode(array_values(array_filter($_POST['gluu_new_role']))));
336  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
337  array_push($config['config_scopes'],'permission');
338  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
339  }else{
340  $this->update_query('gluu/oxd/gluu_new_role', json_encode(null));
341  }
342  }
343  if (empty($_POST['gluu_oxd_port'])) {
344  $datahelper->displayMessage('All the fields are required. Please enter valid entries.',"ERROR");
345  $this->redirect("*/*/index");
346  return;
347  }
348  else if (intval($_POST['gluu_oxd_port']) > 65535 && intval($_POST['gluu_oxd_port']) < 0) {
349  $datahelper->displayMessage('Enter your oxd host port (Min. number 1, Max. number 65535)',"ERROR");
350  $this->redirect("*/*/index");
351  return;
352  }
353  else if (!empty($_POST['gluu_provider'])) {
354  if (filter_var($_POST['gluu_provider'], FILTER_VALIDATE_URL) === false) {
355  $datahelper->displayMessage('Please enter valid OpenID Provider URI.',"ERROR");
356  $this->redirect("*/*/index");
357  return;
358  }
359  }
360  if (!empty($_POST['gluu_custom_logout'])) {
361  if (filter_var($_POST['gluu_custom_logout'], FILTER_VALIDATE_URL) === false) {
362  $datahelper->displayMessage('Please enter valid Custom URI.',"ERROR");
363  }else{
364  $this->update_query('gluu/oxd/gluu_custom_logout', trim($_POST['gluu_custom_logout']));
365  }
366  }
367  else{
368  $this->update_query('gluu/oxd/gluu_custom_logout', '');
369  }
370  if (isset($_POST['gluu_provider']) and !empty($_POST['gluu_provider'])) {
371  $gluu_provider = trim($_POST['gluu_provider']);
372  $gluu_provider1 = $this->update_query('gluu/oxd/gluu_provider', $gluu_provider);
373  $arrContextOptions=array(
374  "ssl"=>array(
375  "verify_peer"=>false,
376  "verify_peer_name"=>false,
377  ),
378  );
379  $json = file_get_contents($gluu_provider.'/.well-known/openid-configuration', false, stream_context_create($arrContextOptions));
380  $obj = json_decode($json);
381  if(!empty($obj->userinfo_endpoint)){
382 
383  if(empty($obj->registration_endpoint)){
384  $datahelper->displayMessage('Please enter your client_id and client_secret.',"SUCCESS");
385  $gluu_config = json_encode(array(
386  "gluu_oxd_port" =>$_POST['gluu_oxd_port'],
387  "admin_email" => Mage::getSingleton('admin/session')->getUser()->getEmail(),
388  "authorization_redirect_uri" => Mage::getBaseUrl().'customer/account/login?option=getOxdSocialLogin',
389  "post_logout_redirect_uri" => Mage::helper('customer')->getLogoutUrl(),
390  "config_scopes" => ["openid","profile","email"],
391  "gluu_client_id" => "",
392  "gluu_client_secret" => "",
393  "config_acr" => []
394  ));
395  if($_POST['gluu_users_can_register']==2){
396  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
397  array_push($config['config_scopes'],'permission');
398  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
399  }
400  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', $gluu_config),true);
401  if(isset($_POST['gluu_client_id']) and !empty($_POST['gluu_client_id']) and
402  isset($_POST['gluu_client_secret']) and !empty($_POST['gluu_client_secret'])){
403  $gluu_config = json_encode(array(
404  "gluu_oxd_port" =>$_POST['gluu_oxd_port'],
405  "admin_email" => Mage::getSingleton('admin/session')->getUser()->getEmail(),
406  "authorization_redirect_uri" => Mage::getBaseUrl().'customer/account/login?option=getOxdSocialLogin',
407  "post_logout_redirect_uri" => Mage::helper('customer')->getLogoutUrl(),
408  "config_scopes" => ["openid","profile","email"],
409  "gluu_client_id" => $_POST['gluu_client_id'],
410  "gluu_client_secret" => $_POST['gluu_client_secret'],
411  "config_acr" => []
412  ));
413  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', $gluu_config),true);
414  if($_POST['gluu_users_can_register']==2){
415  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
416  array_push($config['config_scopes'],'permission');
417  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
418  }
420  $register_site->setRequestOpHost($gluu_provider);
421  $register_site->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
422  $register_site->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
423  $register_site->setRequestContacts([$gluu_config['admin_email']]);
424  $register_site->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
425  $get_scopes = json_encode($obj->scopes_supported);
426  if(!empty($obj->acr_values_supported)){
427  $get_acr = json_encode($obj->acr_values_supported);
428  $get_acr = $this->update_query('gluu/oxd/gluu_acr', $get_acr);
429  $register_site->setRequestAcrValues($gluu_config['config_acr']);
430  }
431  else{
432  $register_site->setRequestAcrValues($gluu_config['config_acr']);
433  }
434  if(!empty($obj->scopes_supported)){
435  $get_scopes = json_encode($obj->scopes_supported);
436  $get_scopes = $this->update_query('gluu/oxd/gluu_scopes', $get_scopes);
437  $register_site->setRequestScope($obj->scopes_supported);
438  }
439  else{
440  $register_site->setRequestScope($gluu_config['config_scopes']);
441  }
442  $register_site->setRequestClientId($_POST['gluu_client_id']);
443  $register_site->setRequestClientSecret($_POST['gluu_client_secret']);
444  $status = $register_site->request();
445  if ($status['message'] == 'invalid_op_host') {
446  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
447  $this->redirect("*/*/index");
448  return;
449  }
450  if (!$status['status']) {
451  $datahelper->displayMessage('Can not connect to the oxd server. Please check the oxd-config.json file to make sure you have entered the correct port and the oxd server is operational.',"ERROR");
452  $this->redirect("*/*/index");
453  return;
454  }
455  if ($status['message'] == 'internal_error') {
456  $datahelper->displayMessage('ERROR: '.$status['error_message'],"ERROR");
457  $this->redirect("*/*/index");
458  return;
459  }
460  $gluu_oxd_id = $register_site->getResponseOxdId();
461  if ($gluu_oxd_id) {
462  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', $gluu_oxd_id);
463  $gluu_provider = $register_site->getResponseOpHost();
464  $gluu_provider1 = $this->update_query('gluu/oxd/gluu_provider', $gluu_provider);
465  /* for admin login*/
466  $register_site_admin = $this->getOxdRegisterSiteHelper();
467  $register_site_admin->setRequestOpHost($gluu_provider);
468  $register_site_admin->setRequestAuthorizationRedirectUri(Mage::getBaseUrl().'admin?option=getOxdAdminLogin');
469  $register_site_admin->setRequestLogoutRedirectUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
470  $register_site_admin->setRequestContacts([$gluu_config['admin_email']]);
471  $register_site_admin->setRequestClientLogoutUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
472  $register_site_admin->setRequestAcrValues($gluu_config['config_acr']);
473  $register_site_admin->setRequestScope($gluu_config['config_scopes']);
474  $register_site_admin->setRequestClientId(trim($_POST['gluu_client_id']));
475  $register_site_admin->setRequestClientSecret(trim($_POST['gluu_client_secret']));
476  $register_site_admin->request();
477  $gluu_oxd_id_admin = $this->update_query('gluu/oxd/gluu_oxd_id_admin', $register_site_admin->getResponseOxdId());
478  /*admin part end*/
479  $datahelper->displayMessage('Your settings are saved successfully.',"SUCCESS");
480  $this->redirect("*/*/index");
481  return;
482  } else {
483  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
484  $this->redirect("*/*/index");
485  return;
486  }
487  }
488  else{
489  $_SESSION['openid_error'] = 'Error505.';
490  $this->redirect("*/*/index");
491  return;
492  }
493  }
494  else{
495 
496  $gluu_config = json_encode(array(
497  "gluu_oxd_port" =>trim($_POST['gluu_oxd_port']),
498  "admin_email" => Mage::getSingleton('admin/session')->getUser()->getEmail(),
499  "authorization_redirect_uri" => Mage::getBaseUrl().'customer/account/login?option=getOxdSocialLogin',
500  "post_logout_redirect_uri" => Mage::helper('customer')->getLogoutUrl(),
501  "config_scopes" => ["openid","profile","email"],
502  "gluu_client_id" => "",
503  "gluu_client_secret" => "",
504  "config_acr" => []
505  ));
506  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', $gluu_config),true);
507  if(trim($_POST['gluu_users_can_register'])==2){
508  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
509  array_push($config['config_scopes'],'permission');
510  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
511  }
513  $register_site->setRequestOpHost($gluu_provider);
514  $register_site->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
515  $register_site->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
516  $register_site->setRequestContacts([$gluu_config['admin_email']]);
517  $register_site->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
518  $get_scopes = json_encode($obj->scopes_supported);
519  if(!empty($obj->acr_values_supported)){
520  $get_acr = json_encode($obj->acr_values_supported);
521  $get_acr = json_decode($this->update_query('gluu/oxd/gluu_acr', $get_acr));
522  $register_site->setRequestAcrValues($gluu_config['config_acr']);
523  }
524  else{
525  $register_site->setRequestAcrValues($gluu_config['config_acr']);
526  }
527  if(!empty($obj->scopes_supported)){
528  $get_scopes = json_encode($obj->scopes_supported);
529  $get_scopes = json_decode($this->update_query('gluu/oxd/gluu_scopes', $get_scopes));
530  $register_site->setRequestScope($obj->scopes_supported);
531  }
532  else{
533  $register_site->setRequestScope($gluu_config['config_scopes']);
534  }
535  $status = $register_site->request();
536  //var_dump($status);exit;
537  if ($status['message'] == 'invalid_op_host') {
538  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
539  $this->redirect("*/*/index");
540  return;
541  }
542  if (!$status['status']) {
543  $datahelper->displayMessage('Can not connect to the oxd server. Please check the oxd-config.json file to make sure you have entered the correct port and the oxd server is operational.',"ERROR");
544  $this->redirect("*/*/index");
545  return;
546  }
547  if ($status['message'] == 'internal_error') {
548  $datahelper->displayMessage('ERROR: '.$status['error_message'],"ERROR");
549  $this->redirect("*/*/index");
550  return;
551  }
552  $gluu_oxd_id = $register_site->getResponseOxdId();
553  if ($gluu_oxd_id) {
554  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', $gluu_oxd_id);
555  $gluu_provider = $register_site->getResponseOpHost();
556  $gluu_provider1 = $this->update_query('gluu/oxd/gluu_provider', $gluu_provider);
557  /* for admin login*/
558  $register_site_admin = $this->getOxdRegisterSiteHelper();
559  $register_site_admin->setRequestOpHost($gluu_provider);
560  $register_site_admin->setRequestAuthorizationRedirectUri(Mage::getBaseUrl().'admin?option=getOxdAdminLogin');
561  $register_site_admin->setRequestLogoutRedirectUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
562  $register_site_admin->setRequestContacts([$gluu_config['admin_email']]);
563  $register_site_admin->setRequestClientLogoutUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
564  $register_site_admin->setRequestAcrValues($gluu_config['config_acr']);
565  $register_site_admin->setRequestScope($gluu_config['config_scopes']);
566  $register_site_admin->request();
567  $gluu_oxd_id_admin = $this->update_query('gluu/oxd/gluu_oxd_id_admin', $register_site_admin->getResponseOxdId());
568  /*admin part end*/
569  $datahelper->displayMessage('Your settings are saved successfully.',"SUCCESS");
570  $this->redirect("*/*/index");
571  return;
572  }
573  else {
574  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
575  $this->redirect("*/*/index");
576  return;
577  }
578  }
579  }
580  else{
581  $datahelper->displayMessage('Please enter correct URI of the OpenID Provider.',"ERROR");
582  $this->redirect("*/*/index");
583  return;
584  }
585 
586  }
587  else{
588  $gluu_config = json_encode(array(
589  "gluu_oxd_port" =>trim($_POST['gluu_oxd_port']),
590  "admin_email" => Mage::getSingleton('admin/session')->getUser()->getEmail(),
591  "authorization_redirect_uri" => Mage::getBaseUrl().'customer/account/login?option=getOxdSocialLogin',
592  "post_logout_redirect_uri" => Mage::helper('customer')->getLogoutUrl(),
593  "config_scopes" => ["openid","profile","email"],
594  "gluu_client_id" => "",
595  "gluu_client_secret" => "",
596  "config_acr" => []
597  ));
598  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', $gluu_config),true);
599  if(trim($_POST['gluu_users_can_register'])==2){
600  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
601  array_push($config['config_scopes'],'permission');
602  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
603  }
605  $register_site->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
606  $register_site->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
607  $register_site->setRequestContacts([$gluu_config['admin_email']]);
608  $register_site->setRequestAcrValues($gluu_config['config_acr']);
609  $register_site->setRequestScope($gluu_config['config_scopes']);
610  $register_site->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
611  $status = $register_site->request();
612 
613  if ($status['message'] == 'invalid_op_host') {
614  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
615  $this->redirect("*/*/index");
616  return;
617  }
618  if (!$status['status']) {
619  $datahelper->displayMessage('Can not connect to the oxd server. Please check the oxd-config.json file to make sure you have entered the correct port and the oxd server is operational.',"ERROR");
620  $this->redirect("*/*/index");
621  return;
622  }
623  if ($status['message'] == 'internal_error') {
624  $datahelper->displayMessage('ERROR: '.$status['error_message'],"ERROR");
625  $this->redirect("*/*/index");
626  return;
627  }
628  $gluu_oxd_id = $register_site->getResponseOxdId();
629  if ($gluu_oxd_id) {
630  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', $gluu_oxd_id);
631  $gluu_provider = $register_site->getResponseOpHost();
632  $gluu_provider1 = $this->update_query('gluu/oxd/gluu_provider', $gluu_provider);
633  $arrContextOptions=array(
634  "ssl"=>array(
635  "verify_peer"=>false,
636  "verify_peer_name"=>false,
637  ),
638  );
639  $json = file_get_contents($gluu_provider.'/.well-known/openid-configuration', false, stream_context_create($arrContextOptions));
640  $obj = json_decode($json);
642  $register_site->setRequestOpHost($gluu_provider);
643  $register_site->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
644  $register_site->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
645  $register_site->setRequestContacts([$gluu_config['admin_email']]);
646  $register_site->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
647 
648  $get_scopes = json_encode($obj->scopes_supported);
649  if(!empty($obj->acr_values_supported)){
650  $get_acr = json_encode($obj->acr_values_supported);
651  $get_acr = $this->update_query('gluu/oxd/gluu_acr', $get_acr);
652  $register_site->setRequestAcrValues($gluu_config['config_acr']);
653  }
654  else{
655  $register_site->setRequestAcrValues($gluu_config['config_acr']);
656  }
657  if(!empty($obj->scopes_supported)){
658  $get_scopes = json_encode($obj->scopes_supported);
659  $get_scopes = $this->update_query('gluu/oxd/gluu_scopes', $get_scopes);
660  $register_site->setRequestScope($obj->scopes_supported);
661  }
662  else{
663  $register_site->setRequestScope($gluu_config['config_scopes']);
664  }
665  $status = $register_site->request();
666  if ($status['message'] == 'invalid_op_host') {
667  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
668  $this->redirect("*/*/index");
669  return;
670  }
671  if (!$status['status']) {
672  $datahelper->displayMessage('Can not connect to the oxd server. Please check the oxd-config.json file to make sure you have entered the correct port and the oxd server is operational.',"ERROR");
673  $this->redirect("*/*/index");
674  return;
675  }
676  if ($status['message'] == 'internal_error') {
677  $datahelper->displayMessage('ERROR: '.$status['error_message'],"ERROR");
678  $this->redirect("*/*/index");
679  return;
680  }
681  $gluu_oxd_id = $register_site->getResponseOxdId();
682  if ($gluu_oxd_id) {
683  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', $gluu_oxd_id);
684  /* for admin login*/
685  $register_site_admin = $this->getOxdRegisterSiteHelper();
686  $register_site_admin->setRequestOpHost($gluu_provider);
687  $register_site_admin->setRequestAuthorizationRedirectUri(Mage::getBaseUrl().'admin?option=getOxdAdminLogin');
688  $register_site_admin->setRequestLogoutRedirectUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
689  $register_site_admin->setRequestContacts([$gluu_config['admin_email']]);
690  $register_site_admin->setRequestClientLogoutUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
691  $register_site_admin->setRequestAcrValues($gluu_config['config_acr']);
692  $register_site_admin->setRequestScope($gluu_config['config_scopes']);
693  $register_site_admin->request();
694  $gluu_oxd_id_admin = $this->update_query('gluu/oxd/gluu_oxd_id_admin', $register_site_admin->getResponseOxdId());
695  /*admin part end*/
696  $datahelper->displayMessage('Your settings are saved successfully.',"SUCCESS");
697  $this->redirect("*/*/index");
698  return;
699  }
700  else {
701  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
702  $this->redirect("*/*/index");
703  return;
704  }
705  }
706  else {
707  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
708  $this->redirect("*/*/index");
709  return;
710  }
711  }
712  }
713  else if( isset( $_REQUEST['form_key'] ) and strpos( $_REQUEST['form_key_value'], 'general_oxd_id_reset' ) !== false and !empty($_REQUEST['resetButton'])) {
714 
715  unset($_SESSION['openid_error']);
716 
717  $datahelper->displayMessage('Configurations deleted Successfully.',"SUCCESS");
718  $this->resetConfigAction();
719  }
720  else if (isset( $_REQUEST['form_key'] ) and strpos( $_REQUEST['form_key_value'], 'general_oxd_edit' ) !== false) {
721  if(trim($_POST['gluu_user_role'])){
722  $this->update_query('gluu/oxd/gluu_user_role', trim($_POST['gluu_user_role']));
723  }
724  if(trim($_POST['gluu_users_can_register'])==1){
725  $this->update_query('gluu/oxd/gluu_users_can_register', trim($_POST['gluu_users_can_register']));
726  if(!empty(array_values(array_filter($_POST['gluu_new_role'])))){
727  $this->update_query('gluu/oxd/gluu_new_role', json_encode(array_values(array_filter($_POST['gluu_new_role']))));
728  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
729  array_push($config['config_scopes'],'permission');
730  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
731  }else{
732  $this->update_query('gluu/oxd/gluu_new_role', json_encode(null));
733  }
734  }
735  if($_POST['gluu_users_can_register']==2){
736  $this->update_query('gluu/oxd/gluu_users_can_register', 2);
737  if(!empty(array_values(array_filter($_POST['gluu_new_role'])))){
738  $this->update_query('gluu/oxd/gluu_new_role', json_encode(array_values(array_filter($_POST['gluu_new_role']))));
739  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
740  array_push($config['config_scopes'],'permission');
741  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
742  }else{
743  $this->update_query('gluu/oxd/gluu_new_role', json_encode(null));
744  $datahelper->displayMessage('Please enter a role to use for automatic registration or choose one of the other enrollment options.',"ERROR");
745  $this->redirect("*/*/general");
746  return;
747  }
748  }
749  if($_POST['gluu_users_can_register']==3){
750  $this->update_query('gluu/oxd/gluu_users_can_register', 3);
751 
752  if(!empty(array_values(array_filter($_POST['gluu_new_role'])))){
753  $this->update_query('gluu/oxd/gluu_new_role', json_encode(array_values(array_filter($_POST['gluu_new_role']))));
754  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
755  array_push($config['config_scopes'],'permission');
756  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
757  }else{
758  $this->update_query('gluu/oxd/gluu_new_role', json_encode(null));
759  }
760  }
761  $get_scopes = json_encode(array("openid", "profile","email"));
762  $get_scopes = $this->update_query('gluu/oxd/get_scopes', $get_scopes);
763 
764  $gluu_acr = json_encode(array("none"));
765  $gluu_acr = $this->update_query('gluu/oxd/gluu_acr', $gluu_acr);
766 
767  if(!isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] != "on") {
768  $datahelper->displayMessage('OpenID Connect requires https. This extension will not work if your website uses http only.',"ERROR");
769  $this->redirect("*/*/indexEdit");
770  return;
771  }
772  if (empty(trim($_POST['gluu_oxd_port']))) {
773  $datahelper->displayMessage('All the fields are required. Please enter valid entries.',"ERROR");
774  $this->redirect("*/*/indexEdit");
775  return;
776  }
777  else if (intval($_POST['gluu_oxd_port']) > 65535 && intval($_POST['oxd_port']) < 0) {
778  $datahelper->displayMessage('Enter your oxd host port (Min. number 0, Max. number 65535).',"ERROR");
779  $this->redirect("*/*/indexEdit");
780  return;
781  }
782  if (!empty(trim($_POST['gluu_custom_logout']))) {
783  if (filter_var(trim($_POST['gluu_custom_logout']), FILTER_VALIDATE_URL) === false) {
784  $datahelper->displayMessage('Please enter valid Custom URI.',"ERROR");
785  }else{
786  $this->update_query('gluu/oxd/gluu_custom_logout', trim($_POST['gluu_custom_logout']));
787  }
788  }else{
789  $this->update_query('gluu/oxd/gluu_custom_logout', '');
790  }
791  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', '');
792  $gluu_config = array(
793  "gluu_oxd_port" =>$_POST['gluu_oxd_port'],
794  "admin_email" => Mage::getSingleton('admin/session')->getUser()->getEmail(),
795  "authorization_redirect_uri" => Mage::getBaseUrl().'customer/account/login?option=getOxdSocialLogin',
796  "post_logout_redirect_uri" => Mage::helper('customer')->getLogoutUrl(),
797  "config_scopes" => ["openid","profile","email"],
798  "gluu_client_id" => "",
799  "gluu_client_secret" => "",
800  "config_acr" => []
801  );
802 
803  $gluu_config = $this->update_query('gluu/oxd/gluu_config', json_encode($gluu_config));
804  if($_POST['gluu_users_can_register']==2){
805  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
806  array_push($config['config_scopes'],'permission');
807  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
808  }
809  $gluu_provider = $this->select_query('gluu/oxd/gluu_provider');
810  if (!empty($gluu_provider)) {
811  $arrContextOptions=array(
812  "ssl"=>array(
813  "verify_peer"=>false,
814  "verify_peer_name"=>false,
815  ),
816  );
817  $json = file_get_contents($gluu_provider.'/.well-known/openid-configuration', false, stream_context_create($arrContextOptions));
818  $obj = json_decode($json);
819  if(!empty($obj->userinfo_endpoint)){
820  if(empty($obj->registration_endpoint)){
821  if(isset($_POST['gluu_client_id']) and !empty($_POST['gluu_client_id']) and
822  isset($_POST['gluu_client_secret']) and !empty($_POST['gluu_client_secret']) and !$obj->registration_endpoint){
823  $gluu_config = array(
824  "gluu_oxd_port" => trim($_POST['gluu_oxd_port']),
825  "admin_email" => Mage::getSingleton('admin/session')->getUser()->getEmail(),
826  "authorization_redirect_uri" => Mage::getBaseUrl().'customer/account/login?option=getOxdSocialLogin',
827  "post_logout_redirect_uri" => Mage::helper('customer')->getLogoutUrl(),
828  "gluu_client_id" => trim($_POST['gluu_client_id']),
829  "gluu_client_secret" => trim($_POST['gluu_client_secret']),
830  "config_scopes" => ["openid", "profile","email"],
831  "config_acr" => []
832  );
833  $gluu_config1 = $this->update_query('gluu/oxd/gluu_config', json_encode($gluu_config));
834  if($_POST['gluu_users_can_register']==2){
835  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
836  array_push($config['config_scopes'],'permission');
837  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
838  }
840  $register_site->setRequestOpHost($gluu_provider);
841  $register_site->setRequestAcrValues($gluu_config['config_acr']);
842  $register_site->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
843  $register_site->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
844  $register_site->setRequestContacts([$GLOBALS['current_user']->email1]);
845  $register_site->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
846  if(!empty($obj->acr_values_supported)){
847  $get_acr = json_encode($obj->acr_values_supported);
848  $gluu_config = $this->update_query('gluu/oxd/gluu_acr', $gluu_acr);
849  }
850  if(!empty($obj->scopes_supported)){
851  $get_scopes = json_encode($obj->scopes_supported);
852  $gluu_config = $this->update_query('gluu/oxd/get_scopes', $get_scopes);
853  $register_site->setRequestScope($obj->scopes_supported);
854  }else{
855  $register_site->setRequestScope($gluu_config['config_scopes']);
856  }
857  $register_site->setRequestClientId(trim($_POST['gluu_client_id']));
858  $register_site->setRequestClientSecret(trim($_POST['gluu_client_secret']));
859  $status = $register_site->request();
860  if ($status['message'] == 'invalid_op_host') {
861  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
862  $this->redirect("*/*/indexEdit");
863  return;
864  }
865  if (!$status['status']) {
866  $datahelper->displayMessage('Can not connect to the oxd server. Please check the oxd-config.json file to make sure you have entered the correct port and the oxd server is operational.',"ERROR");
867  $this->redirect("*/*/indexEdit");
868  return;
869  }
870  if ($status['message'] == 'internal_error') {
871  $datahelper->displayMessage('ERROR: '.$status['error_message'],"ERROR");
872  $this->redirect("*/*/indexEdit");
873  return;
874  }
875  $gluu_oxd_id = $register_site->getResponseOxdId();
876  if ($gluu_oxd_id) {
877  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', $gluu_oxd_id);
878  $gluu_provider = $register_site->getResponseOpHost();
879  $gluu_provider1 = $this->update_query('gluu/oxd/gluu_provider', $gluu_provider);
880  /* for admin login*/
881  /*$register_site_admin = $this->getOxdRegisterSiteHelper();
882  $register_site_admin->setRequestOpHost($gluu_provider);
883  $register_site_admin->setRequestAuthorizationRedirectUri(Mage::getBaseUrl().'admin?option=getOxdAdminLogin');
884  $register_site_admin->setRequestLogoutRedirectUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
885  $register_site_admin->setRequestContacts([$gluu_config['admin_email']]);
886  $register_site_admin->setRequestClientLogoutUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
887  $register_site_admin->setRequestAcrValues($gluu_config['config_acr']);
888  $register_site_admin->setRequestScope($gluu_config['config_scopes']);
889  $register_site_admin->setRequestClientId(trim($_POST['gluu_client_id']));
890  $register_site_admin->setRequestClientSecret(trim($_POST['gluu_client_secret']));
891  $register_site_admin->request();
892  $gluu_oxd_id_admin = $this->update_query('gluu/oxd/gluu_oxd_id_admin', $register_site_admin->getResponseOxdId());*/
893  /*admin part end*/
894  $datahelper->displayMessage('Your settings are saved successfully.',"SUCCESS");
895  $this->redirect("*/*/index");
896  return;
897  } else {
898  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
899  $this->redirect("*/*/index");
900  return;
901  }
902  }
903  else{
904  $_SESSION['openid_error_edit'] = 'Error506';
905  $this->redirect("*/*/indexEdit");
906  return;
907  }
908  }
909  else{
910  $gluu_config = array(
911  "gluu_oxd_port" =>trim($_POST['gluu_oxd_port']),
912  "admin_email" => Mage::getSingleton('admin/session')->getUser()->getEmail(),
913  "authorization_redirect_uri" => Mage::getBaseUrl().'customer/account/login?option=getOxdSocialLogin',
914  "post_logout_redirect_uri" => Mage::helper('customer')->getLogoutUrl(),
915  "config_scopes" => ["openid","profile","email"],
916  "gluu_client_id" => "",
917  "gluu_client_secret" => "",
918  "config_acr" => []
919  );
920  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($gluu_config)),true);
921  if($_POST['gluu_users_can_register']==2){
922  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
923  array_push($config['config_scopes'],'permission');
924  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
925  }
927  $register_site->setRequestOpHost($gluu_provider);
928  $register_site->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
929  $register_site->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
930  $register_site->setRequestContacts([$gluu_config['admin_email']]);
931  $register_site->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
932  $get_scopes = json_encode($obj->scopes_supported);
933  if(!empty($obj->acr_values_supported)){
934  $get_acr = json_encode($obj->acr_values_supported);
935  $get_acr = json_decode($this->update_query('gluu/oxd/gluu_acr', $get_acr));
936  $register_site->setRequestAcrValues($gluu_config['config_acr']);
937  }
938  else{
939  $register_site->setRequestAcrValues($gluu_config['config_acr']);
940  }
941  if(!empty($obj->scopes_supported)){
942  $get_scopes = json_encode($obj->scopes_supported);
943  $get_scopes = json_decode($this->update_query('gluu/oxd/gluu_scopes', $get_scopes));
944  $register_site->setRequestScope($obj->scopes_supported);
945  }
946  else{
947  $register_site->setRequestScope($gluu_config['config_scopes']);
948  }
949  $status = $register_site->request();
950  //var_dump($status);exit;
951  if ($status['message'] == 'invalid_op_host') {
952  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
953  $this->redirect("*/*/index");
954  return;
955  }
956  if (!$status['status']) {
957  $datahelper->displayMessage('Can not connect to the oxd server. Please check the oxd-config.json file to make sure you have entered the correct port and the oxd server is operational.',"ERROR");
958  $this->redirect("*/*/index");
959  return;
960  }
961  if ($status['message'] == 'internal_error') {
962  $datahelper->displayMessage('ERROR: '.$status['error_message'],"ERROR");
963  $this->redirect("*/*/index");
964  return;
965  }
966  $gluu_oxd_id = $register_site->getResponseOxdId();
967  if ($gluu_oxd_id) {
968  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', $gluu_oxd_id);
969  $gluu_provider = $register_site->getResponseOpHost();
970  $gluu_provider1 = $this->update_query('gluu/oxd/gluu_provider', $gluu_provider);
971  /* for admin login*/
972  $register_site_admin = $this->getOxdRegisterSiteHelper();
973  $register_site_admin->setRequestOpHost($gluu_provider);
974  $register_site_admin->setRequestAuthorizationRedirectUri(Mage::getBaseUrl().'admin?option=getOxdAdminLogin');
975  $register_site_admin->setRequestLogoutRedirectUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
976  $register_site_admin->setRequestContacts([$gluu_config['admin_email']]);
977  $register_site_admin->setRequestClientLogoutUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
978  $register_site_admin->setRequestAcrValues($gluu_config['config_acr']);
979  $register_site_admin->setRequestScope($gluu_config['config_scopes']);
980  $register_site_admin->request();
981  $gluu_oxd_id_admin = $this->update_query('gluu/oxd/gluu_oxd_id_admin', $register_site_admin->getResponseOxdId());
982  /*admin part end*/
983  $datahelper->displayMessage('Your settings are saved successfully.',"SUCCESS");
984  $this->redirect("*/*/index");
985  return;
986  }
987  else {
988  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
989  $this->redirect("*/*/index");
990  return;
991  }
992  }
993  }
994  else{
995  $datahelper->displayMessage('Please enter correct URI of the OpenID Provider.',"ERROR");
996  $this->redirect("*/*/indexEdit");
997  return;
998  }
999  }
1000  else{
1001  $gluu_config = array(
1002  "gluu_oxd_port" =>trim($_POST['gluu_oxd_port']),
1003  "admin_email" => Mage::getSingleton('admin/session')->getUser()->getEmail(),
1004  "authorization_redirect_uri" => Mage::getBaseUrl().'customer/account/login?option=getOxdSocialLogin',
1005  "post_logout_redirect_uri" => Mage::helper('customer')->getLogoutUrl(),
1006  "config_scopes" => ["openid","profile","email"],
1007  "gluu_client_id" => "",
1008  "gluu_client_secret" => "",
1009  "config_acr" => []
1010  );
1011  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($gluu_config)),true);
1012  if($_POST['gluu_users_can_register']==2){
1013  $config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
1014  array_push($config['config_scopes'],'permission');
1015  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', json_encode($config)),true);
1016  }
1018  $register_site->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
1019  $register_site->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
1020  $register_site->setRequestContacts([$gluu_config['admin_email']]);
1021  $register_site->setRequestAcrValues($gluu_config['config_acr']);
1022  $register_site->setRequestScope($gluu_config['config_scopes']);
1023  $register_site->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
1024  $status = $register_site->request();
1025 
1026  if ($status['message'] == 'invalid_op_host') {
1027  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
1028  $this->redirect("*/*/index");
1029  return;
1030  }
1031  if (!$status['status']) {
1032  $datahelper->displayMessage('Can not connect to the oxd server. Please check the oxd-config.json file to make sure you have entered the correct port and the oxd server is operational.',"ERROR");
1033  $this->redirect("*/*/index");
1034  return;
1035  }
1036  if ($status['message'] == 'internal_error') {
1037  $datahelper->displayMessage('ERROR: '.$status['error_message'],"ERROR");
1038  $this->redirect("*/*/index");
1039  return;
1040  }
1041  $gluu_oxd_id = $register_site->getResponseOxdId();
1042  if ($gluu_oxd_id) {
1043  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', $gluu_oxd_id);
1044  $gluu_provider = $register_site->getResponseOpHost();
1045  $gluu_provider1 = $this->update_query('gluu/oxd/gluu_provider', $gluu_provider);
1046  $arrContextOptions=array(
1047  "ssl"=>array(
1048  "verify_peer"=>false,
1049  "verify_peer_name"=>false,
1050  ),
1051  );
1052  $json = file_get_contents($gluu_provider.'/.well-known/openid-configuration', false, stream_context_create($arrContextOptions));
1053  $obj = json_decode($json);
1055  $register_site->setRequestOpHost($gluu_provider);
1056  $register_site->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
1057  $register_site->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
1058  $register_site->setRequestContacts([$gluu_config['admin_email']]);
1059  $register_site->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
1060 
1061  $get_scopes = json_encode($obj->scopes_supported);
1062  if(!empty($obj->acr_values_supported)){
1063  $get_acr = json_encode($obj->acr_values_supported);
1064  $get_acr = $this->update_query('gluu/oxd/gluu_acr', $get_acr);
1065  $register_site->setRequestAcrValues($gluu_config['config_acr']);
1066  }
1067  else{
1068  $register_site->setRequestAcrValues($gluu_config['config_acr']);
1069  }
1070  if(!empty($obj->scopes_supported)){
1071  $get_scopes = json_encode($obj->scopes_supported);
1072  $get_scopes = $this->update_query('gluu/oxd/gluu_scopes', $get_scopes);
1073  $register_site->setRequestScope($obj->scopes_supported);
1074  }
1075  else{
1076  $register_site->setRequestScope($gluu_config['config_scopes']);
1077  }
1078  $status = $register_site->request();
1079  if ($status['message'] == 'invalid_op_host') {
1080  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json',"ERROR");
1081  $this->redirect("*/*/index");
1082  return;
1083  }
1084  if (!$status['status']) {
1085  $datahelper->displayMessage('Can not connect to the oxd server. Please check the oxd-config.json file to make sure you have entered the correct port and the oxd server is operational.',"ERROR");
1086  $this->redirect("*/*/index");
1087  return;
1088  }
1089  if ($status['message'] == 'internal_error') {
1090  $datahelper->displayMessage('ERROR: '.$status['error_message'],"ERROR");
1091  $this->redirect("*/*/index");
1092  return;
1093  }
1094  $gluu_oxd_id = $register_site->getResponseOxdId();
1095  if ($gluu_oxd_id) {
1096  $gluu_oxd_id = $this->update_query('gluu/oxd/gluu_oxd_id', $gluu_oxd_id);
1097  /* for admin login*/
1098  $register_site_admin = $this->getOxdRegisterSiteHelper();
1099  $register_site_admin->setRequestOpHost($gluu_provider);
1100  $register_site_admin->setRequestAuthorizationRedirectUri(Mage::getBaseUrl().'admin?option=getOxdAdminLogin');
1101  $register_site_admin->setRequestLogoutRedirectUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
1102  $register_site_admin->setRequestContacts([$gluu_config['admin_email']]);
1103  $register_site_admin->setRequestClientLogoutUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
1104  $register_site_admin->setRequestAcrValues($gluu_config['config_acr']);
1105  $register_site_admin->setRequestScope($gluu_config['config_scopes']);
1106  $register_site_admin->request();
1107  $gluu_oxd_id_admin = $this->update_query('gluu/oxd/gluu_oxd_id_admin', $register_site_admin->getResponseOxdId());
1108  /*admin part end*/
1109  $datahelper->displayMessage('Your settings are saved successfully.',"SUCCESS");
1110  $this->redirect("*/*/index");
1111  return;
1112  }
1113  else {
1114  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
1115  $this->redirect("*/*/index");
1116  return;
1117  }
1118  }
1119  else {
1120  $datahelper->displayMessage('ERROR: OpenID Provider host is required if you don\'t provide it in oxd-default-site-config.json.',"ERROR");
1121  $this->redirect("*/*/index");
1122  return;
1123  }
1124  }
1125  }
1126  else if( isset( $_REQUEST['form_key'] ) and strpos( $_REQUEST['form_key_value'], 'openid_config_page' ) !== false ) {
1127  $params = $_REQUEST;
1128  $message_success = '';
1129 
1130  if($_POST['send_user_type']){
1131  $gluu_auth_type = trim($_POST['send_user_type']);
1132  $gluu_auth_type = $this->update_query('gluu/oxd/gluu_auth_type', $gluu_auth_type);
1133  }else{
1134  $gluu_auth_type = $this->update_query('gluu/oxd/gluu_auth_type', 'default');
1135  }
1136  $gluu_send_user_check = trim($_POST['send_user_check']);
1137  $gluu_send_user_check = $this->update_query('gluu/oxd/gluu_send_user_check', $gluu_send_user_check);
1138 
1139  $gluu_send_admin_check = trim($_POST['send_admin_check']);
1140  $gluu_send_admin_check = $this->update_query('gluu/oxd/gluu_send_admin_check', $gluu_send_admin_check);
1141  if(!empty($params['scope']) && isset($params['scope'])){
1142  $gluu_config = json_decode($this->select_query("gluu/oxd/gluu_config"),true);
1143  $gluu_config['config_scopes'] = $params['scope'];
1144  $gluu_config = json_encode($gluu_config);
1145  $gluu_config = json_decode($this->update_query('gluu/oxd/gluu_config', $gluu_config),true);
1146  }
1147  if(!empty($params['scope_name']) && isset($params['scope_name'])){
1148  $get_scopes = json_decode($this->select_query('gluu/oxd/gluu_scopes'),true);
1149  foreach($params['scope_name'] as $scope){
1150  if($scope && !in_array($scope,$get_scopes)){
1151  array_push($get_scopes, $scope);
1152  }
1153  }
1154  $get_scopes = json_encode($get_scopes);
1155  $get_scopes = json_decode($this->update_query('gluu/oxd/gluu_scopes', $get_scopes),true);
1156  }
1157  $gluu_acr = json_decode($this->select_query('gluu/oxd/gluu_acr'),true);
1158 
1159  if(!empty($params['acr_name']) && isset($params['acr_name'])){
1160  $get_acr = json_decode($this->select_query('gluu/oxd/gluu_acr'),true);
1161  foreach($params['acr_name'] as $scope){
1162  if($scope && !in_array($scope,$get_acr)){
1163  array_push($get_acr, $scope);
1164  }
1165  }
1166  $get_acr = json_encode($get_acr);
1167  $get_acr = json_decode($this->update_query('gluu/oxd/gluu_acr', $get_acr),true);
1168  }
1169  $gluu_config = json_decode($this->select_query('gluu/oxd/gluu_config'),true);
1170  $gluu_oxd_id = $this->select_query('gluu/oxd/gluu_oxd_id');
1172  $update_site_registration->setRequestOxdId($gluu_oxd_id);
1173  $update_site_registration->setRequestAcrValues($gluu_config['acr_values']);
1174  $update_site_registration->setRequestAuthorizationRedirectUri($gluu_config['authorization_redirect_uri']);
1175  $update_site_registration->setRequestLogoutRedirectUri($gluu_config['post_logout_redirect_uri']);
1176  $update_site_registration->setRequestContacts([$gluu_config['admin_email']]);
1177  $update_site_registration->setRequestClientLogoutUri($gluu_config['post_logout_redirect_uri']);
1178  $update_site_registration->setRequestScope($gluu_config['config_scopes']);
1179  $status = $update_site_registration->request();
1180  $new_oxd_id = $update_site_registration->getResponseOxdId();
1181  if($new_oxd_id){
1182  $get_scopes = $this->update_query('gluu/oxd/gluu_oxd_id', $new_oxd_id);
1183  }
1184 
1185  $datahelper->displayMessage('Your OpenID connect configuration has been saved.',"SUCCESS");
1186  $this->redirect("*/*/openidconfigpage");
1187  return;
1188  }
1189  }
select_query($action)
Definition: IndexController.php:1227
getDataHelper()
Definition: IndexController.php:287
redirect($url)
Definition: IndexController.php:271
$update_site_registration
Definition: Update_site_registration_test.php:7
$register_site
Definition: Register_site_test.php:7
update_query($action, $value)
Definition: IndexController.php:1237
resetConfigAction()
Definition: IndexController.php:1190
$_SESSION['id_token']
Definition: Get_tokens_by_code_test.php:15
getOxdUpdateSiteRegistrationHelper()
Definition: IndexController.php:158
getOxdRegisterSiteHelper()
Definition: IndexController.php:65

◆ getBaseUrl()

GluuOxd_Gluufolder_Adminhtml_IndexController::getBaseUrl ( )
70  {
71  // output: /myproject/index.php
72  $currentPath = $_SERVER['PHP_SELF'];
73 
74  // output: Array ( [dirname] => /myproject [basename] => index.php [extension] => php [filename] => index )
75  $pathInfo = pathinfo($currentPath);
76 
77  // output: localhost
78  $hostName = $_SERVER['HTTP_HOST'];
79 
80  // output: http://
81  $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
82 
83  // return: http://localhost/myproject/
84  return $protocol.$hostName.$pathInfo['dirname']."/";
85  }

◆ getDataHelper()

GluuOxd_Gluufolder_Adminhtml_IndexController::getDataHelper ( )
287  {
288  return Mage::helper($this->dataHelper);
289  }

◆ getIconImage()

GluuOxd_Gluufolder_Adminhtml_IndexController::getIconImage (   $image)

getting icone image link

89  {
90  $url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
91  return $url.'adminhtml/default/default/GluuOxd_Openid/images/icons/'.$image.'.png';
92  }
$url
Definition: IndexController.php:42

◆ getId()

GluuOxd_Gluufolder_Adminhtml_IndexController::getId ( )
private
1224  {
1225  return $this->getSession()->getUser()->getUserId();
1226  }
getSession()
Definition: IndexController.php:265

◆ getOxdRegisterSiteHelper()

GluuOxd_Gluufolder_Adminhtml_IndexController::getOxdRegisterSiteHelper ( )
戻り値
string
66  {
67  return Mage::helper($this->oxdRegisterSiteHelper);
68  }

◆ getOxdUpdateSiteRegistrationHelper()

GluuOxd_Gluufolder_Adminhtml_IndexController::getOxdUpdateSiteRegistrationHelper ( )
戻り値
string
159  {
160  return Mage::helper($this->oxdUpdateSiteRegistrationHelper);
161  }

◆ getSession()

GluuOxd_Gluufolder_Adminhtml_IndexController::getSession ( )
private
戻り値
getting session
265  {
266  return Mage::getSingleton('admin/session');
267  }

◆ indexAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::indexAction ( )
戻り値
gluuOxd admin index page
165  {
166 
167  $this->loadLayout();
168  $this->_addContent($this->getLayout()->createBlock('core/template'));
169  $this->renderLayout();
170  }

◆ insert_query()

GluuOxd_Gluufolder_Adminhtml_IndexController::insert_query (   $action,
  $value 
)
1231  {
1232  $storeConfig = new Mage_Core_Model_Config();
1233  $storeConfig ->saveConfig($action,$value, 'default', 0);
1234  $result = Mage::getStoreConfig($action);
1235  return $result;
1236  }

◆ logoutAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::logoutAction ( )

Administrator logout action

97  {
98  if(isset($_SESSION['admin_session_in_op'])){
99  if(time()<(int)$_SESSION['admin_session_in_op']) {
100  $gluu_oxd_id = Mage::getStoreConfig('gluu/oxd/gluu_oxd_id_admin');
101  $gluu_config = json_decode(Mage::getStoreConfig('gluu/oxd/gluu_config'),true);
102  $gluu_provider = Mage::getStoreConfig('gluu/oxd/gluu_provider');
103  $arrContextOptions=array(
104  "ssl"=>array(
105  "verify_peer"=>false,
106  "verify_peer_name"=>false,
107  ),
108  );
109  $json = file_get_contents($gluu_provider.'/.well-known/openid-configuration', false, stream_context_create($arrContextOptions));
110  $obj = json_decode($json);
111 
112  if (!empty($obj->end_session_endpoint) or $gluu_provider == 'https://accounts.google.com') {
113  if (!empty($_SESSION['admin_user_oxd_id_token'])) {
114  if ($gluu_oxd_id && $_SESSION['admin_user_oxd_id_token'] && $_SESSION['admin_session_in_op']) {
115  $logout = Mage::helper("GluuOxd_Gluufolder/logout");
116  $logout->setRequestOxdId($gluu_oxd_id);
117  $logout->setRequestIdToken($_SESSION['admin_user_oxd_id_token']);
118  $logout->setRequestPostLogoutRedirectUri(Mage::getBaseUrl().'gluufolder/adminhtml_index/logoutfromall');
119  $logout->setRequestSessionState($_SESSION['admin_session_state']);
120  $logout->setRequestState($_SESSION['admin_state']);
121  $logout->request();
122  unset($_SESSION['admin_user_oxd_access_token']);
123  unset($_SESSION['admin_user_oxd_id_token']);
124  unset($_SESSION['admin_session_state']);
125  unset($_SESSION['admin_state']);
126  unset($_SESSION['admin_session_in_op']);
127  header("Location: " . $logout->getResponseObject()->data->uri);
128  exit;
129  }
130  }
131  } else {
132  unset($_SESSION['admin_user_oxd_access_token']);
133  unset($_SESSION['admin_user_oxd_id_token']);
134  unset($_SESSION['admin_session_state']);
135  unset($_SESSION['admin_state']);
136  unset($_SESSION['admin_session_in_op']);
137  }
138  }
139  }
140  $adminSession = Mage::getSingleton('admin/session');
141  $adminSession->unsetAll();
142  $adminSession->getCookie()->delete($adminSession->getSessionName());
143  $adminSession->addSuccess(Mage::helper('adminhtml')->__('You have logged out.'));
144 
145  $gluu_custom_logout = $this->select_query('gluu/oxd/gluu_custom_logout');
146  if(!empty($gluu_custom_logout)){
147  header("Location: $gluu_custom_logout");
148  exit;
149  }else{
150  header("Location: " . Mage::getBaseUrl().'admin');
151  exit;
152  }
153 
154  }
select_query($action)
Definition: IndexController.php:1227
$logout
Definition: Logout_test.php:6
$_SESSION['id_token']
Definition: Get_tokens_by_code_test.php:15

◆ logoutfromallAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::logoutfromallAction ( )
戻り値
gluuOxd admin index page
189  {
190  session_start();
191  unset($_SESSION['admin_user_oxd_access_token']);
192  unset($_SESSION['admin_user_oxd_id_token']);
193  unset($_SESSION['admin_session_state']);
194  unset($_SESSION['admin_state']);
195  unset($_SESSION['admin_session_in_op']);
196  $adminSession = Mage::getSingleton('admin/session');
197  $adminSession->unsetAll();
198  $adminSession->getCookie()->delete($adminSession->getSessionName());
199  $adminSession->addSuccess(Mage::helper('adminhtml')->__('You have logged out.'));
200 
201  header("Location: " . Mage::getBaseUrl().'admin/index/logout');
202  }
$_SESSION['id_token']
Definition: Get_tokens_by_code_test.php:15

◆ openidconfigpageAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::openidconfigpageAction ( )
戻り値
admin generalEdit page
257  {
258  $this->loadLayout();
259  $this->_addContent($this->getLayout()->createBlock('core/template'));
260  $this->renderLayout();
261  }

◆ redirect()

GluuOxd_Gluufolder_Adminhtml_IndexController::redirect (   $url)
private

redirecting function

271  {
272  $redirect = Mage::helper("adminhtml")->getUrl($url);
273  Mage::app()->getResponse()->setRedirect($redirect);
274  }
$url
Definition: IndexController.php:42

◆ resetConfigAction()

GluuOxd_Gluufolder_Adminhtml_IndexController::resetConfigAction ( )
1190  {
1191  $setup = new Mage_Core_Model_Config();
1192  unset($_SESSION['openid_error']);
1193  unset($_SESSION['admin_user_oxd_access_token']);
1194  unset($_SESSION['admin_user_oxd_id_token']);
1195  unset($_SESSION['admin_session_state']);
1196  unset($_SESSION['admin_state']);
1197  unset($_SESSION['admin_session_in_op']);
1198  $setup->deleteConfig('gluu/oxd/gluu_oxd_id');
1199  $setup->deleteConfig('gluu/oxd/gluu_scopes');
1200  $setup->deleteConfig('gluu/oxd/gluu_config');
1201  $setup->deleteConfig('gluu/oxd/gluu_acr');
1202  $setup->deleteConfig('gluu/oxd/gluu_auth_type');
1203  $setup->deleteConfig('gluu/oxd/gluu_send_user_check');
1204  $setup->deleteConfig('gluu/oxd/gluu_send_admin_check');
1205  $setup->deleteConfig('gluu/oxd/gluu_provider');
1206  $setup->deleteConfig('gluu/oxd/gluu_user_role');
1207  $setup->deleteConfig('gluu/oxd/gluu_custom_logout');
1208  $setup->deleteConfig('gluu/oxd/gluu_new_role');
1209  $setup->deleteConfig('gluu/oxd/gluu_users_can_register');
1210  $this->redirect("*/*/index");
1211  }
$setup
Definition: mysql4-install-1.9.2.php:46
redirect($url)
Definition: IndexController.php:271
$_SESSION['id_token']
Definition: Get_tokens_by_code_test.php:15

◆ saveConfig()

GluuOxd_Gluufolder_Adminhtml_IndexController::saveConfig (   $url,
  $value,
  $id 
)
private

saving configs in database

278  {
279  $data = array($url=>$value);
280  $model = Mage::getModel('admin/user')->load($id)->addData($data);
281  try {
282  $model->setId($id)->save();
283  } catch (Exception $e){
284  Mage::log($e->getMessage(), null, 'gluuoxd_openid_error.log', true);
285  }
286  }
$url
Definition: IndexController.php:42

◆ select_query()

GluuOxd_Gluufolder_Adminhtml_IndexController::select_query (   $action)
1227  {
1228  $result = Mage::getStoreConfig($action);
1229  return $result;
1230  }

◆ update_query()

GluuOxd_Gluufolder_Adminhtml_IndexController::update_query (   $action,
  $value 
)
1237  {
1238  $storeConfig = new Mage_Core_Model_Config();
1239  $storeConfig ->saveConfig($action,$value, 'default', 0);
1240  $result = Mage::getStoreConfig($action);
1241  return $result;
1242  }

メンバ詳解

◆ $dataHelper

GluuOxd_Gluufolder_Adminhtml_IndexController::$dataHelper = "GluuOxd_Gluufolder"
private

◆ $oxdRegisterSiteHelper

GluuOxd_Gluufolder_Adminhtml_IndexController::$oxdRegisterSiteHelper = "GluuOxd_Gluufolder/registerSite"
private

◆ $oxdUpdateSiteRegistrationHelper

GluuOxd_Gluufolder_Adminhtml_IndexController::$oxdUpdateSiteRegistrationHelper = "GluuOxd_Gluufolder/updateSiteRegistration"
private

このクラス詳解は次のファイルから抽出されました: