]>
git.ipfire.org Git - people/jschlag/pbs.git/blob - src/web/handlers_base.py
14 from ..decorators
import *
16 class BaseHandler(tornado
.web
.RequestHandler
):
19 return self
.pakfire
.cache
23 # Get the session from the cookie
24 session_id
= self
.get_cookie("session_id", None)
26 # Search for a valid database session
28 session
= self
.backend
.sessions
.get(session_id
)
30 # Found a valid session
34 def get_current_user(self
):
36 return self
.session
.impersonated_user
or self
.session
.user
38 def get_user_locale(self
):
39 # Get the locale from the user settings.
40 if self
.current_user
and self
.current_user
.locale
:
41 locale
= tornado
.locale
.get(self
.current_user
.locale
)
45 # If no locale was provided, we take what ever the browser requested.
46 return self
.get_browser_locale()
49 def remote_address(self
):
51 Returns the IP address the request came from.
53 remote_ips
= self
.request
.remote_ip
.split(", ")
60 return self
.current_user
.timezone
64 def format_date(self
, date
, relative
=True, shorter
=False,
66 # XXX not very precise but working for now.
67 gmt_offset
= self
.timezone
.utcoffset(date
).total_seconds() / -60
69 return self
.locale
.format_date(date
, gmt_offset
=gmt_offset
,
70 relative
=relative
, shorter
=shorter
, full_format
=full_format
)
72 def get_template_namespace(self
):
73 ns
= tornado
.web
.RequestHandler
.get_template_namespace(self
)
76 "bugtracker" : self
.pakfire
.bugzilla
,
77 "hostname" : self
.request
.host
,
78 "format_date" : self
.format_date
,
79 "format_size" : misc
.format_size
,
80 "friendly_time" : misc
.friendly_time
,
81 "format_email" : misc
.format_email
,
82 "format_filemode" : misc
.format_filemode
,
83 "lang" : self
.locale
.code
[:2],
84 "pakfire_version" : pakfire
.__version
__,
85 "session" : self
.session
,
86 "year" : time
.strftime("%Y"),
91 def get_error_html(self
, status_code
, exception
=None, **kwargs
):
92 error_document
= "errors/error.html"
96 "message" : httplib
.responses
[status_code
],
99 if status_code
in (400, 403, 404):
100 error_document
= "errors/error-%s.html" % status_code
102 # Collect more information about the exception if possible.
104 exception
= traceback
.format_exc()
106 return self
.render_string(error_document
, exception
=exception
, **kwargs
)
110 return self
.application
.backend
114 return self
.pakfire
.arches
118 return self
.pakfire
.mirrors
123 Indicates what level of public/non-public things a user
126 if self
.current_user
and self
.current_user
.is_admin():