Пример #1
0
 def post(self):
     data = tornado.escape.json_decode(self.request.body)
     token = data.get('token')
     user = data.get('user')
     if token == settings.TOKEN_API and user:
         current = Admin().get_telegram_user_by_name(user)
         if current.get('error'):
             self.set_status(403)
         else:
             self.write(ApiController(data, current).render())
     else:
         self.set_status(403)
Пример #2
0
 def get(self, slug):
     if self.ip_check():
         if Admin().get_user_by_token(slug):
             self.set_header("Content-Type", "text/plain")
             self.render("plugin_user.html", token=slug)
         else:
             self.set_status(404)
Пример #3
0
    def __init__(self, data, current):
        hm = PlayerInfoModel(data, current)
        self.player = hm.player()

        if self.player:
            self.render = hm.to_render_json(Admin().get_players(self.player))
        else:
            raise HTTPError(405, 'Bad arguments in request')
Пример #4
0
    def wrapper(self, *args, **kwargs):
        result = None
        gname = None

        try:
            token = tornado.escape.json_decode(self.request.body).get(
                'token', None)
            gname = tornado.escape.json_decode(self.request.body).get(
                'iitc_player', None)
        except:
            token = None

        if self.get_secure_cookie('ingress-guard'):
            result = Admin().get_user(
                self.get_secure_cookie('ingress-guard').decode('UTF-8'))
        else:
            if token:
                result = Admin().get_user_by_token(token)

        if token == settings.TOKEN_API:
            self.current_user = True
        elif result:
            if result.get('gname') == 'new' and gname and token:
                Admin().set_gname_by_token(gname, token)
            self.current_user = result
        else:
            self.current_user = False
            self.clear_cookie("ingress-guard")
            self.redirect(self.get_argument("next", "/"))

        return func(self, *args, **kwargs)
Пример #5
0
    def get(self):
        if self.get_current_user():
            self.redirect('/')
            return

        if self.get_argument('code', False):
            user = yield self.get_authenticated_user(
                redirect_uri=settings.google_redirect_url,
                code=self.get_argument('code'))
            if not user:
                self.clear_all_cookies()
                raise tornado.web.HTTPError(500,
                                            'Google authentication failed')

            access_token = str(user['access_token'])
            http_client = self.get_auth_http_client()
            response = yield http_client.fetch(
                'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' +
                access_token)
            if not response:
                self.clear_all_cookies()
                raise tornado.web.HTTPError(500,
                                            'Google authentication failed')
            user = json.loads(response.body.decode('UTF-8'))
            Admin().create_user(**user)
            self.set_secure_cookie('ingress-guard', user['email'])
            self.redirect('/')
            return

        elif self.get_secure_cookie('ingress-guard'):
            self.redirect('/auth/login/')
            return

        else:
            yield self.authorize_redirect(
                redirect_uri=settings.google_redirect_url,
                client_id=self.settings['google_oauth']['key'],
                scope=['email'],
                response_type='code',
                extra_params={'approval_prompt': 'auto'})
Пример #6
0
 def __init__(self, data, current):
     hm = AdminModel(data, current)
     self.render = hm.to_render_json_userlog(Admin().get_user_log())
Пример #7
0
 def wrapper(self, *args, **kwargs):
     try:
         Admin().write_user_log(self.request, self.current)
     except:
         pass
     return func(self, *args, **kwargs)