From 7be34357b27a7ecce13f4afd1d31bb89485bdaa3 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Sun, 29 Jan 2017 19:08:03 -0800 Subject: [PATCH] rename_stream: Move stream name taken check to view. --- tools/lint-all | 3 +++ zerver/lib/actions.py | 3 --- zerver/views/streams.py | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/lint-all b/tools/lint-all index 847849a6f8..f5c7bfdee1 100755 --- a/tools/lint-all +++ b/tools/lint-all @@ -416,6 +416,9 @@ def build_custom_checkers(by_lang): {'pattern': 'get_stream[(]', 'include_only': set(["zerver/views/"]), 'exclude': set(['zerver/views/messages.py']), + 'exclude_line': set([ + ('zerver/views/streams.py', 'if get_stream(new_name, user_profile.realm) is not None:'), + ]), 'description': 'Please use access_stream_by_*() to fetch Stream objects', }, {'pattern': '[S]tream.objects.filter', diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index ce7cb62688..a543cba9ea 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -2067,9 +2067,6 @@ def do_rename_stream(realm, old_name, new_name, log=True): if not stream: raise JsonableError(_('Unknown stream "%s"') % (old_name,)) - if get_stream(new_name, realm) is not None: - raise JsonableError(_('Stream name "%s" is already taken') % (new_name,)) - old_name = stream.name stream.name = new_name stream.save(update_fields=["name"]) diff --git a/zerver/views/streams.py b/zerver/views/streams.py index a5b8b9e01a..dd94b25943 100644 --- a/zerver/views/streams.py +++ b/zerver/views/streams.py @@ -100,6 +100,8 @@ def update_stream_backend(request, user_profile, stream_id, check_stream_name(new_name) if stream.name.lower() == new_name.lower(): return json_error(_("Stream already has that name!")) + if get_stream(new_name, user_profile.realm) is not None: + raise JsonableError(_('Stream name "%s" is already taken') % (new_name,)) do_rename_stream(user_profile.realm, stream.name, new_name) if is_private is not None: do_change_stream_invite_only(stream, is_private)