#2322: Optionally Turn Off Request Extensions
------------------------+---------------------------------------------------
Reporter: asabil | Owner:
Type: task | Status: new
Priority: normal | Milestone:
Component: TurboGears | Version: 2.0rc1
Severity: normal | Resolution:
Keywords: |
------------------------+---------------------------------------------------
Changes (by jorge.vargas):
* type: defect => task
* summary: Mimetypes side effect => Optionally Turn Off Request
Extensions
Old description:
> On Mon, May 11, 2009 at 3:16 PM, Ali Sabil <[email protected]> wrote:
> >
> > Hi all,
> >
> > Today I have been bitten by a rather unexpected behaviour from
> > Turbogears 2 with the following code:
> >
> > class UserController(BaseController):
> > @expose('foo.templates.user')
> > def default(self, user, **kwargs):
> > print user
> > return dict()
> >
> >
> > This controller works like a charm for this request: /user/ali.sabil
> > But produces a rather confusing result for /user/john.man
> >
> > The problem comes from the fact that .man is a known filename
> > extension for a known mimetype, which leads the TG2
> > ObjectDispatchController to chop the extension off, and have user=john
> > in the controller.
> >
> > I understand that this behaviour can be very useful in many scenarios,
> > but I think TG2 should provide a simple way to disable it completely.
> >
> That is a totally unexpected side effect.
>
> I think we should upgrade the internal code to only serve the
> mimetypes from a restricted list. Instead of depeding on the mimetypes
> module which does some weird stuff.
>
> At this point that is a bug that can't be turned off as it assumes
> foo.something is a call to the mimetypes system. I guess we could add
> a flag to turn it off. Could you open a ticket for this?
New description:
Today I have been bitten by a rather unexpected behaviour from
Turbogears 2 with the following code:
{{{
class UserController(BaseController):
@expose('foo.templates.user')
def default(self, user, **kwargs):
print user
return dict()
}}}
This controller works like a charm for this request: /user/ali.sabil
But produces a rather confusing result for /user/john.man
The problem comes from the fact that .man is a known filename
extension for a known mimetype, which leads the TG2
ObjectDispatchController to chop the extension off, and have user=john in
the controller.
I understand that this behaviour can be very useful in many scenarios, but
I think TG2 should provide a simple way to disable it completely.
That is a totally unexpected side effect.
I think we should upgrade the internal code to only serve the
mimetypes from a restricted list. Instead of depeding on the mimetypes
module which does some weird stuff.
At this point that is a bug that can't be turned off as it assumes
foo.something is a call to the mimetypes system. I guess we could add
a flag to turn it off.
Comment:
formatting
--
Ticket URL: <http://trac.turbogears.org/ticket/2322#comment:1>
TurboGears <http://www.turbogears.org/>
TurboGears front-to-back web development
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "TurboGears Tickets" group.
This group is read-only. No posting by normal members allowed.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/turbogears-tickets?hl=en?hl=en
-~----------~----~----~----~------~----~------~--~---