From e6eecebb7ffb4b98686ddf0334f64855c222dcf2 Mon Sep 17 00:00:00 2001 From: Johannes Bornhold Date: Mon, 30 May 2016 12:14:00 +0200 Subject: [PATCH] events: Add events for pre user create and pre user update. These events are emitted before a user is created or updated. --- rhodecode/events.py | 24 +++++++++++++++++++++++- rhodecode/interfaces.py | 15 +++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/rhodecode/events.py b/rhodecode/events.py index b854f60b..6bdc44ca 100644 --- a/rhodecode/events.py +++ b/rhodecode/events.py @@ -17,7 +17,8 @@ # and proprietary license terms, please see https://rhodecode.com/licenses/ from zope.interface import implementer -from rhodecode.interfaces import IUserRegistered +from rhodecode.interfaces import ( + IUserRegistered, IUserPreCreate, IUserPreUpdate) @implementer(IUserRegistered) @@ -29,3 +30,24 @@ class UserRegistered(object): def __init__(self, user, session): self.user = user self.session = session + + +@implementer(IUserPreCreate) +class UserPreCreate(object): + """ + An instance of this class is emitted as an :term:`event` before a new user + object is created. + """ + def __init__(self, active): + self.active = active + + +@implementer(IUserPreUpdate) +class UserPreUpdate(object): + """ + An instance of this class is emitted as an :term:`event` before a user + object is updated. + """ + def __init__(self, user, active): + self.user = user + self.active = active diff --git a/rhodecode/interfaces.py b/rhodecode/interfaces.py index 4e8575d4..b032721d 100644 --- a/rhodecode/interfaces.py +++ b/rhodecode/interfaces.py @@ -26,3 +26,18 @@ class IUserRegistered(Interface): """ user = Attribute('The user object.') session = Attribute('The session while processing the register form post.') + + +class IUserPreCreate(Interface): + """ + An event type that is emitted before a new user object is persisted. + """ + active = Attribute('Value for user.active') + + +class IUserPreUpdate(Interface): + """ + An event type that is emitted before a user object is updated. + """ + user = Attribute('The not yet updated user object') + active = Attribute('New value for user.active')