I found solution after "googling". After that I removed post (well, I can
remove post, but I can't stop email :) )
My code is now:
*from tg.controllers.tgcontroller import TGController
from tg.controllers import WSGIAppController
class PrivateStatics(TGController):
@expose()
def lookup(self, *args):
site_dir = os.path.join(config.get('here'), '/myapp/private')
return WSGIAppController(StaticURLParser(site_dir)), args
_lookup = lookup *
But when I try to get files using path
"http://www.mysite.com/private/img.png" I have another error:
Traceback (most recent call last):
File
"/www/tg2env/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py",
line 1068, in process_request_in_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 638, in __init__
self.handle()
File
"/www/tg2env/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py",
line 442, in handle
BaseHTTPRequestHandler.handle(self)
File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
self.handle_one_request()
File
"/www/tg2env/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py",
line 437, in handle_one_request
self.wsgi_execute()
File
"/www/tg2env/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py",
line 287, in wsgi_execute
self.wsgi_start_response)
File
"/www/tg2env/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/cascade.py",
line 130, in __call__
return self.apps[-1](environ, start_response)
File
"/www/tg2env/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/registry.py",
line 379, in __call__ app_iter = self.application(environ, start_response)
File
"/www/tg2env/local/lib/python2.7/site-packages/Pylons-1.0-py2.7.egg/pylons/middleware.py",
line 150, in __call__
self.app, environ, catch_exc_info=True)
File
"/www/tg2env/local/lib/python2.7/site-packages/Pylons-1.0-py2.7.egg/pylons/util.py",
line 48, in call_wsgi_application
app_iter = application(environ, start_response)
File
"/www/tg2env/local/lib/python2.7/site-packages/WebError-0.10.3-py2.7.egg/weberror/evalexception.py",
line 235, in __call__
return self.respond(environ, start_response)
File
"/www/tg2env/local/lib/python2.7/site-packages/WebError-0.10.3-py2.7.egg/weberror/evalexception.py",
line 483, in respond
return debug_info.content()
File
"/www/tg2env/local/lib/python2.7/site-packages/WebError-0.10.3-py2.7.egg/weberror/evalexception.py",
line 539, in content
self.base_path, self.counter, self.libraries)
File
"/www/tg2env/local/lib/python2.7/site-packages/WebError-0.10.3-py2.7.egg/weberror/evalexception.py",
line 657, in format_eval_html
short_er, extra_data = short_formatter.format_collected_data(exc_data)
File
"/www/tg2env/local/lib/python2.7/site-packages/WebError-0.10.3-py2.7.egg/weberror/formatter.py",
line 73, in format_collected_data
importance, title, value)
File
"/www/tg2env/local/lib/python2.7/site-packages/WebError-0.10.3-py2.7.egg/weberror/formatter.py",
line 345, in format_extra_data
return self.zebra_table(title, value)
File
"/www/tg2env/local/lib/python2.7/site-packages/WebError-0.10.3-py2.7.egg/weberror/formatter.py",
line 390, in zebra_table
% make_wrappable(self.quote(truncate(value))))
File
"/www/tg2env/local/lib/python2.7/site-packages/WebError-0.10.3-py2.7.egg/weberror/formatter.py",
line 295, in quote
s = s.encode('latin1', 'htmlentityreplace')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 279:
ordinal not in range(128)
The same error was when I wrote Your part of code without importing
TGController and WSGIAppController.
Looks like I missed something... :(
четверг, 4 июля 2013 г., 16:16:14 UTC+4 пользователь Alessandro Molina
написал:
>
> Hi
> Which version of turbogears? My solution is explicitly only for
> turbogears2. That might be the reason TGController is not available
> Il giorno 04/lug/2013 12:59, "Maxim Oganesyan"
> <[email protected]<javascript:>>
> ha scritto:
>
>> Hi, Alessandro!
>> I'm trying to use Your solution.
>>
>> I've got a question:
>> from *????* import TGController
>>
>> import TGController does not work...
>>
>> Best regards.
>> Maxim.
>>
>> вторник, 19 июня 2012 г., 0:28:58 UTC+4 пользователь Alessandro Molina
>> написал:
>>>
>>> Static files are served by a middleware in the WSGI chain,
>>> this runs before the authentication layer got in, so it doesn't have
>>> any knowledge of users.
>>>
>>> You can roll your own statics serving controller which checks users
>>> and so on, a minima solution can be:
>>>
>>> class StaticsController(**TGController):
>>> @expose()
>>> def _lookup(self, *args):
>>> return WSGIAppController(**StaticURLParser(statics_path))**,
>>> args
>>>
>>> On Mon, Jun 18, 2012 at 2:39 PM, abc_coder <[email protected]>
>>> wrote:
>>> > Hi all
>>> >
>>> > I searched a lot but haven't found any solution. How can I in
>>> turgobears 2
>>> > restrict access to static files only for logged users?
>>> > I want add some protection from unlogged users and web robots.
>>> >
>>> > Please help.
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> Groups
>>> > "TurboGears" group.
>>> > To view this discussion on the web visit
>>> > https://groups.google.com/d/**msg/turbogears/-/a6oOER4Ps3cJ<https://groups.google.com/d/msg/turbogears/-/a6oOER4Ps3cJ>.
>>> >
>>>
>>> > To post to this group, send email to [email protected].
>>> > To unsubscribe from this group, send email to
>>> > turbogears+...@**googlegroups.com.
>>> > For more options, visit this group at
>>> > http://groups.google.com/**group/turbogears?hl=en<http://groups.google.com/group/turbogears?hl=en>.
>>> >
>>>
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "TurboGears" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> Visit this group at http://groups.google.com/group/turbogears.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
--
You received this message because you are subscribed to the Google Groups
"TurboGears" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/turbogears.
For more options, visit https://groups.google.com/groups/opt_out.