]> _ Git - cubedesigners_userdatabase.git/commitdiff
wait #6297 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 16 Jul 2024 16:54:37 +0000 (18:54 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 16 Jul 2024 16:54:37 +0000 (18:54 +0200)
src/app/Models/Company.php
src/app/Models/User.php
src/app/Traits/OtherEmails.php [new file with mode: 0644]

index b7a856dde6995be002b73877bf89553bace5f243..4aa7f7690b0eb502c3a7de26f9a8c510bff50496 100644 (file)
@@ -7,6 +7,7 @@ use Cubedesigners\UserDatabase\Jobs\ApplyPermissionsToUsers;
 use Cubedesigners\UserDatabase\Permissions;
 use Cubedesigners\UserDatabase\SubForms\Address;
 use Cubedesigners\UserDatabase\SubForms\AddressAndCompanyName;
+use Cubedesigners\UserDatabase\Traits\OtherEmails;
 use Cubist\Backpack\Magic\Fields\Checkbox;
 use Cubist\Backpack\Magic\Fields\Date;
 use Cubist\Backpack\Magic\Fields\Hidden;
@@ -18,6 +19,8 @@ use Illuminate\Database\Eloquent\Builder;
 
 class Company extends CubistMagicAbstractModel
 {
+    use OtherEmails;
+
     protected $connection = 'extranet_users';
     protected $table = 'company';
     protected $_options = ['name' => 'company',
@@ -141,6 +144,8 @@ class Company extends CubistMagicAbstractModel
             'form' => 'update',
         ]);
 
+        $this->addOtherEmailsField(__('Contacts'));
+
         $this->addField(['name' => 'website',
             'type' => 'URL',
             'label' => __('Site web'),
index 1d5d57ebfe801d774391bc092b1fdff75d78f312..bc53c8249d75f2b7633952e14de10f57e074efb1 100644 (file)
@@ -8,6 +8,7 @@ use Cubedesigners\UserDatabase\Operations\FilesOperation;
 use Cubedesigners\UserDatabase\Operations\LoginasOperation;
 use Cubedesigners\UserDatabase\Permissions;
 use Cubedesigners\UserDatabase\SubForms\Address;
+use Cubedesigners\UserDatabase\Traits\OtherEmails;
 use Cubist\Backpack\Magic\Fields\Checkbox;
 use Cubist\Backpack\Magic\Fields\Color;
 use Cubist\Backpack\Magic\Fields\Hidden;
@@ -20,6 +21,8 @@ use Illuminate\Support\Arr;
 
 class User extends CubistMagicAuthenticatable implements HasLocalePreference
 {
+    use OtherEmails;
+
     protected $connection = 'extranet_users';
     protected $table = 'user';
     protected $_options = ['name' => 'users',
@@ -82,6 +85,8 @@ class User extends CubistMagicAuthenticatable implements HasLocalePreference
             'type' => 'Phone',
             'tab' => __('Contact')]);
 
+        $this->addOtherEmailsField(__('Contact'));
+
         $this->addField(['name' => 'marketing',
             'label' => __('Reçoit les communications marketing'),
             'type' => Checkbox::class,
@@ -151,8 +156,6 @@ class User extends CubistMagicAuthenticatable implements HasLocalePreference
 
         $p = $this->getField('rolesandperms');
         $p->setAttribute('tab', __('Equipe Cubedesigners'));
-
-
     }
 
     public function getNameAttribute()
@@ -274,6 +277,7 @@ class User extends CubistMagicAuthenticatable implements HasLocalePreference
         return $this->_managedUsers;
     }
 
+
     public function getManagedCompanies()
     {
         if (null === $this->_managedCompanies) {
diff --git a/src/app/Traits/OtherEmails.php b/src/app/Traits/OtherEmails.php
new file mode 100644 (file)
index 0000000..f026925
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+
+namespace Cubedesigners\UserDatabase\Traits;
+
+use Cubist\Backpack\Magic\Fields\Textarea;
+
+trait OtherEmails
+{
+    public function getEmails()
+    {
+        $res = [];
+        if (property_exists($this, 'email')) {
+            $res[] = trim(mb_strtolower($this->email));
+        }
+        if (!$this->emails_other) {
+            return $res;
+        }
+
+        foreach (\Cubist\Util\Text::explodeNewLines($this->emails_other) as $e) {
+            $e = trim(mb_strtolower($e));
+            if (\Cubist\Util\Text::isEmail($e)) {
+                $res[] = $e;
+            }
+
+        }
+        return $res;
+    }
+
+    public function addOtherEmailsField($tab)
+    {
+        $this->addField('emails_other', Textarea::class, __('Autres emails'),
+            ['hint' => __('Ces emails sont ajoutés à la liste blanche des SPAM. Une adresse par ligne.'), 'tab' => $tab]);
+    }
+}