mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-02-02 18:55:32 -05:00
wiki: Redirect on view if page name differs.
This commit is contained in:
@@ -182,6 +182,7 @@ class VWikiModerator(VSrModerator):
|
||||
|
||||
class VWikiPageName(Validator):
|
||||
def run(self, page):
|
||||
original_page = page
|
||||
if not page:
|
||||
# If no page is specified, give the index page
|
||||
page = "index"
|
||||
@@ -202,7 +203,7 @@ class VWikiPageName(Validator):
|
||||
if WikiPage.is_impossible(page):
|
||||
return self.set_error('INVALID_PAGE_NAME', code=400)
|
||||
|
||||
return page
|
||||
return (page, page != original_page)
|
||||
|
||||
class VWikiPage(VWikiPageName):
|
||||
def __init__(self, param, required=True, restricted=True, modonly=False, **kw):
|
||||
@@ -217,6 +218,8 @@ class VWikiPage(VWikiPageName):
|
||||
if self.has_errors:
|
||||
return
|
||||
|
||||
page = page[0]
|
||||
|
||||
if (not c.is_wiki_mod) and self.modonly:
|
||||
return self.set_error('MOD_REQUIRED', code=403)
|
||||
|
||||
|
||||
@@ -81,8 +81,12 @@ class WikiController(RedditController):
|
||||
page, version, version2 = pv
|
||||
message = None
|
||||
|
||||
if page_name[1]:
|
||||
url = join_urls(c.wiki_base_url, page_name[0])
|
||||
return self.redirect(url)
|
||||
|
||||
if not page:
|
||||
url = join_urls(c.wiki_base_url, '/notfound/', page_name or 'index')
|
||||
url = join_urls(c.wiki_base_url, '/notfound/', page_name[0])
|
||||
return self.redirect(url)
|
||||
|
||||
if version:
|
||||
@@ -127,6 +131,7 @@ class WikiController(RedditController):
|
||||
@wiki_validate(wp=VWikiPageRevise('page'),
|
||||
page=VWikiPageName('page'))
|
||||
def GET_wiki_notfound(self, wp, page):
|
||||
page = page[0]
|
||||
api = c.render_style in extensions.API_TYPES
|
||||
if wp[0]:
|
||||
return self.redirect(join_urls(c.wiki_base_url, wp[0].name))
|
||||
@@ -251,7 +256,7 @@ class WikiApiController(WikiController):
|
||||
if not page:
|
||||
if c.error:
|
||||
self.handle_error(403, **c.error)
|
||||
page = WikiPage.create(c.site, page_name)
|
||||
page = WikiPage.create(c.site, page_name[0])
|
||||
|
||||
# Use the raw POST value as we need to tell the difference between
|
||||
# None/Undefined and an empty string. The validators use a default
|
||||
|
||||
Reference in New Issue
Block a user