Merge #131 Allow optional authz, to make dev much simpler.

This commit is contained in:
Ralph Bean
2016-10-27 08:43:17 +00:00
3 changed files with 20 additions and 11 deletions

View File

@@ -40,6 +40,7 @@ class BaseConfiguration(object):
PKGDB_API_URL = 'https://admin.stg.fedoraproject.org/pkgdb/api'
FAS_URL = 'https://admin.stg.fedoraproject.org/accounts'
REQUIRE_PACKAGER = True
# Available backends are: console, file, journal.
LOG_BACKEND = 'journal'
@@ -69,7 +70,10 @@ class DevConfiguration(BaseConfiguration):
LOG_BACKEND = 'console'
LOG_LEVEL = 'debug'
HOST = '0.0.0.0'
FAS_USERNAME = 'put your fas username here'
REQUIRE_PACKAGER = False
# You only need these FAS options if you turn on authorization
# with REQUIRE_PACKAGER=True
#FAS_USERNAME = 'put your fas username here'
#FAS_PASSWORD = 'put your fas password here....'
#FAS_PASSWORD = os.environ('FAS_PASSWORD') # you could store it here
#FAS_PASSWORD = commands.getoutput('pass your_fas_password').strip()

View File

@@ -30,12 +30,6 @@ import six
from module_build_service import app
from module_build_service import logger
def asbool(value):
""" Cast config values to boolean. """
return six.text_type(value).lower() in [
'y', 'yes', 't', 'true', '1', 'on'
]
def from_app_config():
""" Create the configuration instance from the values in app.config
@@ -73,6 +67,7 @@ class Config(object):
self._fas_url = ""
self._fas_username = ""
self._fas_password = ""
self._require_packager = True
self._log_backend = ""
self._log_file = ""
self._log_level = 0
@@ -361,6 +356,14 @@ class Config(object):
def fas_password(self, s):
self._fas_password = str(s)
@property
def require_packager(self):
return self._require_packager
@require_packager.setter
def require_packager(self, s):
self._require_packager = bool(s)
@property
def log_backend(self):
return self._log_backend

View File

@@ -76,10 +76,12 @@ class ModuleBuildAPI(MethodView):
def post(self):
username = module_build_service.auth.get_username(request.environ)
module_build_service.auth.assert_is_packager(username, fas_kwargs=dict(
base_url=conf.fas_url,
username=conf.fas_username,
password=conf.fas_password))
if conf.require_packager:
module_build_service.auth.assert_is_packager(username, fas_kwargs=dict(
base_url=conf.fas_url,
username=conf.fas_username,
password=conf.fas_password))
try:
r = json.loads(request.get_data().decode("utf-8"))