#!/usr/bin/env bash # # Delete the "guest" default user and replace it with a Zulip user # with a real password set -eu if [ "$EUID" -eq 0 ]; then sudo=() else sudo=(sudo) fi # If the RabbitMQ distribution cookie is insecure, reset it and # restart RabbitMQ. "${sudo[@]}" "$(dirname "$0")/generate-rabbitmq-cookie" RABBITMQ_USERNAME=$("$(dirname "$0")/../get-django-setting" RABBITMQ_USERNAME) RABBITMQ_PASSWORD=$("$(dirname "$0")/../get-django-setting" RABBITMQ_PASSWORD) # Wait for RabbitMQ to start up try_ping() { # `rabbitmqctl ping` requires 3.7.6 or newer out="$("${sudo[@]}" rabbitmqctl eval 'net_adm:ping(node()).')" && [ "$out" = 'pong' ] } retries=29 while ! try_ping 2>/dev/null; do sleep 1 if ! ((retries -= 1)); then try_ping break fi done "${sudo[@]}" rabbitmqctl delete_user "$RABBITMQ_USERNAME" || true "${sudo[@]}" rabbitmqctl delete_user zulip || true "${sudo[@]}" rabbitmqctl delete_user guest || true "${sudo[@]}" rabbitmqctl add_user "$RABBITMQ_USERNAME" "$RABBITMQ_PASSWORD" "${sudo[@]}" rabbitmqctl set_user_tags "$RABBITMQ_USERNAME" administrator "${sudo[@]}" rabbitmqctl set_permissions -p / "$RABBITMQ_USERNAME" '.*' '.*' '.*'