Browse Source

feat: Added button for fast test

Edgard Messias 5 years ago
parent
commit
92b722af0e
2 changed files with 35 additions and 1 deletions
  1. 13 0
      front/callback.php
  2. 22 1
      inc/provider.class.php

+ 13 - 0
front/callback.php

@@ -27,6 +27,19 @@ if (!$signon_provider->fields['is_active']) {
 
 $signon_provider->checkAuthorization();
 
+$test = PluginSinglesignonProvider::getCallbackParameters('test');
+
+if ($test) {
+   Html::nullHeader("Login", $CFG_GLPI["root_doc"] . '/index.php');
+   echo '<div class="left spaced">';
+   echo '<pre>';
+   print_r($signon_provider->getResourceOwner());
+   echo '</pre>';
+   Html::nullFooter();
+   exit();
+}
+
+
 if ($signon_provider->login()) {
 
    $params = PluginSinglesignonProvider::getCallbackParameters('q');

+ 22 - 1
inc/provider.class.php

@@ -137,8 +137,29 @@ class PluginSinglesignonProvider extends CommonDBTM {
       echo "<td colspan='3'><input type='text' style='width:96%' name='url_resource_owner_details' value='" . $this->fields["url_resource_owner_details"] . "'></td>";
       echo "</tr>\n";
 
+      if ($ID) {
+         $options['addbuttons'] = ['test_singlesignon' => __sso('Test Single Sign-on')];
+      }
+
       $this->showFormButtons($options);
 
+      if ($ID) {
+         $url = self::getCallbackUrl($ID) . '/test/1';
+         echo '<script type="text/javascript">
+         $("[name=test_singlesignon]").on("click", function (e) {
+            e.preventDefault();
+
+            var url   = ' . json_encode($url) . ';
+            var left  = ($(window).width()/2)-(600/2);
+            var top   = ($(window).height()/2)-(800/2);
+            var newWindow = window.open(url, "singlesignon", "width=600,height=800,left=" + left + ",top=" + top);
+            if (window.focus) {
+               newWindow.focus();
+            }
+         });
+         </script>';
+      }
+
       return true;
    }
 
@@ -935,7 +956,7 @@ class PluginSinglesignonProvider extends CommonDBTM {
             if ($key === null) {
                $key = $part;
             } else {
-               if ($key === "provider") {
+               if ($key === "provider" || $key === "test") {
                   $part = intval($part);
                } else {
                   $tmp = base64_decode($part);