Skip to content

Commit 207eaf3

Browse files
committed
chore: Add logging for login for SSDLC
1 parent a3a3ad1 commit 207eaf3

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

webapp/decorators.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
# Core packages
22
import functools
3+
from datetime import datetime
34

45
# Third party packages
56
import flask
7+
import logging
8+
69

710
from canonicalwebteam.store_api.publishergw import PublisherGW
811

912
from webapp import authentication
1013
from webapp.helpers import api_publisher_session
1114

1215
publisher_gateway = PublisherGW(api_publisher_session)
16+
logger = logging.getLogger(__name__)
1317

1418

1519
def login_required(func):
@@ -20,10 +24,35 @@ def login_required(func):
2024

2125
@functools.wraps(func)
2226
def is_user_logged_in(*args, **kwargs):
27+
date = datetime.now()
28+
date_str = date.strftime("%Y-%m-%dT%H:%M:%S")
29+
2330
if not authentication.is_authenticated(flask.session):
2431
authentication.empty_session(flask.session)
32+
33+
logger.warning(
34+
"User login failed",
35+
extra={
36+
"datetime": date_str,
37+
"appid": "snapcraft-io",
38+
"event": "authn_login_fail",
39+
},
40+
)
41+
2542
return flask.redirect(f"/login?next={flask.request.path}")
2643

44+
publisher = flask.session.get("publisher")
45+
user = publisher["email"]
46+
47+
logger.info(
48+
f"User {user} login successfully",
49+
extra={
50+
"datetime": date_str,
51+
"appid": "snapcraft-io",
52+
"event": f"authn_successafterfail:{user}",
53+
},
54+
)
55+
2756
return func(*args, **kwargs)
2857

2958
return is_user_logged_in

0 commit comments

Comments
 (0)