diff --git a/ramses_example/__init__.py b/ramses_example/__init__.py index 321d7e4..433d23e 100644 --- a/ramses_example/__init__.py +++ b/ramses_example/__init__.py @@ -63,6 +63,19 @@ def encrypt(**kwargs): return new_value +@registry.add +def set_last_login(event): + from datetime import datetime + from nefertari import engine + User = engine.get_document_cls('User') + login = event.fields['login'].new_value + field = 'email' if '@' in login else 'username' + user = User.get_item(**{field: login}) + if user is not None: + user.update({'last_login': datetime.now()}, + event.view.request) + + def main(global_config, **settings): config = Configurator(settings=settings) config.include('ramses') diff --git a/schemas/user.json b/schemas/user.json index 7f7b972..99a52c7 100644 --- a/schemas/user.json +++ b/schemas/user.json @@ -7,6 +7,9 @@ "_hidden_fields": ["password"], "_nested_relationships": ["profile"], "_auth_model": true, + "_event_handlers": { + "after_login": ["set_last_login"] + }, "required": ["username", "email", "password"], "properties": { "created_at": {