From: Vincent Vanwaelscappel Date: Mon, 27 Feb 2023 14:21:24 +0000 (+0100) Subject: wait #5755 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=52e00bd530c3007c241f0986dd6cc91ed82dedd5;p=cubedesigners_userdatabase.git wait #5755 @1 --- diff --git a/src/app/Models/User.php b/src/app/Models/User.php index 84563c4..6918bfd 100644 --- a/src/app/Models/User.php +++ b/src/app/Models/User.php @@ -169,6 +169,28 @@ class User extends CubistMagicAuthenticatable return $company . '
' . $name . ''; } + public function getAllTreeInfosAttribute() + { + $name = $this->name; + $res = ''; + if ($name) { + $res .= ' ' . $name . '
'; + } + $res .= ' ' . $this->companyName; + + $invoicable = Permissions::getInvoicableCompany($this->company); + if ($invoicable != $this->company) { + $res .= '
' . Permissions::getCompanyName($invoicable); + } + //$res .= '
' . $this->getAdministratorFirstname(); + return $res; + } + + protected function getAdministratorFirstname() + { + + } + public function getCompanyNameAttribute() { return self::_getCompanyNames($this->company); diff --git a/src/app/Permissions.php b/src/app/Permissions.php index 1dd691c..66274c0 100644 --- a/src/app/Permissions.php +++ b/src/app/Permissions.php @@ -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