def create_email_activation_token(self, user: IUser) -> t.Tuple[str, int]: """Create activation token for the user to be used in the email :param user: User object. :return: Tuple (email activation code, expiration in seconds) """ activation = self.Activation() activation_token_expiry_seconds = int( self.registry.settings.get( "websauna.activation_token_expiry_seconds", 24 * 3600)) activation.expires_at = now() + timedelta( seconds=activation_token_expiry_seconds) self.dbsession.add(activation) self.dbsession.flush() user.activation = activation return activation.code, activation_token_expiry_seconds