* #75 - fix data leak to ui-avatars * #75 - ecs fix * #75 - new colors * #75 - change font color * #75 - ecs fix * #75 - change colors order * #75 - fix * #75 - fix * #75 - ecs fix Co-authored-by: EwelinaLasowy <ewelina.lasowy@blumilk.pl>
This commit is contained in:
		
							
								
								
									
										33
									
								
								app/Eloquent/Helpers/ColorGenerator.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								app/Eloquent/Helpers/ColorGenerator.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace Toby\Eloquent\Helpers; | ||||
|  | ||||
| class ColorGenerator | ||||
| { | ||||
|     public static function generate(string $text): string | ||||
|     { | ||||
|         $colors = config("colors"); | ||||
|         $hash = static::calculateHash($text); | ||||
|  | ||||
|         $index = $hash - count($colors) * floor($hash / count($colors)); | ||||
|  | ||||
|         return $colors[$index]; | ||||
|     } | ||||
|  | ||||
|     protected static function calculateHash(string $text): int | ||||
|     { | ||||
|         $hash = 0; | ||||
|  | ||||
|         if (empty($text)) { | ||||
|             return $hash; | ||||
|         } | ||||
|  | ||||
|         for ($i = 0; $i < mb_strlen($text); $i++) { | ||||
|             $hash = abs((int)(($hash << 2) - $hash) + mb_ord($text[$i])); | ||||
|         } | ||||
|  | ||||
|         return $hash; | ||||
|     } | ||||
| } | ||||
| @@ -16,6 +16,7 @@ use Illuminate\Support\Collection; | ||||
| use Rackbeat\UIAvatars\HasAvatar; | ||||
| use Toby\Domain\Enums\EmploymentForm; | ||||
| use Toby\Domain\Enums\Role; | ||||
| use Toby\Eloquent\Helpers\ColorGenerator; | ||||
|  | ||||
| /** | ||||
|  * @property int $id | ||||
| @@ -84,10 +85,8 @@ class User extends Authenticatable | ||||
|  | ||||
|     public function getAvatar(): string | ||||
|     { | ||||
|         $colors = config("colors"); | ||||
|  | ||||
|         return $this->getAvatarGenerator() | ||||
|             ->backgroundColor($colors[strlen($this->fullname) % count($colors)]) | ||||
|             ->backgroundColor(ColorGenerator::generate($this->fullName)) | ||||
|             ->image(); | ||||
|     } | ||||
|  | ||||
| @@ -101,9 +100,9 @@ class User extends Authenticatable | ||||
|         return $this->role === $role; | ||||
|     } | ||||
|  | ||||
|     protected function getAvatarNameKey(): string | ||||
|     protected function getAvatarName(): string | ||||
|     { | ||||
|         return "fullName"; | ||||
|         return mb_substr($this->first_name, 0, 1) . mb_substr($this->last_name, 0, 1); | ||||
|     } | ||||
|  | ||||
|     protected static function newFactory(): UserFactory | ||||
|   | ||||
		Reference in New Issue
	
	Block a user