]> _ Git - cubedesigners_userdatabase.git/commitdiff
wait #5755 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 27 Feb 2023 14:21:24 +0000 (15:21 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 27 Feb 2023 14:21:24 +0000 (15:21 +0100)
src/app/Models/User.php
src/app/Permissions.php

index 84563c4bcf58c613e9bbb88fcff3d4c641ce299b..6918bfdeec4352e68970251916d2a9535db7a618 100644 (file)
@@ -169,6 +169,28 @@ class User extends CubistMagicAuthenticatable
         return $company . '<br><em>' . $name . '</em>';
     }
 
+    public function getAllTreeInfosAttribute()
+    {
+        $name = $this->name;
+        $res = '';
+        if ($name) {
+            $res .= '<i class="las la-user-shield"></i> ' . $name . '<br>';
+        }
+        $res .= '<i class="las la-building"></i> ' . $this->companyName;
+
+        $invoicable = Permissions::getInvoicableCompany($this->company);
+        if ($invoicable != $this->company) {
+            $res .= '<br><i class="las la-file-invoice-dollar"></i> ' . Permissions::getCompanyName($invoicable);
+        }
+        //$res .= '<br><i class="las la-user-shield"></i> ' . $this->getAdministratorFirstname();
+        return $res;
+    }
+
+    protected function getAdministratorFirstname()
+    {
+
+    }
+
     public function getCompanyNameAttribute()
     {
         return self::_getCompanyNames($this->company);
index 1dd691c4688fcd9afc37b16a8abb3d03f42d61b0..66274c0f3966e560662dc8a47a48efecf7b2cebc 100644 (file)
@@ -24,10 +24,13 @@ class Permissions
                 'companyUsers' => [],
                 'usersCompany' => [],
                 'companyManagedBy' => [],
+                'invoicableCompany' => [],
                 'managedCompanies' => [],
                 'managedUsers' => [],
                 'userNames' => [],
                 'enabledUsers' => [],
+                'companyAdmin' => [],
+                'companyNames' => [],
             ];
 
             foreach (User::withoutGlobalScopes()->get() as $user) {
@@ -47,11 +50,26 @@ class Permissions
                     continue;
                 }
                 $adminCompany = $data['usersCompany'][$company->admin];
-
                 $data['companyManagedBy'][$company->id] = [$adminCompany, $company->id];
+                $data['companyAdmin'][$company->id] = $adminCompany;
+                $data['companyNames'][$company->id] = $company->name;
+
             }
 
-            for ($i = 0; $i <= 3; $i++) {
+            for ($i = 0; $i <= 5; $i++) {
+                foreach ($data['companyAdmin'] as $company_id => $company_admin) {
+                    if (isset($data['invoicableCompany'][$company_id])) {
+                        continue;
+                    }
+                    if ($company_admin == 7) {
+                        $data['invoicableCompany'][$company_id] = $company_id;
+                        continue;
+                    }
+                    if (isset($data['invoicableCompany'][$company_admin])) {
+                        $data['invoicableCompany'][$company_id] = $data['invoicableCompany'][$company_admin];
+                    }
+                }
+
                 foreach ($data['companyManagedBy'] as $company => $admins) {
                     foreach ($admins as $admin) {
                         if ($admin === $company) {
@@ -136,6 +154,26 @@ class Permissions
         return null;
     }
 
+    /**
+     * @param $company
+     * @return string|null
+     */
+    public static function getCompanyName($company)
+    {
+        $data = self::_getData();
+        return $data['companyNames'][$company] ?? null;
+    }
+
+    /**
+     * @param $company
+     * @return integer|null
+     */
+    public static function getInvoicableCompany($company)
+    {
+        $data = self::_getData();
+        return $data['invoicableCompany'][$company] ?? null;
+    }
+
 
     /**
      * @param $user integer