def post(self):
        params = self.request.params
        api = BoruvkaAuthApi(self.dao)
        request_dict = {}
        for key, value in params.items():
            request_dict[key] = value
        user_id, token_value = api.login(
            payload=request_dict,
        )

        if user_id:
            self.session['user_id'] = user_id
            response = exc.HTTPMovedPermanently(location=self.request.application_url)
            response.set_cookie(
                name='Token',
                value=token_value,
            )
            self.session.save()
            self.session.persist()
            return response
        else:
            # TODO: move translations handling to BaseController
            translation = list(self.request.accept_language)[0]
            view = BoruvkaAuthLoginView(translation)
            view.error = "Unauthorized"
            response = Response()
            response.body = view.render()
            #response = exc.HTTPUnauthorized()
        return response
    def post(self):

        api = BoruvkaAuthApi(self.dao)
        response = api.register(
            payload=self.request.text,
        )

        return 'Response: {0:d}!'.format(response)
    def get(self):
        authorization_header = self.request.authorization
        token_value = authorization_header[1]

        api = BoruvkaAuthApi(self.dao)
        api.invalidate_token(token_value)

        return "Token invalidated!"
    def post(self):

        api = BoruvkaAuthApi(self.dao)
        user_id, token_value = api.login(
            payload=self.request.text,
        )

        return token_value
    def get(self):
        response = exc.HTTPMovedPermanently(location="/")
        api = BoruvkaAuthApi(self.dao)

        token_value = self.request.cookies['Token']
        api.invalidate_token(token_value)
        response.delete_cookie('Token')
        self.session.delete()
        return response
    def post(self):
        # TODO: check whether passwords match
        params = self.request.params
        api = BoruvkaAuthApi(self.dao)
        response_dict = {}
        for key, value in params.items():
            response_dict[key] = value
        api_response = api.register(
            payload=response_dict,
        )

        if api_response:
            response = exc.HTTPMovedPermanently(location='/auth/login')
            return response
        else:
            response = exc.HTTPUnauthorized()
        return response
示例#7
0
    def update_user(self, user_id, payload):
        user_query = BoruvkaUserQuery(self._dao)
        settings_query = BoruvkaSettingQuery(self._dao)

        user = user_query.get_user(
            id=user_id,
        )

        username = payload['username']
        password = payload['password']
        if len(password) > 0:
            user.password = BoruvkaAuthApi.hash_password(
                username,
                password,
            )

        self._dao.update(user)

        image_id = payload['image_id']
        image = payload['image']
        if isinstance(image, FieldStorage) and "image" in image.type:
            if image_id == '':
                # TODO: use random string
                image_id = user_id

            with open('webroot/img/user/' + user_id, 'wb') as fout:
                copyfileobj(image.file, fout, 100000)

        # TODO, make setting options more generic
        options = {
            'language': payload['language'],
            'color': payload['color'],
            'image': image_id,
        }

        settings_query.set_user_settings(
            user_id=user_id,
            options=options,
        )

        return
 def __verify_token(self, token):
     api = BoruvkaAuthApi(self.dao)
     token_valid = api.verify_token(token)
     if token_valid:
         return Response()
     return exc.HTTPUnauthorized()