Commit Graph

1551 Commits

Author SHA1 Message Date
Neil Williams
c8ea3ce9fa Refactor/rename OAuth2 token model so we can reuse it.
The OAuth2 Cassandra models are a perfect fit for other places in the
app that need randomly generated tokens.
2012-07-24 15:46:32 -07:00
Neil Williams
2f37f2604d tdb_cassandra: Let pycassa serialize timestamp when validated.
Pycassa will do its own marshalling when columns have validators
specified in the C* metadata.  We need to disable our own marshalling
when we know Pycassa will take care of it. This is already taken care of
in the general case, but timestamps are handled somewhat uniquely.
2012-07-24 15:46:32 -07:00
Neil Williams
1db68ce6b1 Require two-factor authentication to enable admin mode.
This feature can be disabled with the new ini setting
`disable_admin_otp`.
2012-07-23 15:59:17 -07:00
Neil Williams
8dfd73b195 Add framework for RFC-6238: Time-Based One Time Password Algorithm.
This provides a system for two-factor authentication, using a compliant
OTP-generator such as Google Authenticator. The framework includes a
validator for use on API calls needing authentication as well as a UI
for provisioning/resetting your secret key. A secure cookie may be
generated to effectively turn the user's browser into a temporary
authentication factor.

This feature is currently limited to admins only until full-site SSL is
available.
2012-07-23 15:59:17 -07:00
Neil Williams
529df1b13b reddit_base: Add support for Secure and HTTP-Only cookies. 2012-07-23 15:59:17 -07:00
Neil Williams
4169226735 Make profiling transparent and aggregatable.
If the config variable profile_directory is set, ProfilingMiddleware
will be added to the WSGI stack. The middleware will generate a file in
the specified directory on each request containing the contents of that
request's profile.
2012-07-23 18:57:00 -04:00
bsimpson63
283c26e2c0 Messages: Set after parameter to oldest visible message. 2012-07-23 18:57:00 -04:00
shlurbee
e48253065d Read from PromoCampaign things.
The code has already been dual-writing to PromoCampaign Things. This change
begins reading from Things while still writing to both Things and the link
attributes in case we need to roll back.
2012-07-23 18:57:00 -04:00
shlurbee
db5260f9ba Default end_date in PromotionWeights.bid_history
Makes the behavior match that of PromoteDates.bid_history, which sets the
end_date to today if it's not given as a parameter.

This fixes a bug where the function raised an error if the optional parameter
end_date wasn't provided.
2012-07-23 11:59:34 -07:00
shlurbee
9fa07d98a0 Always record trans_id in PromoCampaign things
Gets rid of default values so a data attribute will be saved even when trans_id
is zero. This change will make it possible to query for unpaid campaigns.

