Browse Source

fixed issues with flash messages after moving to events

funding-tag
Holger Frey 5 years ago
parent
commit
fd7a2a1d36
  1. 16
      ordr3/events.py
  2. 5
      ordr3/services.py
  3. 2
      ordr3/views/account.py

16
ordr3/events.py

@ -1,5 +1,11 @@ @@ -1,5 +1,11 @@
from collections import namedtuple
from pyramid.events import subscriber
SerializableFlashMessage = namedtuple(
"SerializableFlashMessage", ["text", "more"]
)
class Ordr3Event:
def __init__(self):
@ -27,11 +33,13 @@ class FlashMessage(Ordr3Event): @@ -27,11 +33,13 @@ class FlashMessage(Ordr3Event):
@subscriber(FlashMessage)
def handle_flash_message(message):
if message.request is None:
def handle_flash_message_event(event):
if event.request is None:
return
session = message.request.session
session.flash(message, message.channel, allow_duplicate=False)
session = event.request.session
message = SerializableFlashMessage(event.text, event.more)
print(message)
session.flash(message, event.channel, allow_duplicate=False)
def emit(request, event):

5
ordr3/services.py

@ -116,7 +116,9 @@ def set_new_password(user, password, event_queue): @@ -116,7 +116,9 @@ def set_new_password(user, password, event_queue):
if not length_ok:
event_queue.emit(MSG_SHORT_PASSWORD)
return length_ok and not check_have_i_been_pwned(password, event_queue)
has_been_pwned = check_have_i_been_pwned(password, event_queue)
return length_ok and not has_been_pwned
def check_have_i_been_pwned(password, event_queue):
@ -143,7 +145,6 @@ def _check_have_i_been_pwned(password_hash, event_queue): @@ -143,7 +145,6 @@ def _check_have_i_been_pwned(password_hash, event_queue):
return False
lower_case_lines = (line.lower() for line in response.text.splitlines())
for line in lower_case_lines:
print(tails, line, line.startswith(tails))
if line.startswith(tails):
event_queue.emit(MSG_PWNED_PASSWORD)
return True

2
ordr3/views/account.py

@ -94,7 +94,7 @@ def register_new_user(context, request): @@ -94,7 +94,7 @@ def register_new_user(context, request):
email=appstruct["email"],
role=models.UserRole.NEW,
)
services.set_new_password(account, appstruct["password"])
services.set_new_password(account, appstruct["password"], request)
request.repo.add_user(account)
return HTTPFound(request.resource_path(request.root, "registered"))

Loading…
Cancel
Save