Umair Khan
286f9a40e7
push_notifications: Bring file to 100% coverage.
2017-05-16 12:26:55 -07:00
Umair Khan
fa5c66c439
push_notifications: Add num_push_devices_for_user tests.
2017-05-16 12:26:55 -07:00
Umair Khan
88f5d29e19
push_notifications: Add send_to_push_bouncer tests.
2017-05-16 12:26:55 -07:00
Umair Khan
af27ad607a
push_notifications: Add handle_push_notification tests.
2017-05-16 12:26:55 -07:00
Umair Khan
8a6498f55d
push_notifications: Create BouncerTestCase.
...
Adds bounce_request method to simulate a bounce.
2017-05-16 12:26:55 -07:00
Umair Khan
5907877038
push_notifications: Add test for send_notifications_to_bouncer.
2017-05-16 12:26:55 -07:00
Umair Khan
fab4249893
push_notifications: Add get_gcm_payload tests.
2017-05-16 12:26:55 -07:00
Umair Khan
136a950041
push_notifications: Add test for APNs payload.
2017-05-16 12:26:55 -07:00
Umair Khan
47d0f7d996
push_notifications: Add tests for get_alert_from_message.
2017-05-16 12:26:55 -07:00
Umair Khan
df0d29aaff
push_notifications: Add response_listener tests.
2017-05-16 12:26:55 -07:00
Umair Khan
fc0b9358e7
handle_push_notification: Remove the if condition.
...
'if apple_devices or android_devices' doesn't servce any purpose.
2017-05-16 12:26:55 -07:00
Umair Khan
ab411ab7b3
push_notifications: Delete remote server tokens in APNs response.
2017-05-16 12:26:55 -07:00
Umair Khan
33332539df
send_android_push_notification: Delete correct tokens.
...
Now this function will delete tokens from RemotePushDeviceToken if it
is running on notification bouncer or PushDeviceToken if it is running
on a server which doesn't use notification bouncer.
2017-05-16 12:26:55 -07:00
Umair Khan
4a864c7515
push_notification: Send data to notification bouncer.
2017-05-16 12:26:55 -07:00
Umair Khan
4e2a6834d8
authenticated_rest_api_view: Use is_remote_server.
...
Using is_remote_server is more readable and future-proof since
it provides a level of abstraction.
2017-05-16 12:26:55 -07:00
Steve Howell
e6cc0ffcdd
Eliminate PMs to non-subscribers when creating streams.
...
This should make stream creation relatively fast again, since we
will no longer send O(N) PMs out to tell folks the stream was
created.
2017-05-16 10:43:27 -07:00
Harshit Bansal
c549dea9ac
bugdown: Fix the regex used for unicode emoji matching.
...
The regex we were using didn't cover all the unicode blocks
to which our emojis belong. This commit fixes the regex to
include all the unicode blocks and also updates the
corresponding JS regex in marked.js.
Fixes : #3460 .
2017-05-16 09:05:42 -07:00
Harshit Bansal
f8824ea623
bugdown: Fix the `unicode_emoji_to_codepoint()` function.
...
Unicode codepoints are of minimum length 4, padded with extra
zeroes if the length is less than 4. This commit fixes the
`unicode_emoji_to_codepoint()` to ensure that the codepoint
it generates are of correct length.
2017-05-16 09:05:42 -07:00
Steve Howell
c8dd056ac5
Extract you_were_just_subscribed_message().
2017-05-16 09:01:00 -07:00
Steve Howell
bbd8c1c49b
Do not send PMs to subscribers when creating streams.
...
When we create a stream, we usually send a welcome message on the
stream itself as well as an announcement on the announcement stream,
but we no longer PM the individual users. Hopefully this will be
more pleasant for users (less spammy), and it also will make creating a
stream a lot faster.
We still send notifications when we add subscribers to an existing
stream.
2017-05-16 08:58:17 -07:00
Tim Abbott
847f469cf2
subdomains: Toggle various links with SUBDOMAINS_HOMEPAGE.
2017-05-15 21:54:35 -07:00
Steve Howell
e2732dabf3
Send welcome messages as part of /create_realm flow.
...
We now pre-populate the streams in DEFAULT_NEW_REALM_STREAMS
(social/general/zulip, unless somebody changes settings.py) with
welcome messages. This makes the streams appear to be active
right away, and it also gives the Zulip realm less of a
blank-slate feeling when you create it.
This change only affects the normal web-based create-realm flow.
It doesn't impact the management commands for creating realms
or setting default streams.
2017-05-15 20:38:08 -07:00
Eeshan Garg
21e0db03e1
webhooks/appfollow: Migrate docs to Markdown.
2017-05-15 20:14:23 -07:00
Eeshan Garg
0b5711aa7e
webhooks/airbrake: Migrate docs to Markdown.
2017-05-15 20:14:23 -07:00
Eeshan Garg
7227f488c8
webhooks: Add support for a GitHub push event deleting a branch.
...
Fixes : #4742 .
2017-05-16 00:11:20 -02:30
Tim Abbott
0b46be2fed
Avoid UserActivity logging for RemoteZulipServer requests.
...
We had a somewhat messy bug where we were sending invalid entries to
the UserActivity queue when using the push notification bouncer.
2017-05-15 17:15:01 -07:00
Tim Abbott
97abaae9af
home: Remove now-unnecessary page_params_core_fields duplication.
...
Also, we update the documentation to make the overall system a bit
clearer.
Fixes #4628 .
2017-05-13 22:58:18 -07:00
Tim Abbott
f36000d670
docs: Fix last reference to old fixtures directory structure.
2017-05-13 21:39:12 -07:00
Eeshan Garg
597db11a98
webhooks: Rename webhook fixtures to only include event type.
...
All webhook fixtures have now been renamed from
<webhook_name>/fixtures/<webhook_name>_<event_type>.json to
<webhook_name>/fixtures/<event_type>.json.
2017-05-13 20:07:40 -02:30
Tim Abbott
acb3c1e7ff
test_templates: Fix errors from compare.html template.
2017-05-13 14:57:06 -07:00
Eeshan Garg
10dcc99983
zerver/decorators: Log all exceptions raised in api_key_only_webhook_view.
...
Fixes #4742 .
2017-05-13 14:53:47 -07:00
Tim Abbott
51978d0f89
tests: Fix failing login tests.
...
Apparently I missed these when updating
4d2bb0dec8
.
2017-05-13 13:05:15 -07:00
Tim Abbott
4d2bb0dec8
templates: Clean up visuals for account-not-found SSO flow.
...
Also, clarify that the account that isn't found is your Zulip account,
not a GitHub/Google Oauth account.
2017-05-13 12:46:05 -07:00
Tim Abbott
0b5954feee
Increase initial messages on user creation from 100 to 1000.
...
This makes the new user experience in an active community like
chat.zulip.org substantially nicer, since the new user will have the
same level of initial messages to populate topics (etc.) as an
existing user who is caught up.
Without this, there was an undue level of fading-for-inactivity in the
default streams.
2017-05-13 12:16:05 -07:00
Tim Abbott
25516c6949
models: Update comment explaining order of display recipients.
2017-05-12 13:53:06 -07:00
Tim Abbott
72abd4f12d
mentions: Fix subject line and sender for missed-message mentions.
...
This fixes 2 issues:
* The term "@-mentioned" is simplified to "mentioned".
* We would incorrectly list other people who sent context messages as
among the people who mentioned you.
2017-05-12 13:50:25 -07:00
James Rowan
0facaa0797
Changes sender and subject lines for missed message emails.
...
Now, in the event of messages between two other members of a huddle,
the missed message emails are threaded in "Group PMs with name1 and
name2" and not in separate threads by sender.
Also, now the order of recipients in get_display_recipient consistent
with the order of names that appears in the list of personal messages
on the left sidebar.
Fixes most of #4553 .
2017-05-12 13:29:43 -07:00
Tim Abbott
13a37f74a1
users: Ban names shorter than 3 characters.
...
The empty string is not a reasonable name.
2017-05-11 19:21:51 -07:00
Cory Lynch
b1bfe9f42e
Add migration to force lowercase existing realm emoji.
...
Since realm emoji are now required to be lowercase,
an appropriate migration was added to retroactively
fix any emoji that might have contained uppercase
letters.
Also, the validator on the model was changed to
reject uppercase letters.
2017-05-11 19:10:21 -07:00
Cory Lynch
68e5898a07
emoji.py: Add restriction that realm emoji must be lowercase.
...
Raises error if emoji name has an uppercase letter in it.
2017-05-11 19:10:21 -07:00
Tim Abbott
6eada74bfe
portico: Fix exception if no realm description is set.
...
This was caught via Casper tests, which I regret not running.
2017-05-11 14:23:46 -07:00
Tim Abbott
223624be25
settings: Add support for longer, markdown-powered realm descriptions.
...
This makes it possible to create much prettier login pages.
Further work on styling may be necessary.
2017-05-11 13:59:46 -07:00
Umair Khan
329b377e6a
push_notification: Add uses_notification_bouncer().
...
This function abstracts the logic to ascertain if we are using
notification bouncer service or not. Makes our code more
maintainable.
2017-05-11 12:04:16 -07:00
Umair Khan
112a67097b
push_notifications: Don't get alert message.
...
Now we set the alert message in the payload functions for both GCM and APNs so
no need to get it here.
2017-05-11 12:04:16 -07:00
Umair Khan
3c32bc6d8a
push_notification: Create get_gcm_payload.
2017-05-11 12:04:16 -07:00
Umair Khan
d90774b9db
push_notifications: Create get_apns_payload.
...
This function creates the payload that we will send to APNs.
2017-05-11 12:04:16 -07:00
Umair Khan
5ff7fdf83a
push_notification: Create get_alert_from_message.
...
This function returns the alert shown by iOS or Android device.
2017-05-11 12:04:16 -07:00
Umair Khan
10ed47156d
api_auth: Use is_remote_server.
2017-05-11 12:02:26 -07:00
Umair Khan
faf190ff34
validate_api_key: Use is_remote_server.
2017-05-11 12:02:26 -07:00
Umair Khan
252fa53816
api: Add is_remote_server().
...
This function abstracts the logic to ascertain the source of API
auth request.
2017-05-11 12:02:26 -07:00
Umair Khan
dc2a9a4c5b
github: Add sign up button on registration page.
2017-05-10 17:49:08 -07:00
Umair Khan
d56db0a3b4
auth.py: Add confirmation handlers for signup.
...
These handlers will kick into action when is_signup is False. In case
the account exists, the user will be logged in, otherwise, user will
be asked if they want to proceed to registration.
2017-05-10 17:20:34 -07:00
Umair Khan
11426a2cec
log_into_subdomain: User should be None in signup.
2017-05-10 17:20:34 -07:00
Tim Abbott
5019b53492
auth: Pass is_signup option around.
2017-05-10 17:20:34 -07:00
Tim Abbott
ce3974b40e
auth: add is_signup option to login_or_register_remote_user.
2017-05-10 17:20:34 -07:00
Tim Abbott
e8eaec0a18
mypy: Fix various errors caught by removing cache_with_key.
2017-05-10 14:37:20 -07:00
Tim Abbott
e55b4b0d43
invites: Fix buggy access to non-existant user_profile.name.
2017-05-10 14:31:24 -07:00
Tim Abbott
a85c066722
confirmation: Fix race with invite and email change.
2017-05-10 14:31:24 -07:00
Tim Abbott
a0a50d410c
test_docs: Add tests to ensure all integrations present.
2017-05-10 11:30:32 -07:00
Tim Abbott
a3ddd94aa3
integrations: Remove unnecessary email_integration_enabled.
...
Previously, we were ending up with 2 copies of the email integration
in there.
2017-05-10 11:24:25 -07:00
Tim Abbott
248785e66e
integrations: Fix missing links to non-webhook integrations.
...
Apparently help_content was attached to the wrong class.
Fixes #4744 .
2017-05-10 11:17:56 -07:00
Tim Abbott
232592cc9f
test_sessions: Extends tests to reach 100% coverage of sessions.py.
...
Fixes #3980 .
2017-05-10 10:12:21 -07:00
andrewallen00
53f1f75fcb
Add tests for zerver/lib/sessions.py.
2017-05-10 10:12:14 -07:00
Tim Abbott
0e05f3f4ee
emails: Remove pre-email-migration scheduled jobs.
...
This fixes an issue introduced when we migrated the format of all of
our emails, which caused any old ScheduledJob rows to be corrupted.
2017-05-10 09:45:40 -07:00
Tim Abbott
9f7236eec1
message: Remove unused old gravatar_hash field from message dicts.
...
This was deprecated and replaced some 4 years ago.
2017-05-09 22:33:27 -07:00
Tim Abbott
e3505bd5ae
avatar: Fix memcached query loop fetching messages.
...
This fixes a major performance issue, where we would fetch
user_profile objects inside a code path that had already bulk-fetched
the necessary user objects.
Like the similar related changes we just made, the fix is to marshall
and pass the data into the avatar library directly.
2017-05-09 22:33:27 -07:00
Tim Abbott
0990246289
avatar: Fix memcached query loop fetching bots.
...
Similar to the related issue with users, the new avatar storage had
accidentally added database queries in a loop to this code path.
2017-05-09 22:33:27 -07:00
Tim Abbott
8e47dc73bd
avatar: Fix loop doing database queries in register.
...
Due to the refactoring of the avatar URL codepath that added realm IDs
to the URLs, we ended up calling `get_user_profile_by_email` inside
`get_avatar_url`, which in turns was called in a loop over all users
in a realm.
Needless to say, this resulted in a significant performance problem.
We fix this issue by passing in the data needed to compute the avatar
URL, rather than looking it up by email address.
2017-05-09 22:33:27 -07:00
Tim Abbott
676d4f32fc
avatar_url: Fix unnecessary database query.
...
If we have a user_profile object, there's no reason to fetch it again
from memcached.
2017-05-09 22:33:27 -07:00
Tim Abbott
c8b0ac0a05
avatar_hash: Extract user_avatar_path_from_ids.
2017-05-09 22:31:24 -07:00
Tim Abbott
bd3e338c35
templates: Fix URL coverage for new files.
2017-05-09 18:42:24 -07:00
Tim Abbott
fc24a56fc5
test_docs: Fix expected text in /hello page.
2017-05-09 17:23:38 -07:00
Tim Abbott
df6dba9673
test_home: Fix expected text in /hello page.
2017-05-09 16:59:33 -07:00
Tim Abbott
2d97db3518
streams: Add endpoint for modifying properties of a single stream.
...
This is likely to be the more common endpoint for API clients like the
mobile apps to interact with when modifying streams.
2017-05-09 13:42:34 -07:00
kunall17
e087bc24f8
streams: Migrate stream property changes to new REST endpoint.
...
This is one of the last major endpoints that were still done in the
pre-REST style.
While we're at it, we change the endpoint to expect a stream ID, not a
stream name.
2017-05-09 13:39:23 -07:00
Rohitt Vashishtha
0414ac6df5
bugdown: Convert GitHub image-preview urls to image urls.
...
This makes inline image previews work for links to image files' pages
on GitHub.
Fixes #4658 .
2017-05-09 11:22:37 -07:00
Umair Khan
4971b7ff9f
testing: Add errored tests to failed tests list.
...
Fixes : #4716 .
2017-05-09 09:36:59 -07:00
Steve Howell
b609911656
Remove unused get_user_profile_by_email() imports.
2017-05-08 11:57:38 -07:00
Steve Howell
3b2a3601c1
tests: Add ZulipTestCase.notification_bot().
2017-05-08 11:57:38 -07:00
Steve Howell
3a031f6814
test: Use example_user() in more places.
...
This commit replaces calls to get_user_profile_by_email() with
calls to self.example_user() by introducing a local variable.
2017-05-08 11:57:38 -07:00
Steve Howell
7f9057ba99
tests: Use example_user() in more places.
2017-05-08 11:57:38 -07:00
Steve Howell
6bc8424c71
Use self.example_user() in more places.
...
This fixes most cases where we were assigning a user to
the var email and then calling get_user_profile_by_email with
that var.
(This was fixed mostly with a script.)
2017-05-08 11:57:38 -07:00
Steve Howell
942db9b6c5
tests: Added ZulipTestCase.example_user() function.
...
The example_user() function is specifically designed for
AARON, hamlet, cordelia, and friends, and it allows a concise
way of using their built-in user profiles. Eventually, the
widespread use of example_user() should help us with refactorings
such as moving the tests users out of the "zulip.com" realm
and deprecating get_user_profile_by_email.
2017-05-08 11:57:38 -07:00
Aditya Bansal
3a097a2a6c
pep8: Add compliance with rule E261 to semaphore/view.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
bf24e0c9db
pep8: Add compliance with rule E261 to stripe/view.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
3791638985
pep8: Add compliance with rule E261 to semaphore/tests.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
21dd1384b4
pep8: Add compliance with rule E261 to pivotal/view.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
43c978e0f4
pep8: Add compliance with rule E261 to pagerduty/view.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
54989605e0
pep8: Add compliance with rule E261 to github/tests.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
f3c1557529
pep8: Add compliance with rule E261 to beanstalk/view.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
27a1b23392
pep8: Add compliance with rule E261 to ioloop_logging.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
5c82319101
pep8: Add compliance with rule E261 to handlers.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
72d5760d7c
pep8: Add compliance with rule E261 to descriptors.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
b48f07ebc0
pep8: Add compliance with rule E261 to test_users.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
feb332920c
pep8: Add compliance with rule E261 to test_typing.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
191fead5a3
pep8: Add compliance with rule E261 to test_type_debug.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
fcb1e4d4f1
pep8: Add compliance with rule E261 to test_report.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
2b1c6f7749
pep8: Add compliance with rule E261 to test_queue_worker.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
fd4ac33073
pep8: Add compliance with rule E261 to test_push_notifications.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
0478a9d7f3
pep8: Add compliance with rule E261 to test_export.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
7f5f4a511a
pep8: Add compliance with rule E261 to test_decorators.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
ce2790aae2
pep8: Add compliance with rule E261 to test_bots.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
689eb537ae
pep8: Add compliance with rule E261 to storage.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
ce4c4f4e0f
pep8: Add compliance with rule E261 to migrations/0001_initial.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
8a6617e304
pep8: Add compliance with rule E261 to set_default_streams.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
7271fc8a7b
pep8: Add compliance with rule E261 to import.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
d8db632d21
pep8: Add compliance with rule E261 to enqueue_file.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
6a53c53588
pep8: Add compliance with rule E261 to email_mirror.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
f1b2f10574
pep8: Add compliance with rule E261 to dump_messages.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
0999a74ef7
pep8: Add compliance with rule E261 to unminify.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
724c6d384f
pep8: Add compliance with rule E261 to type_debug.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
76d28a7cc7
pep8: Add compliance with rule E261 to timeout.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
6ad22f4092
pep8: Add compliance with rule E261 to streams.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
babdb8dd64
pep8: Add compliance with rule E261 to statistics.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
df2b49af66
pep8: Add compliance with rule E261 to sessions.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
94b7e4de9e
pep8: Add compliance with rule E261 to rest.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
19adf85d00
pep8: Add compliance with rule E261 to request.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
f7f09df773
pep8: Add compliance with rule E261 to rate_limiter.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
e5bf7e81e6
pep8: Add compliance with rule E261 zerver/lib/queue.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
69cf11d786
pep8: Add compliance with rule E261 to push_notifications.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
d561c758cd
pep8: Add compliance with rule E261 to parallel.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
cbaace87cd
pep8: Add compliance with rule E261 to email_mirror.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
3687dcdb3f
pep8: Add compliance with rule E261 digest.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
0fc16273b9
pep8: Add compliance with rule E261 to ccache.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
101d334b80
pep8: Add compliance with rule E261 to camo.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
e7e7c1a3cd
pep8: Add compliance with rule E261 to cache_helpers.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
821be4519c
pep8: Add compliance with rule E261 to cache.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
1e61e734c8
pep8: Add compliance with rule E261 to bulk_create.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
c23901c3a8
pep8: Add compliance with rule E261 to fenced_code.py.
2017-05-07 23:21:50 -07:00
Aditya Bansal
6bc653959f
Remove empty comment statement from taiga/view.py.
2017-05-07 23:21:50 -07:00
Umair Khan
b8afd249e4
testing: Make test_hit_ratelimits deterministic.
...
On slower systems or virtual environments, when you are running
tests in parallel mode, sometimes the time taken to send messages
in this test exceeds 1 second which resets the limit.
2017-05-06 17:28:16 +05:00
Rishi Gupta
962b56efbd
settings: Change example NOREPLY_EMAIL_ADDRESS to have a display name.
...
We used to use constructions like
from_email = "Zulip <%s>" % (settings.NOREPLY_EMAIL_ADDRESS,)
but no longer do. All references to settings.NOREPLY_EMAIL_ADDRESS in the
codebase now do not append a display name.
2017-05-05 14:38:25 -07:00
Rishi Gupta
8321bd3f92
notifications: Refactor missed message queue to use send_email.
...
This commit also changes the sender from "Zulip <NOREPLY_EMAIL_ADDRESS>" to
NOREPLY_EMAIL_ADDRESS when it is not set explicitly.
2017-05-05 14:38:25 -07:00
Rishi Gupta
fda65b3b37
missed messages: Change subject to always use the plural for Zulips.
...
Works better for threading in email clients.
2017-05-05 14:38:25 -07:00
Rishi Gupta
60e0bb3a04
send_email: Add reply_to argument to send_email.
...
django.core.mail.send_mail doesn't support reply_to, so we have to switch to
EmailMultiAlternatives.
2017-05-05 14:38:25 -07:00
Rishi Gupta
face3077df
email: Rename template_payload to context.
2017-05-05 14:38:25 -07:00
Rishi Gupta
6a8ed81439
send_email: Remove tags argument from send_future_email.
...
The tags argument was only being used by the Mandrill pathway, which is no
longer around.
2017-05-05 14:38:25 -07:00
Rishi Gupta
6b9f25a58a
Remove duplicated code between send_future_email and send_email pathway.
...
Note that this change restricts the context for any template that uses
send_future_email to be jsonable.
2017-05-05 14:38:25 -07:00
Rishi Gupta
72ee5e5159
email: Make context for invitation_reminder template jsonable.
...
We are about to change send_future_email in a way that will require all
callers to use jsonable context.
2017-05-05 14:38:25 -07:00
Rishi Gupta
68c172192b
email.py: Change recipients argument of send_future_email to to_email.
2017-05-05 14:38:25 -07:00
Rishi Gupta
0d4c1b0467
notifications: Move send_future_email to zerver/lib/send_email.py.
2017-05-05 14:38:25 -07:00
Rishi Gupta
d70e09b41d
notifications: Change sender arg of send_future_email to from_email.
...
This commit is a step towards the goal of replacing most of the
send_future_email pathway with a call to send_email.
Note that this commit changes the default value of sender from "Zulip
<NOREPLY_EMAIL_ADDRESS>" to "NOREPLY_EMAIL_ADDRESS". NOREPLY_EMAIL_ADDRESS
will soon be changed to have the Zulip in front.
2017-05-05 14:38:25 -07:00
Rishi Gupta
e46cbaffa2
email: Remove Mandrill pathways and dependency.
...
Everything it was doing (send_future_email) can now be done using
ScheduledJob.
2017-05-05 14:38:23 -07:00
Rishi Gupta
7741e099fc
notifications.py: Merge send_local_email_template_with_delay into callers.
...
Note that the correctness of this commit relies on the fact that
send_future_email also sets the sender to settings.NOREPLY_EMAIL_ADDRESS by
default (in the body of the function).
2017-05-05 14:20:32 -07:00
Rishi Gupta
a413b0dbad
notifications: Change send_future_email to take a template_prefix.
...
Also reorders the arguments a bit to better match
zerver.lib.send_email.send_email.
2017-05-05 14:20:32 -07:00
Rishi Gupta
cf38fd156b
digest.py: Merge send_digest_email into its callers.
...
Most of the functionality of send_digest_email is being standardized in
zerver.lib.notifications.send_future_email.
2017-05-05 14:20:32 -07:00
Rishi Gupta
925ee8c0f1
Add a send_email function that takes a template_prefix and context.
...
This commit replaces all uses of django.core.mail.send_mail with send_email,
other than in the password reset flow, since that code looks like it is just
a patch to Django's password reset code.
The send_email function is in a new file, since putting it in
zerver.lib.notifications would create an import loop with confirmation.models.
send_future_email will soon be moved into email.py as well.
2017-05-05 14:20:32 -07:00
Rishi Gupta
55a7aa4f9d
test_signup: Add dnslookup patch for mirror_dummy_user registration test.
...
Fixes regression introduced in 326f9a85
. The test indirectly makes a call to
email_is_not_mit_mailing_list, which then calls
DNS.dnslookup("%s.pobox.ns.athena.mit.edu" % username, DNS.Type.TXT).
2017-05-05 14:20:32 -07:00
Tim Abbott
f4a1cea488
auth: Refactor conditionals in login_or_register_remote_user.
2017-05-05 10:19:02 -07:00
Umair Khan
aee7475319
cache: Add KEY_PREFIX to recipient cache.
...
This should bounce the recipient cache after every test.
2017-05-05 18:24:08 +05:00
Umair Khan
c62150c097
testing: Bounce redis key prefix per test.
...
This commit adds a prefix to the redis keys; this allows us
to easily bounce the redis cache before every test.
Fixes : #1212
2017-05-05 18:24:08 +05:00
Umair Khan
4d543217ba
cache: Take hash of KEY_PREFIX to limit key size.
...
Key size of Memcached records should be less than 256.
2017-05-05 18:23:40 +05:00
Rohitt Vashishtha
a2c1e10986
bugdown: Add domain-name to relative image-url in open graph data.
...
fixes #4608 .
2017-05-04 16:54:10 -07:00
hackerkid
af612a7e1d
Extend test_user_default_language to include timezone test.
...
This renames the function to test_user_default_language_and_timezone.
2017-05-04 16:37:00 -07:00
hackerkid
83eb161249
Set user timezone automatically during signup.
2017-05-04 16:36:51 -07:00
hackerkid
34dae708d6
Add timezone argument to do_create_user function.
2017-05-04 16:32:05 -07:00
Tim Abbott
33ecfd7da4
auth: Remove require_GET for api_get_auth_backends.
...
Unfortunately, the Android app incorrectly uses POST with this
endpoint, so the recent change to add this needs to be reverted.
2017-05-04 14:39:02 -07:00
Rishi Gupta
92dd76822f
email: Move and rename password reset templates.
2017-05-03 23:26:14 -07:00
Rishi Gupta
c10d3114eb
email: Move and rename followup_day* templates.
2017-05-03 23:26:14 -07:00
Rishi Gupta
21a6377204
email: Move and rename find_team_email templates.
2017-05-03 23:26:14 -07:00
Rishi Gupta
ebfae36494
email: Move and rename digest_email templates.
2017-05-03 23:26:14 -07:00
Rishi Gupta
a1f0c1d6ac
email: Move and rename new_login_alert templates.
2017-05-03 23:26:14 -07:00
Rishi Gupta
26ac344b19
email: Move and rename invitation_reminder_email templates.
2017-05-03 23:26:14 -07:00
Rishi Gupta
975d5bd8c0
email: Move and rename notify_change_in_email templates.
2017-05-03 20:54:40 -07:00
Rishi Gupta
4e779c3e6f
email: Move and rename mituser_invite_email templates.
2017-05-03 20:54:40 -07:00
Rishi Gupta
713303deff
email: Move and rename invite_email templates.
2017-05-03 20:54:40 -07:00
Rishi Gupta
ed0c310aa3
email: Move and rename preregistrationuser_confirmation_email templates.
2017-05-03 20:54:40 -07:00
Rishi Gupta
aa21012783
email: Move and rename mituser_confirmation_email templates.
2017-05-03 20:54:40 -07:00
Rishi Gupta
235abe0b72
email: Move and rename emailchangestatus_confirmation_email templates.
2017-05-03 20:54:40 -07:00
Rishi Gupta
0a32d9efa3
email: Fix filenames of notify_change_in_email templates.
2017-05-03 20:54:40 -07:00
Rishi Gupta
cafc60dd1d
email: Move and rename missed_message_email templates.
...
All email templates are being moved to templates/zerver/emails.
2017-05-03 20:54:39 -07:00
Rishi Gupta
326f9a8506
email: Fix zephyr mirror registration email not working with subdomains.
...
If a user is trying to register for a mit zephyr mirroring realm, we send
them a specific registration email with a link to a few more instructions.
There is only one server that we know about that has such a realm, and that
server uses subdomains. This commit changes the logic to work in the
subdomains case, rather than in the non-subdomains case (though see next
para).
Note that the current check is deceptive, and is not actually correct in the
non-subdomains case. The prereg user has a realm only in the atypical case
of someone registering via the special URL for completely-open realms.
To do this correctly in the non-subdomains case, we would need to copy a
bunch of the logic from the beginning of accounts_register to figure out
which realm the user is signing up for, so that we can check if that realm
is a zephyr mirroring realm. Given how complicated the registration code is
already, I think it is probably not worth it at the moment. This commit also
removes the partial (deceptive) check, since I think it does more harm than
good.
2017-05-03 20:52:24 -07:00
Rishi Gupta
6fd3426e92
confirmation: Replace *_template_path arguments with template_prefix.
...
Relies on the fact that all the email template names now follow the same
pattern.
Note that there was some template_prefix-like computation being done in
send_confirmation (conditioned on obj.realm.is_zephyr_mirror_realm); that
computation is now being done in the callers.
2017-05-03 20:44:57 -07:00
Rishi Gupta
4027adb6cc
email: Fix naming of mituser_invite_email files.
2017-05-03 19:34:58 -07:00
Rishi Gupta
e89c5e4129
email: Fix naming of mituser_confirmation_email files.
...
I suspect this was actually just broken, and sending a confirmation email to
someone in a zephyr realm wouldn't have worked.
2017-05-03 19:34:58 -07:00
Rishi Gupta
4f20fdc572
user_settings: Update change-email confirmation message.
2017-05-03 19:34:58 -07:00
Tim Abbott
c7ba9a2ae5
templates: Remove old Zulip, Inc. privacy policy.
...
This isn't useful for anything anymore, especially now since we have a
sysadmin-configurable PRIVACY_POLICY settings.
2017-05-03 17:59:53 -07:00
Tim Abbott
51260b7536
auth: Add new route to get server settings.
...
Specifically, this makes easily available to the desktop and mobile
apps data on the server's configuration, including important details
like the realm icon, name, and description.
It deprecates /api/v1/get_auth_backends.
2017-05-03 16:40:14 -07:00
Tim Abbott
5d5a314051
auth: Refactor api_get_auth_backends.
2017-05-03 16:40:07 -07:00
Tim Abbott
dad183093a
context_processors: Clean up logic for fetching realm.
2017-05-03 16:39:31 -07:00
Tim Abbott
179e8c1ba8
do_send_messages: Ensure we fetch bot fields from database.
...
This increase in the list of needed fields carries a small performance
cost, but it should be very small, and this change is needed to
support outgoing webhooks without additional database queries.
2017-05-02 10:41:47 -07:00
vaibhav
8881b5eb9f
Outgoing Webhook System: Check for @-mentioned outgoing webhook bots.
...
Also puts them into a processing queue, though the queue processor
does nothing.
Rewritten by tabbott to avoid unnecessary database queries in
do_send_messages.
2017-05-02 09:22:04 -07:00
rahuldeve
d1a36b5279
Outgoing Webhook System: Add zerver/outgoing_webhooks.
2017-05-02 08:20:31 -07:00
rahuldeve
413c5f93bb
Outgoing Webhook System: Add Service model.
2017-05-02 08:20:31 -07:00
Eeshan Garg
e87e246fcb
zerver/decorator: Set request.client in api_key_only_webhook_view.
...
Previously, api_key_only_webhook_view passed 3 positional arguments
(request, user_profile, and client) into a function. However, most
of our other auth decorators only pass 2 positional arguments. For
the sake of consistency, we now make api_key_only_webhook_view set
request.client and pass only request and user_profile as positional
arguments.
2017-05-01 23:44:07 -07:00
sinwar
5c3cb79747
streams: Ban null character from stream name.
...
This is a better solution to the problem of how _pg_re_escape should
handle the null character. There's really no good reason to have a
null character in a stream name.
2017-05-01 23:43:01 -07:00
Rohitt Vashishtha
47eb19331d
ux: Display error on login/registration if no auth backends are enabled.
...
Also makes a small tweak to CSS to ensure the styling is consistent on
the two pages.
Fixes #4525 .
2017-05-01 17:17:37 -07:00
Steve Howell
711a50f1e8
Add internal_prep_private_message().
...
The new function takes a full UserProfile object for the sender,
which allows us to avoid O(N) calls when creating the stream to
find the user profile of the notification bot. (The calls were
already cached, so this won't necessarily be a huge performance
win.)
We also don't have to worry about sending a blank subject any more.
2017-05-01 16:23:38 -07:00
Steve Howell
0f4de8e37d
Add internal_prep_stream_message().
...
The new, more direct interface for prepping internal stream
messages circumvents the bug-prone extract_recipients() method,
which has the pitfall that it will try to parse a stream name
as JSON. It also takes a UserProfile object for the sender, so
it's a bit more type-safe.
2017-05-01 16:23:38 -07:00
Steve Howell
e3edc4d829
Send welcome messages for new streams.
2017-05-01 16:23:38 -07:00
Tim Abbott
84008b9c37
context_processors: Rename confusingly named add_settings context.
...
Also document this.
2017-05-01 15:47:58 -07:00
K.Kanakhin
f13d6a18eb
realm-emoji: Add realm emoji uploading instead url providing.
...
- Add file_name field to `RealmEmoji` model and migration.
- Add emoji upload supporting to Upload backends.
- Add uploaded file processing to emoji views.
- Use emoji source url as based for display url.
- Change emoji form for image uploading.
- Fix back-end tests.
- Fix front-end tests.
- Add tests for emoji uploading.
Fixes #1134
2017-05-01 14:50:20 -07:00
Tim Abbott
445cf8c680
reactions: Add a test for the Zulip emoji.
...
This fixes a coverage problem introduced by recent emoji refactoring.
Also, it'll help prevent us from breaking this feature in the future.
2017-04-30 20:16:51 -07:00
Tim Abbott
85805cf380
bugdown: Simplify logic for constructing unicode_emoji_list.
2017-04-30 16:40:58 -07:00
Tim Abbott
8b3be3cd3a
bugdown: Pass a codepoint, not a URL, to make_emoji.
2017-04-30 16:40:58 -07:00
Tim Abbott
a7efe222ee
tests: Use slightly_smiling_face instead of simple_smile.
...
The latter name is likely to be removed in the near future.
2017-04-30 16:40:58 -07:00
Tim Abbott
565370a365
bugdown: Create make_realm_emoji function.
...
Currently, this is a duplicate of the existing make_emoji, but the
plan is to change that in some upcoming refactoring.
2017-04-30 16:40:58 -07:00
Tim Abbott
18bd566958
bugdown: Extract unicode_emoji_to_codepoint.
2017-04-30 16:40:58 -07:00
Tim Abbott
e0a8f383b3
bugdown: Remove unnecessary first argument to make_emoji.
2017-04-30 16:40:58 -07:00
Tim Abbott
cfeff245c1
emoji: Manage Zulip emoji as a custom/extra realm emoji.
...
This is prerequisite for converting our emoji system to work off of
iamcal sprite sheets.
Also, fixes #4308 .
2017-04-30 16:40:31 -07:00
Eeshan Garg
8ef18463d6
github_webhook: Use author's full name if username is not available.
...
In cases where the webhook payload doesn't have the username for the
author of a particular commit (this can happen if the author doesn't
have a GitHub account or the author's email is not associated with
their GitHub account), we now use the author's full name to format
messages.
2017-04-29 14:57:57 -07:00
fionabunny
78f2df5649
home.py: move initial_pointer as pointer to register_ret.
...
This is the last of the fields in page_params that could come from
register_ret but wasn't doing so.
2017-04-28 23:39:14 -07:00
fionabunny
d3e7e6542a
home.py: move user_profile full_name to register_ret.
...
Move the user_profile data section down into fetch_initial_state_data
so it entirely pulls from register_ret for #3853 .
2017-04-28 23:31:28 -07:00
fionabunny
d5421f25e1
home.py: move user_profile email to register_ret.
...
Move the user_profile data section down into fetch_initial_state_data so
it entirely pulls from register_ret for #3853
2017-04-28 23:27:34 -07:00
fionabunny
9daf9faa5c
home.py: move enter_sends to register_ret.
...
Move the user_profile data section down into fetch_initial_state_data so
it entirely pulls from register_ret for #3853
2017-04-28 23:26:28 -07:00
fionabunny
6f770c2465
home.py: move user_id to register_ret.
...
Move the user_profile data section down into fetch_initial_state_data so
it entirely pulls from register_ret for #3853
2017-04-28 23:26:28 -07:00
fionabunny
6159b8e21a
home.py: move is_admin to register_ret.
...
Move the user_profile data section down into fetch_initial_state_data so
it entirely pulls from register_ret for #3853
2017-04-28 23:26:27 -07:00
fionabunny
d92da7d193
home.py: move can_create_streams to register_ret.
...
Move the user_profile data section down into fetch_initial_state_data
so it entirely pulls from register_ret for #3853 .
This field requires some changes to the events race handling.
2017-04-28 23:23:21 -07:00
fionabunny
379a8afaae
home.py: move autoscroll_forever to register_ret.
...
Move the user_profile data section down into fetch_initial_state_data so
it entirely pulls from register_ret for #3853
2017-04-28 23:16:32 -07:00
fionabunny
22be291d96
home.py: move default_desktop_notifications to register_ret.
...
Move the user_profile data section down into fetch_initial_state_data so
it entirely pulls from register_ret for #3853
2017-04-28 23:16:32 -07:00
Tim Abbott
df8f4a837c
home: Get page_params.enable_desktop_notifications from register_ret.
2017-04-28 23:15:35 -07:00
fionabunny
4696819629
Restructure format of avatar events and push into register_ret.
...
This moves the avatar_ fields in page_params to come from
register_ret. Unlike many fields, changing this had a bit of
complexity, because the avatar update events didn't actually contain
some of the details required for moving these into register_ret to
work correctly without races.
We fix that as part of this change.
Modified significantly by tabbott.
2017-04-28 23:04:01 -07:00
Tim Abbott
c63466cae3
home: Get pm_content_in_desktop_notifications from register_ret.
2017-04-28 22:06:32 -07:00
Tim Abbott
2a16cc1d24
home: Get enable_stream_desktop_notifications from register_ret.
2017-04-28 22:01:46 -07:00
Tim Abbott
2a8a101fe2
home: Get page_params.enable_stream_sounds from register_ret.
2017-04-28 21:56:58 -07:00
Tim Abbott
30db811167
home: Get page_params.enable_sounds from register_ret.
2017-04-28 21:54:05 -07:00
Tim Abbott
a0ef1210eb
home: Get enable_offline_email_notifications from register_ret.
2017-04-28 21:51:41 -07:00
Tim Abbott
1141111b74
home: Get enable_online_push_notifications from register_ret.
2017-04-28 21:51:07 -07:00
Tim Abbott
68cdbdd478
home: Get enable_offline_push_notifications from register_ret.
2017-04-28 21:50:41 -07:00
Tim Abbott
ba384240b0
home: Get enable_digest_emails from register_ret.
2017-04-28 21:50:12 -07:00
fionabunny
83191cfadf
home.py: move timezone to register_ret.
...
Moving the user_profile data section down into fetch_initial_state_data
so it entirely pulls from register_ret in #3853
2017-04-28 21:40:37 -07:00
fionabunny
16a0327c33
home.py: move emojiset to register_ret.
...
Moving the user_profile data section down into fetch_initial_state_data
so it entirely pulls from register_ret for #3853
2017-04-28 21:40:36 -07:00
fionabunny
2bdb6a00a7
home.py: move emojiset_choices to register_ret.
...
Moving user_profile data to fetch_initial_state_data from #3853
2017-04-28 21:40:26 -07:00
fionabunny
78bcbc79d6
home.py: move people_list as realm_users to register_ret.
...
Simplify the page_params generation logic #3853
2017-04-28 21:33:33 -07:00
fionabunny
7db8c61aac
home.py: move event_queue_id as queue_id to register_ret.
...
Simplify the page_params generation logic #3853
2017-04-28 21:33:17 -07:00
fionabunny
453fc06686
home.py: move initial_presences as presenses to register_ret.
...
Simplify the page_params generation logic #3853 .
2017-04-28 21:30:29 -07:00
fionabunny
84c4d67916
home.py: move bot_list as realm_bots to register_ret.
...
Simplify the page_params generation logic #3853
2017-04-28 21:24:44 -07:00
fionabunny
a7192f4334
home.py: move neversubbed_info as never_subscribed to register_ret.
...
Simplify the page_params generation logic #3853
2017-04-28 21:24:44 -07:00
fionabunny
5676eaab50
home.py: move unsubbed_info as unsubscribed to register_ret.
...
Simplify the page_params generation logic #3853
2017-04-28 21:24:43 -07:00
fionabunny
26d080cf64
home.py: rename subbed_info and move to register_ret.
2017-04-28 21:24:43 -07:00
fionabunny
b7c6d46bf9
home.py: move password_auth_enabled as realm_password_auth_enabled.
...
Part of #3853 .
2017-04-28 21:23:48 -07:00
fionabunny
635a05fe80
home.py: move name_changes_disabled as realm_name_changes_disabled.
...
This appears to have been partially completed prior. Part of #3853 .
2017-04-28 21:12:23 -07:00
fionabunny
70fe2eab60
home.py: move is_zephyr_mirror_realm as realm_is_zephyr_mirror_realm.
...
Part of #3853 .
2017-04-28 21:12:16 -07:00
fionabunny
935ddf3b17
home.py: move show_digest_email as realm_show_digest_email.
...
Part of #3853 .
2017-04-28 21:12:10 -07:00
fionabunny
64041e0da1
home.py: move mandatory_topics as realm_mandatory_topics to register_ret.
...
Part of #3853 .
2017-04-28 21:12:05 -07:00
fionabunny
79c989916d
home.py: move realm_presence_disabled to register_ret.
...
Part of #3853 .
2017-04-28 21:12:00 -07:00
fionabunny
6d2785c853
home.py: move domains as realm_domains to register_ret.
...
Part of #3853 .
2017-04-28 21:11:56 -07:00
Tim Abbott
4a67ba241e
realm_domains: Restructure library for getting realm domains.
...
* Remove duplicate list_of_domains_for_realm of get_realm_domains.
* Move get_realm_domains from actions.py.
2017-04-28 21:11:56 -07:00
fionabunny
504de6abc2
home.py: move realm_uri to register_ret.
...
Part of #3853 .
2017-04-28 21:11:50 -07:00
Steve Howell
6057c444e2
Extract _internal_prep_message().
...
The function internal_prep_message is kind of awkward to
call, so I'm moving most of its implementation to
_internal_prep_message() for upcoming refactorings.
2017-04-28 20:58:09 -07:00
Tim Abbott
8d0f48a71f
mypy: Fix duplicate annotation in test_narrow.
2017-04-28 15:47:26 -07:00
Raghav Jajodia
60362a0bec
test_narrow: Add test for search operation using email.
...
Fixes #3074 .
(Note the main issue was actually fixed by
2f09866364
); this just adds a test.
2017-04-28 15:40:50 -07:00
Neeraj Wahi
90a154e451
Add mobile auth redirect to custom URI scheme (zulip://).
...
This makes it possible for the Zulip mobile apps to use the normal web
authentication/Oauth flows, so that they can support GitHub, Google,
and other authentication methods we support on the backend, without
needing to write significant custom mobile-app-side code for each
authentication backend.
This PR only provides support for Google auth; a bit more refactoring
would be needed to support this for the GitHub/Social backends.
Modified by tabbott to use the mobile_auth_otp library to protect the
API key.
2017-04-28 11:47:35 -07:00
Tim Abbott
0566b8dd73
auth: Fix prams typo in Google auth code path.
2017-04-28 11:47:35 -07:00
Tim Abbott
83fe8d4420
auth: Simplify code for Google CSRF state.
...
This will make it much easier to avoid adding new things that aren't
actually included in the CSRF hash of the other parameters.
2017-04-28 11:47:35 -07:00
Tim Abbott
54b899860d
auth: Add GitHub to list of reported backends.
2017-04-28 11:47:35 -07:00
Tim Abbott
45b2b25026
mobile: Add mobile one-time-pad library.
...
We'll need to implement a version of the simple decoding/decryption
logic used by this library in the mobile code as well, but that should
be simple enough.
2017-04-28 11:47:35 -07:00
Tim Abbott
1b8c3398e7
models: Extract API_KEY_LENGTH constant.
2017-04-28 11:47:35 -07:00
Tim Abbott
ce33368905
GoogleOAuthTest: Include the /accounts/login/google/ step in tests.
...
This makes our Google auth tests a bit more faithful, in that they now
follow the full Oauth flow, rather than skipping the first step.
2017-04-28 11:47:35 -07:00
Tim Abbott
8b78f22660
GoogleOAuthTest: Refactor parameter encoding.
2017-04-28 11:47:35 -07:00