mirror of
https://github.com/zulip/zulip.git
synced 2025-10-27 01:53:59 +00:00
templates: Update deactivated organization template for deleted data.
If a realm's data has been scrubbed, update the deactivated realm to note the URL can be reused, but not that the realm can be reactivated. Updates the template for context variables that are no longer used.
This commit is contained in:
committed by
Tim Abbott
parent
0563a36b47
commit
fd16c2e2b0
@@ -16,23 +16,24 @@
|
||||
<div class="inline-block">
|
||||
|
||||
<div class="get-started">
|
||||
{% if deactivated_redirect %}
|
||||
<h1>{{ _("Organization moved") }}</h1>
|
||||
{% else %}
|
||||
<h1>{{ _("Deactivated organization") }}</h1>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="white-box deactivated-realm-container">
|
||||
<p>
|
||||
{% if deactivated_redirect %}
|
||||
{% if realm_data_deleted %}
|
||||
{{ _("This organization has been deactivated, and all organization data has been deleted.") }}
|
||||
{% if corporate_enabled %}
|
||||
{% trans %}
|
||||
This organization has moved to <a href="{{ deactivated_redirect }}">{{ deactivated_redirect }}</a>.
|
||||
You can <a href="mailto:{{ support_email }}">contact Zulip support</a> to inquire about reusing this URL for a new organization.
|
||||
{% endtrans %}
|
||||
{% else %}
|
||||
{% trans %}
|
||||
This organization has been deactivated.
|
||||
You can <a href="mailto:{{ support_email }}">contact this Zulip server's administrators</a> to inquire about reusing this URL for a new organization.
|
||||
{% endtrans %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{ _("This organization has been deactivated.") }}
|
||||
{% if corporate_enabled %}
|
||||
{% trans %}
|
||||
If you are an owner of this organization, you can <a href="mailto:{{ support_email }}">contact Zulip support</a> to reactivate it.
|
||||
|
||||
@@ -24,8 +24,10 @@ from zerver.actions.create_realm import do_change_realm_subdomain, do_create_rea
|
||||
from zerver.actions.create_user import add_new_user_history, do_create_user
|
||||
from zerver.actions.default_streams import do_add_default_stream, do_create_default_stream_group
|
||||
from zerver.actions.invites import do_invite_users
|
||||
from zerver.actions.message_send import internal_send_private_message
|
||||
from zerver.actions.realm_settings import (
|
||||
do_deactivate_realm,
|
||||
do_scrub_realm,
|
||||
do_set_realm_authentication_methods,
|
||||
do_set_realm_property,
|
||||
do_set_realm_user_default_setting,
|
||||
@@ -180,7 +182,7 @@ class DeactivationNoticeTestCase(ZulipTestCase):
|
||||
result = self.client_get("/login/", follow=True)
|
||||
self.assertEqual(result.redirect_chain[-1], ("/accounts/deactivated/", 302))
|
||||
self.assertIn("This organization has been deactivated.", result.content.decode())
|
||||
self.assertNotIn("It has moved to", result.content.decode())
|
||||
self.assertNotIn("and all organization data has been deleted", result.content.decode())
|
||||
|
||||
def test_deactivation_notice_when_deactivated_and_deactivated_redirect_is_set(self) -> None:
|
||||
realm = get_realm("zulip")
|
||||
@@ -225,6 +227,30 @@ class DeactivationNoticeTestCase(ZulipTestCase):
|
||||
result = self.client_get("/login/", follow=True)
|
||||
self.assertIn(result.request.get("SERVER_NAME"), ["new-name-2.testserver"])
|
||||
|
||||
def test_deactivation_notice_when_deactivated_and_scrubbed(self) -> None:
|
||||
# We expect system bot messages when scrubbing a realm.
|
||||
internal_realm = get_realm(settings.SYSTEM_BOT_REALM)
|
||||
notification_bot = get_system_bot(settings.NOTIFICATION_BOT, internal_realm.id)
|
||||
hamlet = self.example_user("hamlet")
|
||||
internal_send_private_message(notification_bot, hamlet, "test")
|
||||
realm = get_realm("zulip")
|
||||
do_deactivate_realm(
|
||||
realm,
|
||||
acting_user=None,
|
||||
deactivation_reason="owner_request",
|
||||
email_owners=False,
|
||||
)
|
||||
realm.refresh_from_db()
|
||||
assert realm.deactivated
|
||||
assert realm.deactivated_redirect is None
|
||||
with self.assertLogs(level="WARNING"):
|
||||
do_scrub_realm(realm, acting_user=None)
|
||||
|
||||
result = self.client_get("/login/", follow=True)
|
||||
self.assertEqual(result.redirect_chain[-1], ("/accounts/deactivated/", 302))
|
||||
self.assertIn("This organization has been deactivated,", result.content.decode())
|
||||
self.assertIn("and all organization data has been deleted", result.content.decode())
|
||||
|
||||
|
||||
class AddNewUserHistoryTest(ZulipTestCase):
|
||||
def test_add_new_user_history_race(self) -> None:
|
||||
|
||||
@@ -78,6 +78,7 @@ from zerver.models import (
|
||||
UserProfile,
|
||||
)
|
||||
from zerver.models.prereg_users import filter_to_valid_prereg_users
|
||||
from zerver.models.realm_audit_logs import AuditLogEventType, RealmAuditLog
|
||||
from zerver.models.realms import get_realm
|
||||
from zerver.models.users import remote_user_to_email
|
||||
from zerver.signals import email_on_new_login
|
||||
@@ -808,12 +809,16 @@ def redirect_to_misconfigured_ldap_notice(request: HttpRequest, error_type: int)
|
||||
def show_deactivation_notice(request: HttpRequest, next: str = "/") -> HttpResponse:
|
||||
realm = get_realm_from_request(request)
|
||||
if realm and realm.deactivated:
|
||||
context = {"deactivated_domain_name": realm.name}
|
||||
if realm.deactivated_redirect is not None:
|
||||
# URL hash is automatically preserved by the browser.
|
||||
# See https://stackoverflow.com/a/5283739
|
||||
redirect_to = get_safe_redirect_to(next, realm.deactivated_redirect)
|
||||
return HttpResponseRedirect(redirect_to)
|
||||
|
||||
realm_data_scrubbed = RealmAuditLog.objects.filter(
|
||||
realm=realm, event_type=AuditLogEventType.REALM_SCRUBBED
|
||||
).exists()
|
||||
context = {"realm_data_deleted": realm_data_scrubbed}
|
||||
return render(request, "zerver/deactivated.html", context=context)
|
||||
|
||||
return HttpResponseRedirect(reverse("login_page"))
|
||||
|
||||
Reference in New Issue
Block a user