def dgf_get_file(request):
    document = request.validated['document']
    if document.documentType in DOCUMENT_TYPE_URL_ONLY:
        request.response.status = '302 Moved Temporarily'
        request.response.location = document.url
        return document.url
    return get_file(request)
    def get(self):
        """Tender Bid Document Read"""
        is_bid_owner = self.request.authenticated_role == 'bid_owner'
        if self.request.validated[
                'tender_status'] in self.view_forbidden_states and not is_bid_owner:
            self.request.errors.add(
                'body', 'data',
                'Can\'t view bid document in current ({}) tender status'.
                format(self.request.validated['tender_status']))
            self.request.errors.status = 403
            return

        document = self.request.validated['document']
        if self.request.params.get('download'):
            if self._doc_access_restricted(document):
                self.request.errors.add('body', 'data',
                                        'Document download forbidden.')
                self.request.errors.status = 403
                return
            else:
                return get_file(self.request)
        document_data = document.serialize(
            'restricted_view' if self._doc_access_restricted(document
                                                             ) else 'view')
        document_data['previousVersions'] = [
            i.serialize('restricted_view')
            if self._doc_access_restricted(i) else i.serialize('view')
            for i in self.request.validated['documents']
            if i.url != document.url
        ]
        return {'data': document_data}
Example #3
0
    def get(self):
        """Tender Bid Document Read"""
        # TODO can't move validators because of self.view_forbidden_states
        is_bid_owner = self.request.authenticated_role == 'bid_owner'
        if self.request.validated[
                'tender_status'] in self.view_forbidden_states and not is_bid_owner:
            raise_operation_error(
                self.request,
                'Can\'t view bid document in current ({}) tender status'.
                format(self.request.validated['tender_status']))
        if self.request.validated[
                'bid'].status in self.view_forbidden_bid_states and self.request.authenticated_role != 'bid_owner':
            raise_operation_error(
                self.request,
                'Can\'t view bid documents in current ({}) bid status'.format(
                    self.request.validated['bid'].status))

        document = self.request.validated['document']
        if self.request.params.get('download'):
            if self._doc_access_restricted(document):
                raise_operation_error(self.request,
                                      'Document download forbidden.')
            else:
                return get_file(self.request)
        document_data = document.serialize(
            'restricted_view' if self._doc_access_restricted(document
                                                             ) else 'view')
        document_data['previousVersions'] = [
            i.serialize('restricted_view')
            if self._doc_access_restricted(i) else i.serialize('view')
            for i in self.request.validated['documents']
            if i.url != document.url
        ]
        return {'data': document_data}
Example #4
0
 def get(self):
     if self.request.params.get("download"):
         return get_file(self.request)
     document = self.request.validated["document"]
     document_data = document.serialize("view")
     document_data["previousVersions"] = [
         i.serialize("view") for i in self.request.validated["documents"] if i.url != document.url
     ]
     return {"data": document_data}
 def get(self):
     """Tender Award Document Read"""
     if self.request.params.get("download"):
         return get_file(self.request)
     document = self.request.validated["document"]
     document_data = document.serialize("view")
     document_data["previousVersions"] = [
         i.serialize("view") for i in self.request.validated["documents"] if i.url != document.url
     ]
     return {"data": document_data}
Example #6
0
 def get(self):
     """Tender Award Document Read"""
     if self.request.params.get('download'):
         return get_file(self.request)
     document = self.request.validated['document']
     document_data = document.serialize("view")
     document_data['previousVersions'] = [
         i.serialize("view") for i in self.request.validated['documents']
         if i.url != document.url
     ]
     return {'data': document_data}
 def get(self):
     if self.request.params.get('download'):
         return get_file(self.request)
     document = self.request.validated['document']
     documents = self.request.validated['documents']
     versions_data = [
         i.serialize("view") for i in documents if i.url != document.url
     ]
     document_data = document.serialize("view")
     document_data['previousVersions'] = versions_data
     return {'data': document_data}
 def get(self):
     """Auction Document Read"""
     if self.request.params.get('download'):
         return get_file(self.request)
     document = self.request.validated['document']
     document_data = document.serialize("view")
     document_data['previousVersions'] = [
         i.serialize("view")
         for i in self.request.validated['documents']
         if i.url != document.url
     ]
     return {'data': document_data}
 def get(self):
     """Tender Complaint Document Read"""
     document = self.request.validated['document']
     key = self.request.params.get('download')
     if key:
         return get_file(self.request.validated['tender'], document, key, self.db, self.request)
     document_data = document.serialize("view")
     document_data['previousVersions'] = [
         i.serialize("view")
         for i in self.request.validated['documents']
         if i.url != document.url
     ]
     return {'data': document_data}
