Commit Graph

257 Commits

Author SHA1 Message Date
Jason Michalski 4c90392261 [schema] Add an per-user option to disable notification on new streams
Added a default_desktop_notifications boolean to userprofile with a UI
in Zulip Labs. This flag is used to default the notification flag on new
subscriptions.

(imported from commit a25223cc5ecf09980cf877991e25034bb3fd4046)
2014-01-16 20:13:34 -05:00
Tim Abbott 907e9688fe Change embedded narrow keywords to more clearly specify stream.
(imported from commit 63293f6601503094724711dc335d2f7e67e710f7)
2014-01-16 18:06:30 -05:00
Tim Abbott bc22b1eb16 Add support for topic narrows in our embedded narrow widget.
(imported from commit d3ef2db8e0903e445d9ecc2c28d9f249a0042bd9)
2014-01-16 18:05:35 -05:00
Steve Howell ec91ece6ed Remove "Create new stream" UI for restricted users.
If a user is not allowed to create new streams, then do not
show the "Create new stream" UI at the top of the settings page.

(imported from commit b97626938d8b612317c2189f7eca0d4bd27fc274)
2014-01-16 14:43:57 -05:00
Steve Howell 8bf9068d0b Add back end support to restrict creation of streams.
Note that this doesn't actually restrict anybody yet, but it
makes it so that UserProfile.can_create_streams must return True
for a user to create a stream.  We can modify that in the future
to have special behavior for realms that want more restrictions.

(imported from commit 432e85b1ca86aaee4a6bd1d4a6d0b2c78ecb0863)
2014-01-16 14:43:56 -05:00
Steve Howell fd5fd7e61b Have /json/users return is_admin flag.
(imported from commit 49b5c621510c47656f92c38bc5b9b1b6381d5c21)
2014-01-16 13:41:53 -05:00
Steve Howell e837f8bf8b Add back end for admins to assign/remove admin.
Add back end for admins to assign/remove admin permissions for other users.
The /json/users/<email> endpoint allows you to PATCH is_admin.

(imported from commit bb5e6d44d759274cc2a7cb27e479ae96b2f271b5)
2014-01-16 13:41:53 -05:00
Tim Abbott dfcb7529ed Disable desktop notifications in embedded narrow windows.
(imported from commit 327f64eb1c7119ccf6e595b9f9748293a06b5b0b)
2014-01-14 12:09:14 -05:00
Zev Benjamin 81010c6c3d Clean up imports
(imported from commit f80891c6ae3c00daeafed3b504d24a6722f03a82)
2014-01-14 11:47:12 -05:00
Luke Faraone 0a574eeefa Return machine-readable error codes along with 403 responses.
(imported from commit f60e9fa587a41d643cb817cae3ef06938a59f68c)
2014-01-13 13:31:52 -05:00
Luke Faraone 3948e1673d [manual] Accept OAuth2 tokens for API login via Google Apps
This is used by the Android app to authenticate without prompting for a
password.

To do so, we implement a custom authentication backend that validates
the ID token provided by Google and then tries to see if we have a
corresponding UserProfile on file for them.

If the attestation is valid but the user is unregistered, we return that
fact by modifying a dictionary passed in as a parameter. We then return
the appropriate error message via the API.

This commit adds a dependency on the "googleapi" module. On Debian-based
systems with the Zulip APT repository:
    sudo apt-get install python-googleapi

For OS X and other platforms:
    pip install googleapi

(imported from commit dbda4e657e5228f081c39af95f956bd32dd20139)
2014-01-13 13:30:55 -05:00
Jessica McKellar 33bcd1977a Show the first person in the realm an invite banner if they are alone.
Previously we unconditionally showed the "get the desktop app"
banner. Now, if the first user declines to invite people as part of
their onboarding workflow, show the invite banner instead.

(imported from commit f7892fef17c923154a700149b8f5be99e9c03fa0)
2014-01-13 10:36:48 -05:00
Jessica McKellar 2543aea3b8 Send us a Zulip on bulk invites.
We currently only do bulk invites when the first user in the realm
goes through the signup process, so this will help us know if that
step is effective for getting more early users into the app.

(imported from commit c846086185ed28b13d3d4b695a9c8cad913d3bc9)
2014-01-13 10:36:48 -05:00
Tim Abbott 4bf3ace444 [manual] Allow signups for emails held by non-MIT mirror dummy accounts.
Before this is deployed to prod, we need to manually frob our database
to set the is_mirror_dummy=True bit for all existing mirror users.

