Kaynağa Gözat

feat: Added create new user for Google (#70)

ch-tm 2 yıl önce
ebeveyn
işleme
cae95d8a43
2 değiştirilmiş dosya ile 35 ekleme ve 1 silme
  1. 34 0
      inc/provider.class.php
  2. 1 1
      setup.php

+ 34 - 0
inc/provider.class.php

@@ -1231,6 +1231,40 @@ class PluginSinglesignonProvider extends CommonDBTM {
       // var_dump($bOk);
       // die();
 
+      // If the user does not exist in the database and the provider is google
+      if (static::getClientType() == "google" && !$bOk) {
+         // Generates an api token and a personal token... probably not necessary
+         $tokenAPI = base_convert(hash('sha256', time() . mt_rand()), 16, 36);
+         $tokenPersonnel = base_convert(hash('sha256', time() . mt_rand()), 16, 36);
+
+         $realname = '';
+         if (isset($resource_array['family_name'])) {
+            $realname = $resource_array['family_name'];
+         }
+         $firstname = '';
+         if (isset($resource_array['given_name'])) {
+            $firstname = $resource_array['given_name'];
+         }
+         $useremail = $email;
+         if (isset($resource_array['email'])) {
+            $useremail = $resource_array['email'];
+         }
+
+         $userPost = [
+            'name' => $login,
+            'add' => 1,
+            'realname' => $realname,
+            'firstname' => $firstname,
+            //'picture' => $resource_array['picture'] ?? '',
+            'api_token' => $tokenAPI,
+            'personal_token' => $tokenPersonnel,
+            'is_active' => 1
+         ];
+         $userPost['_useremails'][-1] = $useremail;
+         $user->add($userPost);
+         return $user;
+      }
+
       // If the user does not exist in the database and the provider is generic (Ex: azure ad without common tenant)
       if (static::getClientType() == "generic" && !$bOk) {
          try {

+ 1 - 1
setup.php

@@ -25,7 +25,7 @@
  * ---------------------------------------------------------------------
  */
 
-define('PLUGIN_SINGLESIGNON_VERSION', '1.3.4');
+define('PLUGIN_SINGLESIGNON_VERSION', '1.3.5');
 
 $folder = basename(dirname(__FILE__));