Source code for pluserable.events

"""Event classes."""

from kerno.typing import DictStr

from pluserable.data.typing import TUser, UserRezulto
from pluserable.web.pyramid.typing import PRequest, UserlessPeto

# TODO from dataclasses import dataclass


[docs]class BaseEvent: # noqa def __init__(self, request: PRequest, user: TUser): # noqa self.request = request self.user = user
[docs]class EventRegistration(BaseEvent): # noqa def __init__( self, request: PRequest, user: TUser, values: DictStr, activation_is_required: bool, ): # noqa super().__init__(request=request, user=user) self.activation_is_required = activation_is_required self.values = values
[docs]class EventActivation(BaseEvent): # noqa def __init__(self, request: PRequest, user: TUser, activation): # noqa super().__init__(request=request, user=user) self.activation = activation
[docs]class EventLogin(BaseEvent): """Fired when a user authenticates.""" def __init__( self, request: PRequest, upeto: UserlessPeto, rezulto: UserRezulto ): # noqa super().__init__(request=request, user=rezulto.user) self.upeto = upeto self.rezulto = rezulto
[docs]class EventProfileUpdated(BaseEvent): """Fired when a user changes email or password.""" def __init__( self, request: PRequest, user: TUser, values: DictStr, old_email: str ): # noqa super().__init__(request=request, user=user) self.values = values self.old_email = old_email
[docs]class EventPasswordReset(BaseEvent): # noqa def __init__(self, request: PRequest, user: TUser, password: str): # noqa super().__init__(request=request, user=user) self.password = password