User Management
Please review Account Management before adding users.
Use the manage.py command to create new Accounts:
python manage.py create_user \
--account_number "####-####-####" \
--username "newuser" \
--email "newuser@example.com" \
--first_name "New" \
--last_name "User" \
--password "securepassword" \
--admin
If you have enabled SMTP Email Services, a welcome email
will be sent to the new user with further instructions. Add --language with another language
of the web console, es (Spanish), fr (French) or pt-br (Brazilian Portuguese), to set the
user’s preferred language, which is English by default. The welcome email, and the password email
that the ENABLE_NEW_USER_PASSWORD_EMAIL switch sends, are written in it. Users who sign up in the
web console get the language of their browser, as the console itself does.
manage.py send_welcome_email re-sends the welcome email, in the user’s preferred language unless
you give it another --language.
Two days after the welcome email, the user is sent a second email, which invites them to the Slack
workspace of SMARTER_BRANDING_URL_SLACK (by default The Smarter Project’s) and introduces its
channels and its AI agent. A Celery Beat task, send_slack_invitation_emails, sends it hourly to every
account contact who is due it, once per email address, when the ENABLE_SLACK_INVITATION_EMAIL
waffle switch is on. The switch is off by default: turn it on in the Django admin to send the email.
Contacts who were welcomed before the platform recorded the welcome email’s date are never sent it.
manage.py send_slack_invitation_email sends it now, to a --username or to any --email,
including someone who isn’t a user. Each contact records when it was sent each email
(AccountContact.welcomed_at and slack_invited_at).
Both emails end with an unsubscribe link, and carry List-Unsubscribe headers, so that mail clients
show their own unsubscribe button. The link opens a page that asks the recipient to confirm, and
records the time in AccountContact.unsubscribed_at of every contact with the address, in every
account. An unsubscribed address isn’t sent either email again, by the platform or by the management
commands. Notices about the account, such as password resets, are still sent.
Without --password, a new user gets a random password. The command doesn’t print it, because its
output usually ends up in deployment logs: the password email sends it, when that switch is on. Add
--show_password to print it, or set another with manage.py changepassword <username>.