verify one document
This commit is contained in:
parent
817dc9a8f3
commit
b9bd367487
|
@ -24,7 +24,7 @@ from ereuse_devicehub.resources.device.views import DeviceView
|
||||||
from ereuse_devicehub.resources.documents.device_row import DeviceRow, StockRow, ActionRow
|
from ereuse_devicehub.resources.documents.device_row import DeviceRow, StockRow, ActionRow
|
||||||
from ereuse_devicehub.resources.lot import LotView
|
from ereuse_devicehub.resources.lot import LotView
|
||||||
from ereuse_devicehub.resources.lot.models import Lot
|
from ereuse_devicehub.resources.lot.models import Lot
|
||||||
from ereuse_devicehub.resources.hash_reports import insert_hash, ReportHash
|
from ereuse_devicehub.resources.hash_reports import insert_hash, ReportHash, verify_hash
|
||||||
|
|
||||||
|
|
||||||
class Format(enum.Enum):
|
class Format(enum.Enum):
|
||||||
|
@ -244,12 +244,28 @@ class StampsView(View):
|
||||||
This view render one public ans static page for see the links for to do the check
|
This view render one public ans static page for see the links for to do the check
|
||||||
of one csv file
|
of one csv file
|
||||||
"""
|
"""
|
||||||
def get(self):
|
def get_url_path(self):
|
||||||
url = urlutils.URL(request.url)
|
url = urlutils.URL(request.url)
|
||||||
url.normalize()
|
url.normalize()
|
||||||
url.path_parts = url.path_parts[:-2] + ['check', '']
|
url.path_parts = url.path_parts[:-2] + ['check', '']
|
||||||
url_path = url.to_text()
|
return url.to_text()
|
||||||
return flask.render_template('documents/stamp.html', rq_url=url_path)
|
|
||||||
|
def get(self):
|
||||||
|
result = ('', '')
|
||||||
|
return flask.render_template('documents/stamp.html', rq_url=self.get_url_path(),
|
||||||
|
result=result)
|
||||||
|
|
||||||
|
def post(self):
|
||||||
|
result = ('', '')
|
||||||
|
if 'docUpload' in request.files:
|
||||||
|
file_check = request.files['docUpload']
|
||||||
|
result = ('Bad', 'Sorry, this file has not been produced by this website')
|
||||||
|
if file_check.mimetype in ['text/csv', 'application/pdf']:
|
||||||
|
if verify_hash(file_check):
|
||||||
|
result = ('Ok', 'Yes, this file has been produced by this website')
|
||||||
|
|
||||||
|
return flask.render_template('documents/stamp.html', rq_url=self.get_url_path(),
|
||||||
|
result=result)
|
||||||
|
|
||||||
|
|
||||||
class DocumentDef(Resource):
|
class DocumentDef(Resource):
|
||||||
|
@ -305,7 +321,7 @@ class DocumentDef(Resource):
|
||||||
self.add_url_rule('/check/', defaults={}, view_func=check_view, methods=get)
|
self.add_url_rule('/check/', defaults={}, view_func=check_view, methods=get)
|
||||||
|
|
||||||
stamps_view = StampsView.as_view('StampsView', definition=self, auth=app.auth)
|
stamps_view = StampsView.as_view('StampsView', definition=self, auth=app.auth)
|
||||||
self.add_url_rule('/stamps/', defaults={}, view_func=stamps_view, methods=get)
|
self.add_url_rule('/stamps/', defaults={}, view_func=stamps_view, methods={'GET', 'POST'})
|
||||||
|
|
||||||
actions_view = ActionsDocumentView.as_view('ActionsDocumentView',
|
actions_view = ActionsDocumentView.as_view('ActionsDocumentView',
|
||||||
definition=self,
|
definition=self,
|
||||||
|
|
|
@ -38,6 +38,17 @@
|
||||||
</nav>
|
</nav>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="page-header col-md-6 col-md-offset-3">
|
<div class="page-header col-md-6 col-md-offset-3">
|
||||||
|
<div class="row">
|
||||||
|
{% if result.0 == 'Ok' %}
|
||||||
|
<div class="alert alert-info" role="alert">
|
||||||
|
{{ result.1 }}
|
||||||
|
</div>
|
||||||
|
{% elif result.0 == 'Bad' %}
|
||||||
|
<div class="alert alert-danger" role="alert">
|
||||||
|
{{ result.1 }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<a href="http://dlt.ereuse.org/stamps/create?url={{ rq_url }}" target="_blank">Add one new check in your csv</a>
|
<a href="http://dlt.ereuse.org/stamps/create?url={{ rq_url }}" target="_blank">Add one new check in your csv</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -45,6 +56,19 @@
|
||||||
<a href="http://dlt.ereuse.org/stamps/check?url={{ rq_url }}" target="_blank">Verify a CSV file in here.</a>
|
<a href="http://dlt.ereuse.org/stamps/check?url={{ rq_url }}" target="_blank">Verify a CSV file in here.</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="page-header col-md-6 col-md-offset-3">
|
||||||
|
If you want us to verify a document issued by us, upload it using the following form
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 col-md-offset-3">
|
||||||
|
<form enctype="multipart/form-data" action="" method="post">
|
||||||
|
<label for="name">Document: </label>
|
||||||
|
<input type="file" name="docUpload" accept="text/csv,application/pdf" /><br />
|
||||||
|
<input type="submit" id="send-signup" name="signup" value="Verify" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -32,3 +32,8 @@ def insert_hash(bfile):
|
||||||
db.session.add(db_hash)
|
db.session.add(db_hash)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
db.session.flush()
|
db.session.flush()
|
||||||
|
|
||||||
|
|
||||||
|
def verify_hash(bfile):
|
||||||
|
hash3 = hashlib.sha3_256(bfile.read()).hexdigest()
|
||||||
|
return ReportHash.query.filter(ReportHash.hash3 == hash3).count()
|
||||||
|
|
Reference in New Issue