From add4afd286d1a42da8f209061b524ab83f3a811d Mon Sep 17 00:00:00 2001 From: groovecoder Date: Mon, 30 Sep 2024 13:46:52 -0500 Subject: [PATCH] MPP-3119: add waffle_flag_by_fxa_uid command --- .../commands/waffle_flag_by_fxa_uid.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 privaterelay/management/commands/waffle_flag_by_fxa_uid.py diff --git a/privaterelay/management/commands/waffle_flag_by_fxa_uid.py b/privaterelay/management/commands/waffle_flag_by_fxa_uid.py new file mode 100644 index 0000000000..d20dceafbf --- /dev/null +++ b/privaterelay/management/commands/waffle_flag_by_fxa_uid.py @@ -0,0 +1,25 @@ +from typing import Any + +from django.core.management.base import CommandParser + +from allauth.socialaccount.models import SocialAccount +from waffle.management.commands.waffle_flag import Command as FlagCommand + + +class Command(FlagCommand): + def add_arguments(self, parser: CommandParser) -> None: + parser.add_argument( + "--fxa", + action="append", + default=list(), + help="Turn on the flag for listed FXA uids.", + ) + return super().add_arguments(parser) + + def handle(self, *args: Any, **options: Any) -> None: + if "fxa" in options: + uids: list[str] = options.get("fxa", []) + for uid in uids: + social_account = SocialAccount.objects.get(uid=uid, provider="fxa") + options["user"].append(social_account.user.email) + return super().handle(*args, **options)