Example #10
0
 def get(self):
     """Tender Bid Document Read"""
     document = self.request.validated['document']
     key = self.request.params.get('download')
     if key:
         return get_file(self.request.validated['tender'], document, key,
                         self.db, self.request)
     document_data = document.serialize("view")
     document_data['previousVersions'] = [
         i.serialize("view") for i in self.request.validated['documents']
         if i.url != document.url
     ]
     return {'data': document_data}
Example #11
0
 def get(self):
     """Tender Bid Document Read"""
     if self.request.params.get("download"):
         return get_file(self.request)
     document = self.request.validated["document"]
     serialize_role = self._get_doc_view_role(document)
     document_data = document.serialize(serialize_role)
     document_data["previousVersions"] = [
         i.serialize(serialize_role)
         for i in self.request.validated["documents"]
         if i.url != document.url
     ]
     return {"data": document_data}
 def get(self):
     """Auction Bid Document Read"""
     if self.request.validated['auction_status'] in ['active.tendering', 'active.auction'] and self.request.authenticated_role != 'bid_owner':
         self.request.errors.add('body', 'data', 'Can\'t view bid document in current ({}) auction status'.format(self.request.validated['auction_status']))
         self.request.errors.status = 403
         return
     if self.request.params.get('download'):
         return get_file(self.request)
     document = self.request.validated['document']
     document_data = document.serialize("view")
     document_data['previousVersions'] = [
         i.serialize("view")
         for i in self.request.validated['documents']
         if i.url != document.url
     ]
     return {'data': document_data}
Example #13
0
 def get(self):
     """Auction Bid Document Read"""
     if self.request.validated['auction_status'] in ['active.tendering', 'active.auction'] and self.request.authenticated_role != 'bid_owner':
         self.request.errors.add('body', 'data', 'Can\'t view bid document in current ({}) auction status'.format(self.request.validated['auction_status']))
         self.request.errors.status = 403
         return
     if self.request.params.get('download'):
         return get_file(self.request)
     document = self.request.validated['document']
     document_data = document.serialize("view")
     document_data['previousVersions'] = [
         i.serialize("view")
         for i in self.request.validated['documents']
         if i.url != document.url
     ]
     return {'data': document_data}
    def get(self):
        """Tender Bid Document Read"""
        is_bid_owner = self.request.authenticated_role == 'bid_owner'
        if self.request.validated['tender_status'] in self.view_forbidden_states and not is_bid_owner:
            self.request.errors.add('body', 'data', 'Can\'t view bid document in current ({}) tender status'.format(self.request.validated['tender_status']))
            self.request.errors.status = 403
            return

        document = self.request.validated['document']
        if self.request.params.get('download'):
            if self._doc_access_restricted(document):
                self.request.errors.add('body', 'data', 'Document download forbidden.')
                self.request.errors.status = 403
                return
            else:
                return get_file(self.request)
        document_data = document.serialize('restricted_view' if self._doc_access_restricted(document) else 'view')
        document_data['previousVersions'] = [i.serialize('restricted_view') if self._doc_access_restricted(i) else i.serialize('view')
                                             for i in self.request.validated['documents'] if i.url != document.url]
        return {'data': document_data}
Example #15
0
 def get(self):
     """Tender Bid Document Read"""
     if (
         self.request.validated["tender_status"] in ["active.tendering", "active.auction"]
         and self.request.authenticated_role != "bid_owner"
     ):
         self.request.errors.add(
             "body",
             "data",
             "Can't view bid document in current ({}) tender status".format(self.request.validated["tender_status"]),
         )
         self.request.errors.status = 403
         return
     if self.request.params.get("download"):
         return get_file(self.request)
     document = self.request.validated["document"]
     document_data = document.serialize("view")
     document_data["previousVersions"] = [
         i.serialize("view") for i in self.request.validated["documents"] if i.url != document.url
     ]
     return {"data": document_data}