From 553d8976be79641451cf446847d71bd192098907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Casaj=C3=BAs?= Date: Mon, 14 Mar 2022 15:07:51 +0100 Subject: [PATCH] Added extend subscription log --- app/admin_model.py | 14 +++++++++++--- app/models.py | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/app/admin_model.py b/app/admin_model.py index b8064e32..2635af4c 100644 --- a/app/admin_model.py +++ b/app/admin_model.py @@ -59,7 +59,7 @@ class SLModelView(sqla.ModelView): admin_user_id=current_user.id, model=model.__class__.__name__, model_id=model.id, - action=auditAction, + action=auditAction.value, data=changes, ) @@ -68,7 +68,7 @@ class SLModelView(sqla.ModelView): admin_user_id=current_user.id, model=model.__class__.__name__, model_id=model.id, - action=AuditLogActionEnum.delete_object, + action=AuditLogActionEnum.delete_object.value, ) @@ -159,7 +159,9 @@ class UserAdmin(SLModelView): user.trial_end = arrow.now().shift(weeks=1) flash(f"Extend trial for {user} to {user.trial_end}", "success") - AdminAuditLog.extend_trial_1w(current_user.id, user.id, user.trial_end) + AdminAuditLog.extend_trial( + current_user.id, user.id, user.trial_end, "1 week" + ) Session.commit() @@ -288,6 +290,9 @@ class ManualSubscriptionAdmin(SLModelView): for ms in ManualSubscription.filter(ManualSubscription.id.in_(ids)): ms.end_at = ms.end_at.shift(years=1) flash(f"Extend subscription for 1 year for {ms.user}", "success") + AdminAuditLog.extend_subscription( + current_user.id, ms.user.id, ms.end_at, "1 year" + ) Session.commit() @@ -300,6 +305,9 @@ class ManualSubscriptionAdmin(SLModelView): for ms in ManualSubscription.filter(ManualSubscription.id.in_(ids)): ms.end_at = ms.end_at.shift(months=1) flash(f"Extend subscription for 1 month for {ms.user}", "success") + AdminAuditLog.extend_subscription( + current_user.id, ms.user.id, ms.end_at, "1 month" + ) Session.commit() diff --git a/app/models.py b/app/models.py index e5079230..2a7cf9ca 100644 --- a/app/models.py +++ b/app/models.py @@ -234,6 +234,7 @@ class AuditLogActionEnum(EnumE): extend_trial = 4 disable_2fa = 5 logged_as_user = 6 + extend_subscription = 7 class Hibp(Base, ModelMixin): @@ -2914,7 +2915,7 @@ class AdminAuditLog(Base): ): cls.create( admin_user_id=admin_user_id, - action=AuditLogActionEnum.manual_upgrade, + action=AuditLogActionEnum.manual_upgrade.value, model="User", model_id=user_id, data={ @@ -2924,13 +2925,18 @@ class AdminAuditLog(Base): ) @classmethod - def extend_trial_1w(cls, admin_user_id: int, user_id: int, trial_end: arrow.Arrow): + def extend_trial( + cls, admin_user_id: int, user_id: int, trial_end: arrow.Arrow, extend_time: str + ): cls.create( admin_user_id=admin_user_id, - action=AuditLogActionEnum.extend_trial, + action=AuditLogActionEnum.extend_trial.value, model="User", model_id=user_id, - data={"trial_end": trial_end.format(arrow.FORMAT_RFC3339)}, + data={ + "trial_end": trial_end.format(arrow.FORMAT_RFC3339), + "extend_time": extend_time, + }, ) @classmethod @@ -2939,7 +2945,7 @@ class AdminAuditLog(Base): ): cls.create( admin_user_id=admin_user_id, - action=AuditLogActionEnum.disable_2fa, + action=AuditLogActionEnum.disable_2fa.value, model="User", model_id=user_id, data={"had_otp": had_otp, "had_fido": had_fido}, @@ -2949,10 +2955,29 @@ class AdminAuditLog(Base): def logged_as_user(cls, admin_user_id: int, user_id: int): cls.create( admin_user_id=admin_user_id, - action=AuditLogActionEnum.logged_as_user, + action=AuditLogActionEnum.logged_as_user.value, model="User", model_id=user_id, ) + @classmethod + def extend_subscription( + cls, + admin_user_id: int, + user_id: int, + subscription_end: arrow.Arrow, + extend_time: str, + ): + cls.create( + admin_user_id=admin_user_id, + action=AuditLogActionEnum.extend_subscription.value, + model="User", + model_id=user_id, + data={ + "subscription_end": subscription_end.format(arrow.FORMAT_RFC3339), + "extend_time": extend_time, + }, + ) + # endregion