]>
wolfpit.net Git - ctf/ctfs/google2015/wallowing-wallabies-01/.git/blob - main.py
7 from webapp2_extras
import sessions
12 class RequestHandler(webapp2
.RequestHandler
):
13 """Base request handler for Mannequin Moments."""
14 jinja_env
= jinja2
.Environment(
15 loader
=jinja2
.FileSystemLoader('templates')
19 self
._session
_store
= sessions
.get_store(request
=self
.request
)
22 super(RequestHandler
, self
).dispatch()
24 self
._session
_store
.save_sessions(self
.response
)
26 @webapp2.cached_property
28 return self
._session
_store
.get_session()
30 def render(self
, tpl_name
, **args
):
31 tmpl
= self
.jinja_env
.get_template(tpl_name
)
32 args
['logged_in'] = True if self
.session
.get('user') else False
33 self
.response
.out
.write(tmpl
.render(**args
))
36 class HomeHandler(RequestHandler
):
38 self
.render('index.tpl')
41 class LoginHandler(RequestHandler
):
43 self
.render('login.tpl')
47 username
= self
.request
.get('username') or None
48 password
= self
.request
.get('password') or None
49 # Change #1281 - emergency maintenance due to security issues
51 return self
.render('login.tpl', error
='Undergoing emergency maintenance, sorry for any inconvenience caused')
52 self
.session
['user'] = username
53 return webapp2
.redirect('/', response
=self
.response
)
56 class FlagHandler(RequestHandler
):
59 flags
= models
.Flag
.query().fetch()
60 self
.render('flags.tpl', flags
=flags
)
64 'webapp2_extras.sessions': {
65 'secret_key': 'a793134b-c2c5-4cbf-973b-64ff7eea863a',
66 'name': 'mannequin-moments',
70 app
= webapp2
.WSGIApplication([
71 webapp2
.Route('/', HomeHandler
),
72 webapp2
.Route('/login', LoginHandler
),
73 webapp2
.Route('/flags', FlagHandler
),