Add /json/users/<email>/reactivate endpoint.

(imported from commit 7afa29f7718430ea2df7c489ab2af4d93d4ce497)
This commit is contained in:
Steve Howell
2013-11-15 13:39:03 -05:00
committed by Tim Abbott
parent bdfd3ed9c2
commit 0b16dfc999
3 changed files with 34 additions and 2 deletions

View File

@@ -838,7 +838,7 @@ class UserChangesTest(AuthedTestCase):
user = get_user_profile_by_email(email)
self.assertEqual(new_api_key, user.api_key)
class ActivateTest(TestCase):
class ActivateTest(AuthedTestCase):
def test_basics(self):
user = get_user_profile_by_email('hamlet@zulip.com')
do_deactivate(user)
@@ -846,6 +846,24 @@ class ActivateTest(TestCase):
do_reactivate(user)
self.assertTrue(user.is_active)
def test_api(self):
admin = get_user_profile_by_email('othello@zulip.com')
assign_perm('administer', admin, admin.realm)
self.login('othello@zulip.com')
user = get_user_profile_by_email('hamlet@zulip.com')
self.assertTrue(user.is_active)
result = self.client.delete('/json/users/hamlet@zulip.com')
self.assert_json_success(result)
user = get_user_profile_by_email('hamlet@zulip.com')
self.assertFalse(user.is_active)
result = self.client.post('/json/users/hamlet@zulip.com/reactivate')
self.assert_json_success(result)
user = get_user_profile_by_email('hamlet@zulip.com')
self.assertTrue(user.is_active)
class BotTest(AuthedTestCase):
def assert_num_bots_equal(self, count):
result = self.client.post("/json/get_bots")

View File

@@ -35,7 +35,7 @@ from zerver.lib.actions import bulk_remove_subscriptions, \
recipient_for_emails, extract_recipients, do_events_register, \
get_status_dict, do_change_enable_offline_email_notifications, \
do_update_message, internal_prep_message, \
do_send_messages, get_default_subs, do_deactivate, \
do_send_messages, get_default_subs, do_deactivate, do_reactivate, \
user_email_is_unique, do_invite_users, do_refer_friend, compute_mit_user_fullname, \
do_add_alert_words, do_remove_alert_words, do_set_alert_words, get_subscriber_emails, \
do_set_muted_topics, do_rename_stream, \
@@ -2025,6 +2025,18 @@ def deactivate_user_backend(request, user_profile, email):
do_deactivate(target)
return json_success({})
def reactivate_user_backend(request, user_profile, email):
try:
target = get_user_profile_by_email(email)
except UserProfile.DoesNotExist:
return json_error('No such user')
if not user_profile.can_admin_user(target):
return json_error('Insufficient permission')
do_reactivate(target)
return json_success({})
def avatar(request, email):
try:
user_profile = get_user_profile_by_email(email)

View File

@@ -211,6 +211,8 @@ v1_api_and_json_patterns = patterns('zerver.views',
url(r'^users/me/apns_device_token$', 'rest_dispatch',
{'POST' : 'add_apns_device_token',
'DELETE': 'remove_apns_device_token'}),
url(r'^users/(?P<email>.*)/reactivate$', 'rest_dispatch',
{'POST': 'reactivate_user_backend'}),
url(r'^users/(?P<email>.*)$', 'rest_dispatch',
{'DELETE': 'deactivate_user_backend'}),
url(r'^bots/(?P<email>.*)/api_key/regenerate$', 'rest_dispatch',