Feat: Add enable/disable options in the admin panel (#1450)
* Feat: Add enable/disable options in the admin panel * Fix duplicate method * Black format Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
This commit is contained in:
parent
478b1386cd
commit
3c36f37a12
|
@ -118,6 +118,34 @@ class UserAdmin(SLModelView):
|
|||
"upgrade_channel": _user_upgrade_channel_formatter,
|
||||
}
|
||||
|
||||
@action(
|
||||
"disable_user",
|
||||
"Disable user",
|
||||
"Are you sure you want to disable the selected users?",
|
||||
)
|
||||
def action_disable_user(self, ids):
|
||||
for user in User.filter(User.id.in_(ids)):
|
||||
user.disabled = True
|
||||
|
||||
flash(f"Disabled user {user.id}")
|
||||
AdminAuditLog.disable_user(current_user.id, user.id)
|
||||
|
||||
Session.commit()
|
||||
|
||||
@action(
|
||||
"enable_user",
|
||||
"Enable user",
|
||||
"Are you sure you want to enable the selected users?",
|
||||
)
|
||||
def action_enable_user(self, ids):
|
||||
for user in User.filter(User.id.in_(ids)):
|
||||
user.disabled = False
|
||||
|
||||
flash(f"Enabled user {user.id}")
|
||||
AdminAuditLog.enable_user(current_user.id, user.id)
|
||||
|
||||
Session.commit()
|
||||
|
||||
@action(
|
||||
"education_upgrade",
|
||||
"Education upgrade",
|
||||
|
|
|
@ -231,6 +231,8 @@ class AuditLogActionEnum(EnumE):
|
|||
logged_as_user = 6
|
||||
extend_subscription = 7
|
||||
download_provider_complaint = 8
|
||||
disable_user = 9
|
||||
enable_user = 10
|
||||
|
||||
|
||||
class Phase(EnumE):
|
||||
|
@ -3178,6 +3180,26 @@ class AdminAuditLog(Base):
|
|||
data={},
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def disable_user(cls, admin_user_id: int, user_id: int):
|
||||
cls.create(
|
||||
admin_user_id=admin_user_id,
|
||||
action=AuditLogActionEnum.disable_user.value,
|
||||
model="User",
|
||||
model_id=user_id,
|
||||
data={},
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def enable_user(cls, admin_user_id: int, user_id: int):
|
||||
cls.create(
|
||||
admin_user_id=admin_user_id,
|
||||
action=AuditLogActionEnum.enable_user.value,
|
||||
model="User",
|
||||
model_id=user_id,
|
||||
data={},
|
||||
)
|
||||
|
||||
|
||||
class ProviderComplaintState(EnumE):
|
||||
new = 0
|
||||
|
|
Loading…
Reference in a new issue