security = $security; } /** * Generates a key for the given user. * * @param User|null $user The user for which the key should be generated. When set to null, the currently logged in * user is used. */ public function generateKey(?User $user = null): string { $locale = \Locale::getDefault(); //If no user was specified, use the currently used one. if (null === $user) { $user = $this->security->getUser(); } //If the user is null, then treat it as anonymous user. //When the anonymous user is passed as user then use this path too. if (null === $user || User::ID_ANONYMOUS === $user->getID()) { return 'user$_'.User::ID_ANONYMOUS; } //In the most cases we can just use the username (its unique) return 'user_'.$user->getUsername().'_'.$locale; } }