. */ declare(strict_types=1); namespace App\Entity\LogSystem; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\HttpFoundation\IpUtils; /** * This log entry is created when a user logs in. * * @ORM\Entity() */ class UserLoginLogEntry extends AbstractLogEntry { protected string $typeString = 'user_login'; public function __construct(string $ip_address, bool $anonymize = true) { parent::__construct(); $this->level = self::LEVEL_INFO; $this->setIPAddress($ip_address, $anonymize); } /** * Return the (anonymized) IP address used to login the user. */ public function getIPAddress(): string { return $this->extra['i']; } /** * Sets the IP address used to login the user. * * @param string $ip the IP address used to login the user * @param bool $anonymize Anonymize the IP address (remove last block) to be GPDR compliant * * @return $this */ public function setIPAddress(string $ip, bool $anonymize = true): self { if ($anonymize) { $ip = IpUtils::anonymize($ip); } $this->extra['i'] = $ip; return $this; } }