Skip to content

Commit e3d7f4e

Browse files
committed
owner_token, authentication and authorization, gevent
1 parent 4483257 commit e3d7f4e

5 files changed

Lines changed: 16 additions & 6 deletions

File tree

openprocurement.api.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ pyramid.debug_templates = true
1212
pyramid.default_locale_name = en
1313

1414
[server:main]
15-
use = egg:waitress#main
15+
use = egg:chaussette
1616
host = 0.0.0.0
1717
port = 6543
18+
backend = gevent
1819

1920
# Begin logging configuration
2021

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
requires = [
1010
'setuptools',
1111
'cornice',
12-
'waitress',
12+
'chaussette',
13+
'gevent',
1314
'couchdb-schematics',
1415
'sphinxcontrib-httpdomain',
1516
'jsonpatch',

src/openprocurement/api/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
# -*- coding: utf-8 -*-
22
"""Main entry point
33
"""
4+
import gevent.monkey; gevent.monkey.patch_all()
45
import os
56
import pkg_resources
67
from pyramid.config import Configurator
8+
#from openprocurement.api.authentication import AuthenticationPolicy
9+
from pyramid.authentication import BasicAuthAuthenticationPolicy as AuthenticationPolicy
10+
from pyramid.authorization import ACLAuthorizationPolicy as AuthorizationPolicy
711
from pyramid.renderers import JSON, JSONP
812
from pyramid.events import NewRequest
913
from couchdb import Server
@@ -36,6 +40,8 @@ def set_renderer(event):
3640

3741
def main(global_config, **settings):
3842
config = Configurator(settings=settings)
43+
config.set_authentication_policy(AuthenticationPolicy(None))
44+
config.set_authorization_policy(AuthorizationPolicy())
3945
config.add_renderer('prettyjson', JSON(indent=4))
4046
config.add_renderer('jsonp', JSONP(param_name='opt_jsonp'))
4147
config.add_renderer('prettyjsonp', JSONP(indent=4, param_name='opt_jsonp'))

src/openprocurement/api/models.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,11 +297,11 @@ class Options:
297297
complaints = ListType(ModelType(Complaint), default=list())
298298

299299

300-
plain_role = (blacklist('_attachments', 'revisions', 'dateModified') + schematics_embedded_role)
301-
view_role = (blacklist('_attachments', 'revisions') + schematics_embedded_role)
300+
plain_role = (blacklist('owner_token', '_attachments', 'revisions', 'dateModified') + schematics_embedded_role)
301+
view_role = (blacklist('owner_token', '_attachments', 'revisions') + schematics_embedded_role)
302302
listing_role = whitelist('dateModified', 'doc_id')
303303
auction_view_role = whitelist('tenderID', 'dateModified', 'bids', 'auctionPeriod', 'minimalStep')
304-
enquiries_role = (blacklist('_attachments', 'revisions', 'bids') + schematics_embedded_role)
304+
enquiries_role = (blacklist('owner_token', '_attachments', 'revisions', 'bids') + schematics_embedded_role)
305305

306306

307307
class Tender(SchematicsDocument, Model):
@@ -366,6 +366,7 @@ class Options:
366366

367367
_attachments = DictType(DictType(BaseType), default=dict()) # couchdb attachments
368368
dateModified = IsoDateTimeType(default=get_now)
369+
owner_token = StringType(default=lambda: uuid4().hex)
369370

370371
@serializable(serialized_name='id')
371372
def doc_id(self):

src/openprocurement/api/tests/tests.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ pyramid.debug_templates = true
1212
pyramid.default_locale_name = en
1313

1414
[server:main]
15-
use = egg:waitress#main
15+
use = egg:chaussette
1616
host = 0.0.0.0
1717
port = 6543
18+
backend = gevent
1819

1920
# Begin logging configuration
2021

0 commit comments

Comments
 (0)