Changeset 3371

Show
Ignore:
Timestamp:
03/15/08 09:12:07 (6 months ago)
Author:
pacopablo
Message:

More 0.11 porting

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tracblogplugin/trunk/setup.py

    r3225 r3371  
    33from setuptools import setup, find_packages 
    44 
    5 PACKAGE = 'TracBlogPlugin
     5PACKAGE = 'TracBlog
    66VERSION = '0.3' 
    77 
  • tracblogplugin/trunk/tracblog/admin.py

    r2401 r3371  
    11# -*- coding: utf-8 -*- 
    22# 
    3 # Copyright (C) 2006 John Hampton <pacopablo@asylumware.com> 
     3# Copyright (C) 2006-2008 John Hampton <pacopablo@pacopablo.com> 
    44# All rights reserved. 
    55# 
     
    1414# 
    1515# Author: John Hampton <pacopablo@asylumware.com> 
     16import os 
     17import os.path 
     18from pkg_resources import resource_filename 
    1619 
    1720from trac.core import * 
     
    2124from trac.util import escape, Markup, format_date, format_datetime 
    2225from trac.wiki.formatter import wiki_to_html 
    23 from webadmin.web_ui import IAdminPageProvider 
     26from trac.admin import IAdminPanelProvider 
    2427 
    25 import os 
    26 import os.path 
    27 from pkg_resources import resource_filename 
    2828 
    2929__all__ = ['BlogAdminPlugin'] 
     
    3434    """ 
    3535 
    36     implements(ITemplateProvider, IAdminPageProvider, IPermissionRequestor) 
     36    implements(ITemplateProvider, IAdminPanelProvider, IPermissionRequestor) 
    3737 
    3838    # IPermissionRequestor 
  • tracblogplugin/trunk/tracblog/new_blog.py

    r3225 r3371  
    1919import inspect 
    2020import re 
     21import urlparse 
    2122from pkg_resources import resource_filename 
    2223 
     
    4243 
    4344_tag_split = re.compile('[,\s]+') 
     45 
     46ENTRY_BASE = '/blog/new' 
    4447 
    4548class BlogPost(WikiMacroBase): 
     
    101104 
    102105    def match_request(self, req): 
    103         return req.path_info == '/blog/new' 
     106        return req.path_info == ENTRY_BASE 
    104107 
    105108    def process_request(self, req): 
     
    117120        page_format = req.args.get('pagename', self.page_format)  
    118121        tags = self._get_tags(req) 
    119         referer = req.args.get('referer') or req.get_header('Referer') or req.href.blog(
     122        referer = self._get_referer(req
    120123 
    121124        author = req.authname 
     
    217220        return pagename 
    218221 
     222    def _get_referer(self, req): 
     223        """ Return the referring page. 
     224 
     225        If the referring page is the new blog entry page, redirect to the main 
     226        blog page. 
     227 
     228        Also protects against referring to an external site. 
     229 
     230        """ 
     231        ref = req.args.get('referer') or req.get_header('Referer') or req.href.blog() 
     232        base_scheme, base_host = urlparse.urlparse(req.base_url)[:2] 
     233        ref_scheme, ref_host = urlparse.urlparse(ref)[:2] 
     234        if ref and (ref.startswith('http://')  or ref.startswith('https://')) \ 
     235           and not (ref_host == base_host): 
     236             # don't redirect to external sites 
     237             ref = req.href.blog() 
     238        if urlparse.urlparse(ref)[2] == ENTRY_BASE: 
     239            ref = req.href.blog() 
     240        return ref 
     241 
    219242    def var_subs(self, author, s):  
    220243        s = s.replace('$U', author)