management: Extract add_create_user_args.

This will avoid code duplication when adding a create_realm management command.
This commit is contained in:
Tim Abbott
2022-03-20 20:32:20 -07:00
committed by Tim Abbott
parent af5d0d6f5e
commit 9761711351
2 changed files with 36 additions and 33 deletions

View File

@@ -1,5 +1,5 @@
# Library code for use in management commands # Library code for use in management commands
from argparse import ArgumentParser, RawTextHelpFormatter from argparse import SUPPRESS, ArgumentParser, RawTextHelpFormatter
from typing import Any, Dict, List, Optional from typing import Any, Dict, List, Optional
from django.conf import settings from django.conf import settings
@@ -47,6 +47,39 @@ You can use the command list_realms to find ID of the realms in this server."""
parser.add_argument("-r", "--realm", dest="realm_id", required=required, help=help) parser.add_argument("-r", "--realm", dest="realm_id", required=required, help=help)
def add_create_user_args(self, parser: ArgumentParser) -> None:
parser.add_argument(
"email",
metavar="<email>",
nargs="?",
default=SUPPRESS,
help="email address of new user",
)
parser.add_argument(
"full_name",
metavar="<full name>",
nargs="?",
default=SUPPRESS,
help="full name of new user",
)
parser.add_argument(
"--password",
help="password of new user. For development only."
"Note that we recommend against setting "
"passwords this way, since they can be snooped by any user account "
"on the server via `ps -ef` or by any superuser with"
"read access to the user's bash history.",
)
parser.add_argument(
"--password-file", help="The file containing the password of the new user."
)
parser.add_argument(
"--this-user-has-accepted-the-tos",
dest="tos",
action="store_true",
help="Acknowledgement that the user has already accepted the ToS.",
)
def add_user_list_args( def add_user_list_args(
self, self,
parser: ArgumentParser, parser: ArgumentParser,

View File

@@ -15,43 +15,13 @@ from zerver.lib.management import ZulipBaseCommand
class Command(ZulipBaseCommand): class Command(ZulipBaseCommand):
help = """Create the specified user with a default initial password. help = """Create the specified user with a default initial password.
Set tos_version=None, so that the user needs to do a ToS flow on login. Sets tos_version=None, so that the user needs to do a ToS flow on login.
Omit both <email> and <full name> for interactive user creation. Omit both <email> and <full name> for interactive user creation.
""" """
def add_arguments(self, parser: argparse.ArgumentParser) -> None: def add_arguments(self, parser: argparse.ArgumentParser) -> None:
parser.add_argument( self.add_create_user_args(parser)
"--this-user-has-accepted-the-tos",
dest="tos",
action="store_true",
help="Acknowledgement that the user has already accepted the ToS.",
)
parser.add_argument(
"--password",
help="password of new user. For development only."
"Note that we recommend against setting "
"passwords this way, since they can be snooped by any user account "
"on the server via `ps -ef` or by any superuser with"
"read access to the user's bash history.",
)
parser.add_argument(
"--password-file", help="The file containing the password of the new user."
)
parser.add_argument(
"email",
metavar="<email>",
nargs="?",
default=argparse.SUPPRESS,
help="email address of new user",
)
parser.add_argument(
"full_name",
metavar="<full name>",
nargs="?",
default=argparse.SUPPRESS,
help="full name of new user",
)
self.add_realm_args( self.add_realm_args(
parser, required=True, help="The name of the existing realm to which to add the user." parser, required=True, help="The name of the existing realm to which to add the user."
) )