(imported from commit 39f1938cef091cf1d7d97307f76b137fe1d92b6c)
2014-01-10 21:38:59 -05:00
Zev Benjamin 3720cb1c33 Move message-related views into their own file
(imported from commit 2c71cc1b5d3f0210c98767888c461d5c6d046b49)
2014-01-10 21:38:59 -05:00
Jessica McKellar 0e120c9bbf Show users in deactivated realms an error page when they try to log in.
(imported from commit 6de839ae944b8c76715361c2211cd759d78f4f1a)
2014-01-07 20:24:21 -05:00
Jessica McKellar 32549ec135 Show new users an error page when they try to sign up for a deactivated realm.
(imported from commit 1696a6a5d26ec92b881cd3fda43e6b262e2fbfa5)
2014-01-07 20:24:21 -05:00
Leo Franchi c7836626ea Accept a pass-through local_id option in send_message
(imported from commit 3f7b8e862a92d8a11b68da9ff23f711b6b25b5e2)
2014-01-07 17:33:34 -05:00
Leo Franchi 76892c52aa Send realm filters to clients
(imported from commit a3ba31701baa4d515ea3bf36c39d7255f1dd20d6)
2014-01-07 17:33:33 -05:00
Leo Franchi 4a15f9a2cc Add avatar_url to page_params
(imported from commit e78eeb83ffa0928a624ea54b590cbd42c32b1bc4)
2014-01-07 17:33:33 -05:00
Steve Howell 654ce3e0c7 Add make_stream_private endpoint.
(imported from commit b504c24fd651ecf8814e64725a9f303dc085b14e)
2014-01-06 11:59:47 -05:00
Steve Howell e0c62c5eda Add make_stream_public endpoint.
(imported from commit 03d4cff5587d0aa149997f2f6ae28ec4ede95d7a)
2014-01-06 11:59:47 -05:00
Steve Howell 12b921c9a3 [verify after deploy] Fix API endpoint docs.
After deploying to both staging and prod, double check the docs
are correct here.  This fixes the API docs on prod, which had
"POST /api/v1/messages", despite "/api" not being part of the
prod path.  Prod docs are here:

https://zulip.com/api/endpoints/

(imported from commit a2c4d316128f88171f4a76074314be64d9bc9728)
2014-01-03 19:10:01 -05:00
Leo Franchi 72bfc12f18 Expose a users/me/presence API endpoint
(imported from commit 770310284e91ae20d766cd9a52dd1005b5e47e6b)
2014-01-01 17:02:01 -06:00
Leo Franchi 9918b8f039 Whitelist mac clients with Mac UAs
(imported from commit a602dba099e1651996c1fb2ad1f01edf4a82dab8)
2013-12-19 17:23:38 -05:00
Tim Abbott 2264a07c03 Update server-side app checks to handle the new app names.
(imported from commit da7b2c06b413add1881b2d80a89794d0db9c810f)
2013-12-19 17:21:26 -05:00
Leo Franchi 0e8fc2a26a Match new User-Agent format for the desktop app in discrimination
(imported from commit 51c296570f506f2280556956b3bf9c26e95cc2f8)
2013-12-19 16:53:45 -05:00
Steve Howell ab9f6b301f Validate msg_ids in messages_in_narrow_backend.
(imported from commit fde39d8766b2de9e41dee52e3372ce4aa27c353b)
2013-12-18 16:00:16 -05:00
Steve Howell ea42d0bb16 Validate narrow in events_register_backend.
(imported from commit 5b873846fece98f7fbf0b6cb6ed5c098e72ac7f4)
2013-12-18 16:00:16 -05:00
Steve Howell f7ec8cccc7 Validate subscriptions in add_subscriptions_backend.
(imported from commit 3d4b669ade135dfa85c01238db110a5e4c1362b2)
2013-12-18 16:00:16 -05:00
Steve Howell 48319f9763 Validate subscriptions in remove_subscriptions_backend.
(imported from commit 9cbbaf35791b204c78a56d7598cff9775901c5ed)
2013-12-18 16:00:16 -05:00
Steve Howell 28b5b175a3 Validate messages in update_message_flags.
(imported from commit e4905fb0f56f56e5486828eb177493c42a0792f2)
2013-12-18 16:00:16 -05:00
Steve Howell 9df608c612 Validate muted_topics variable in json_set_muted_topics.
(imported from commit 1f6250bb170212af9b5f79a4ef07d57cdaab641d)
2013-12-18 12:45:30 -05:00
Steve Howell b2bffc26f9 Validate alert_words is a list of strings.
(imported from commit f6776c17ce4fcc84b9a6a75858154837c6122789)
2013-12-18 12:45:28 -05:00
Luke Faraone 0311bf8e4b Don't crash if prereg_user doesn't have default streams set
(imported from commit 8d24ecd1bac801f3b8502116933ed4470f4fad9e)
2013-12-18 11:33:34 -05:00
Steve Howell b764bb427b Validate invitee_emails better in json_bulk_invite_users().
(imported from commit a446a361677bcb0501d9a340f7b5bb3614c7481b)
2013-12-17 16:24:59 -05:00
Tim Abbott 150ca939b1 Disable some buttons in embedded widget.
(imported from commit 7d6d4725b139ea71c579dfd7d19c38d7bb11ee44)
2013-12-16 17:46:02 -05:00
Tim Abbott 2276c6e524 Add support for loading a narrows-only embedded Zulip window.
Features:
* Only shows messages in the narrow
* New messages in the narrow will arrive as they are sent
* Works even for streams you're not subscribed to
* Automatically subscribes you to a stream on send
* Doesn't update your pointer
* All searches etc. automatically have the narrow added