Also gets rid of payment state and makes sure the transaction id is preserved
even if the promoted link is rejected because this lets us link the campaign
to the refund in the promo log.
2012-07-23 11:59:10 -07:00
Neil Williams
bf2d80eec6 traffic: Reinstate averages in weekday summary.
In the previous system, the weekday summary showed the average traffic
for each day-of-week over the day interval range. The new system was
just showing the latest week's data.
2012-07-20 11:05:17 -07:00
bsimpson63
d140e00bcd Allow filtering of modactions by deleted users. 2012-07-20 11:05:17 -07:00
Max Goodman
e2ca4f3d03 Shorten recent clicks cookie to at most 5 elements. 2012-07-19 16:25:55 -07:00
Max Goodman
bcbba69a7e Simplify handling/mangling of should_compile special case.
or: How I Learned to Stop Worrying and Love the Mangling.
2012-07-19 16:25:55 -07:00
Keith Mitchell
07af98ff4f Make each of the JS files individually responsible
Make will still only build once
2012-07-19 16:25:55 -07:00
Neil Williams
149567a797 Turn off bucket validation to minimize S3 permissions.
boto attempts to validate the bucket when calling get_bucket by doing a
LIST with zero desired items. By turning off validate we can reduce the
permissions.
2012-07-19 16:17:59 -07:00
bsimpson63
e12dbdd046 Handle underscores in subreddit names in roadblocks. 2012-07-18 19:00:50 -04:00
bsimpson63
52db26df93 Handle promotions with 0 clicks. 2012-07-18 14:48:36 -04:00
shlurbee
b5812e6fa5 Check for valid campaign when fetching bid history
Occasional rogue promotion weights were causing /promoted/graph to fail. We
should figure out how those weights are being created in the first place, but
for now just check to make sure a campaign exists before using it.
2012-07-18 14:48:29 -04:00
shlurbee
6890bb56b1 Always show comments for sr discovery links
Fixes a bug where comment pages were broken for new sr discovery links.
2012-07-18 14:48:21 -04:00
Max Goodman
05afaf6580 Fix jQuery gzipping in the Makefile. 2012-07-18 14:48:07 -04:00
bsimpson63
02db4d60b1 Fix typo in VotesByDay. 2012-07-18 14:45:53 -04:00
bsimpson63
7015790e98 Write vote id only to column name for Cassandra views. 2012-07-18 14:45:35 -04:00
bsimpson63
6fd201ef37 VotesByComment. 2012-07-18 14:45:25 -04:00
bsimpson63
565ae5bb2f Only show "view live" link on current live campaign. 2012-07-18 14:45:11 -04:00
Neil Williams
42319801c3 Get more comprehensive list of needed subreddits in ModAction.add_props.
Links that had been taken down for DMCA compliance (and therefore moved
into the takedown subreddit) were breaking modlog because the takedown
subreddit wasn't in the list of subreddits to look up.
2012-07-16 12:06:55 -07:00
bsimpson63
5edadcb20a Use weight instead of bid when scheduling campaigns. 2012-07-16 12:03:58 -07:00
Neil Williams
cce5c1c8e1 Add reddit-stop event to upstart jobs.
This allows us to quickly turn off every reddit-related process on a
system.
2012-07-16 12:02:56 -07:00
Neil Williams
d4661ad89b Add upstart job for putting subscriber stats in traffic db. 2012-07-16 12:02:56 -07:00
shlurbee
aff7c460aa Fix query for fetching promotion schedule by user.
The general query worked fine but passing an author_id raised an error.
2012-07-16 11:52:23 -07:00
shlurbee
7abbac6e25 Show traffic for manual promo
Defaults to showing traffic for the last month if a promoted link doesn't have
any campaigns associated with it. This will make it possible to see stats for
manually launched promos like the subreddit discovery links.
2012-07-16 11:52:22 -07:00
Keith Mitchell
5928add7c2 Fix facets in Opera 2012-07-16 11:52:20 -07:00
Keith Mitchell
16c753096c Use a raw string for the related_replace_regex 2012-07-16 11:52:19 -07:00
Neil Williams
8d276592ce Update .gitignore for renamed generated strings file. 2012-07-16 11:52:17 -07:00
Matthew Robertson
eac376c02b Ensure video stops playing when "hide" clicked.
Fixes reddit/reddit#233.
2012-07-16 11:52:14 -07:00
Max Goodman
412b1c3e55 Tighten up cssfilter bg-gradient regex to prevent inner rules.
Thanks to listen2 for disclosing this issue.
2012-07-16 11:31:30 -07:00
Neil Williams
9cd5fed51d Add traffic to example.ini. 2012-07-14 09:30:06 -07:00
Neil Williams
0c4b64ee3b zip_timeseries: Handle descending *and* ascending data correctly.
The previous fix broke promoted link traffic which is ordered the other
way.
2012-07-13 11:31:28 -07:00
Neil Williams
251f0f310b traffic: Reinstate JSON access to subreddit traffic data. 2012-07-13 11:31:28 -07:00
Neil Williams
6352fedad6 traffic: Darken the green graphs for color blind users.
This should be a bit more color-blind friendly as it's high-contrast.

Additionally, I've changed the name of the variable to something less
tied to the contents of the variable, as I really should've known better
from the world of CSS classes.
2012-07-13 11:31:28 -07:00
Neil Williams
9db5a52743 Show subreddit public description on private subreddit 403 page.
This allows moderators of private subreddits to explain why it is
private or how to request access (or simply that you shouldn't and
should go the hell away.)
2012-07-13 11:31:28 -07:00
Neil Williams
649a56a06f Truncate sidebars when used as description fallbacks.
There's been enough time to add proper public descriptions and the
remaining gigantic sidebars are an eyesore in subreddit listings.
2012-07-13 11:31:28 -07:00
Keith Mitchell
cbadd98a85 Add text to search page button 2012-07-13 11:31:28 -07:00
Maxime Rouiller
a07741f31a Added padding to the search button 2012-07-13 11:31:28 -07:00
Keith Mitchell
9bd9a43da8 Fix issue with unicode in search facets 2012-07-13 11:31:28 -07:00
Keith Mitchell
f4d738060e Remove duplicate in INVALID_QUERY_CODES 2012-07-13 11:31:28 -07:00
Keith Mitchell
af0dbe5b66 Don't show NSFW links in the related tab unless the Link is marked NSFW 2012-07-13 11:31:28 -07:00
Neil Williams
45d86810d8 traffic: Use max instead of min to calculate current slice.
zip_timeseries works *backwards* through time so min was getting
the least-correct time.
2012-07-12 19:42:57 -07:00
Neil Williams
94945f7341 Overhaul traffic pages (and update a few self-serve pages).
* Upgrade flot and include the new timeseries flot plugin.
  (flot/flot@ca050b26c2)

* All times mentioned by traffic are now in UTC, not "local."

* Traffic data is generated as actual tables and JavaScript
  generates the Flot charts from the tables for accessibility.

* Many pieces of traffic data that were only accessible from the
  old traffic app are now moved into the reddit app.

* Traffic backend lag time is indicated on the graphs for clarity.

* Use excanvas with Flot instead of Google Charts for old-IE fallback.
2012-07-12 14:56:27 -07:00
Neil Williams
6a2c4afcb2 Directly access traffic database for traffic queries.
Traffic stats are currently pulled from the traffic app, which is a
separate pylons application, via HTTP requests. This patch eliminates
the dependency on that extra app by moving the queries into the reddit
app while maintaining the existing API near-verbatim. This allows us to
ditch the external traffic app.
2012-07-12 14:56:27 -07:00