. */ 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 = LogLevel::INFO; $this->setIPAddress($ip_address, $anonymize); } /** * Return the (anonymized) IP address used to log in the user. */ public function getIPAddress(): string { return $this->extra['i']; } /** * Sets the IP address used to log in the user. * * @param string $ip the IP address used to log in the user * @param bool $anonymize Anonymize the IP address (remove last block) to be GDPR compliant * * @return $this */ public function setIPAddress(string $ip, bool $anonymize = true): self { if ($anonymize) { $ip = IpUtils::anonymize($ip); } $this->extra['i'] = $ip; return $this; } }