]>
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
.application
.backend
23 return self
.backend
.db
27 # Get the session from the cookie
28 session_id
= self
.get_cookie("session_id", None)
30 # Search for a valid database session
32 session
= self
.backend
.sessions
.get(session_id
)
34 # Found a valid session
38 def get_current_user(self
):
40 return self
.session
.impersonated_user
or self
.session
.user
42 def get_user_locale(self
):
43 # Get the locale from the user settings.
44 if self
.current_user
and self
.current_user
.locale
:
45 locale
= tornado
.locale
.get(self
.current_user
.locale
)
49 # If no locale was provided, we take what ever the browser requested.
50 return self
.get_browser_locale()
53 def remote_address(self
):
55 Returns the IP address the request came from.
57 remote_ips
= self
.request
.remote_ip
.split(", ")
64 return self
.current_user
.timezone
68 def format_date(self
, date
, relative
=True, shorter
=False,
70 # XXX not very precise but working for now.
71 gmt_offset
= self
.timezone
.utcoffset(date
).total_seconds() / -60
73 return self
.locale
.format_date(date
, gmt_offset
=gmt_offset
,
74 relative
=relative
, shorter
=shorter
, full_format
=full_format
)
76 def get_template_namespace(self
):
77 ns
= tornado
.web
.RequestHandler
.get_template_namespace(self
)
80 "bugtracker" : self
.pakfire
.bugzilla
,
81 "hostname" : self
.request
.host
,
82 "format_date" : self
.format_date
,
83 "format_size" : misc
.format_size
,
84 "friendly_time" : misc
.friendly_time
,
85 "format_email" : misc
.format_email
,
86 "format_filemode" : misc
.format_filemode
,
87 "lang" : self
.locale
.code
[:2],
88 "pakfire_version" : pakfire
.__version
__,
89 "session" : self
.session
,
90 "year" : time
.strftime("%Y"),
95 def get_error_html(self
, status_code
, exception
=None, **kwargs
):
96 error_document
= "errors/error.html"
100 "message" : httplib
.responses
[status_code
],
103 if status_code
in (400, 403, 404):
104 error_document
= "errors/error-%s.html" % status_code
106 # Collect more information about the exception if possible.
108 exception
= traceback
.format_exc()
110 return self
.render_string(error_document
, exception
=exception
, **kwargs
)
118 return self
.pakfire
.arches
122 return self
.pakfire
.mirrors
127 Indicates what level of public/non-public things a user
130 if self
.current_user
and self
.current_user
.is_admin():