diff --git a/r2/r2/controllers/api.py b/r2/r2/controllers/api.py index 2acdac7a8..0d02a8cee 100644 --- a/r2/r2/controllers/api.py +++ b/r2/r2/controllers/api.py @@ -137,6 +137,14 @@ class ApiController(RedditController): listing = wrap_links(filter(None, links or []), num = count) return BoringPage(_("API"), content = listing).render() + + @json_validate() + def GET_me(self): + if c.user_is_loggedin: + return Wrapped(c.user).render() + else: + return {} + @validatedForm(VCaptcha(), name=VRequired('name', errors.NO_NAME), email=ValidEmails('email', num = 1), diff --git a/r2/r2/lib/jsontemplates.py b/r2/r2/lib/jsontemplates.py index bbf06b560..b0f655b75 100644 --- a/r2/r2/lib/jsontemplates.py +++ b/r2/r2/lib/jsontemplates.py @@ -219,6 +219,12 @@ class AccountJsonTemplate(ThingJsonTemplate): return bool(Subreddit.reverse_moderator_ids(thing)) return ThingJsonTemplate.thing_attr(self, thing, attr) + def raw_data(self, thing): + data = ThingJsonTemplate.raw_data(self, thing) + if c.user_is_loggedin and thing._id == c.user._id: + data["modhash"] = c.modhash + return data + class LinkJsonTemplate(ThingJsonTemplate): _data_attrs_ = ThingJsonTemplate.data_attrs(ups = "upvotes", downs = "downvotes",