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. * @return string */ public function generateKey(User $user = null) : string { //If no user was specified, use the currently used one. if ($user === null) { $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 ($user === null || $user->getID() === User::ID_ANONYMOUS) { return 'user$_' . User::ID_ANONYMOUS; } //In the most cases we can just use the username (its unique) return "user_" . $user->getUsername(); } }