Example #1
0
    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