privaterelay/management/commands/waffle_flag_by_fxa_uid.py (20 lines of code) (raw):
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)