(imported from commit 2e12b76849f6ca0f53dda5985dad477a04f7bbac)
2013-12-16 17:46:02 -05:00
Tim Abbott 28c03e3f0d Simpify interface for editing/accessing unencoded page_params.
(imported from commit c7c7dce2ecc886f4bd9e5da798b1007887e77642)
2013-12-16 17:46:01 -05:00
Tim Abbott 1ca8804468 Fix renaming streams.
(imported from commit 63c41d7f1175f132dc835e76362d679f00800d3f)
2013-12-16 10:32:55 -05:00
Steve Howell 3b0a563730 Use REQ(validator=) style for update_subscriptions_backend.
(imported from commit 48e16695f7ab9f32b10370751c528dc27583ada7)
2013-12-13 18:23:40 -05:00
Steve Howell cc2779c80e Use REQ(validator=) style for event_types in events_register_backend.
(imported from commit 3af787fcc87355866107d197ef2c9e9552151a8a)
2013-12-13 18:23:40 -05:00
Steve Howell a20270dbc7 Use REQ(validator=) style for principals in add_subscriptions_backend.
(imported from commit 307ce32cc0c56f8a226244cf1128b1c0633852f7)
2013-12-13 18:19:10 -05:00
Steve Howell 668c0ab529 Validate principals in add_subscriptions_backend.
Make sure that principles is a list a of strings (unless it
is None).  This includes a unit test.

(imported from commit c2e3f1c0cafc207ceca67d5a174ef4e29a32c6ca)
2013-12-13 18:19:10 -05:00
Steve Howell 7e04b205fa Add type checking to events_register_backend.
(imported from commit bb3ddbfc0e471f276858d47fbdb65c890af41606)
2013-12-13 18:19:09 -05:00
Steve Howell 0cdcf102a0 Validate parameters in update_subscriptions_backend.
w/unit tests added

(imported from commit a0c0d779279b35ffc5bf1fbe4c5c5a25af263c10)
2013-12-13 18:19:08 -05:00
acrefoot 07501cd12c only show 'auto-scroll forever' setting for zulip.com and customer28.invalid
(imported from commit 329ea6a4f715a093a1ab56777964ca751300ac0c)
2013-12-13 11:50:11 -05:00
acrefoot 1bd420f12c Show auto-scroll forever setting in /#settings
(imported from commit fa66cbe52836f230e551f25c47bd755b705387d2)
2013-12-13 11:50:11 -05:00
Tim Abbott 71ad82b6aa Add support for event queues with an included narrow.
This will allow us to substantially decrease the server-side work that
we do to support our Mirroring systems (since the personal mirrors can
request only messages that user sent) and also is what we need to
support a single-stream Zulip widget that we embed in webpages.

(imported from commit 055f2e9a523920719815181f8fdb44d3384e4a34)
2013-12-12 17:36:39 -05:00
Tim Abbott 0a7c6ac261 Remove legacy /api/v1/update_pointer endpoint.
(imported from commit 4e2d111cf00ab2064291b282795c4b89835d1c17)
2013-12-12 10:31:05 -05:00