1
0
mirror of https://github.com/laurivosandi/certidude synced 2024-12-23 00:25:18 +00:00

api: Create common AuthorityHandler class with authority attribute

This commit is contained in:
Priit Laes 2018-02-03 13:09:59 +02:00
parent f7d138e303
commit 4580663608
2 changed files with 11 additions and 7 deletions

View File

@ -14,6 +14,7 @@ from certidude.auth import login_required, authorize_admin
from certidude.user import User from certidude.user import User
from certidude.decorators import serialize, csrf_protection from certidude.decorators import serialize, csrf_protection
from certidude import const, config from certidude import const, config
from .utils import AuthorityHandler
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -27,7 +28,7 @@ class CertificateAuthorityResource(object):
const.HOSTNAME.encode("ascii")) const.HOSTNAME.encode("ascii"))
class SessionResource(object): class SessionResource(AuthorityHandler):
@csrf_protection @csrf_protection
@serialize @serialize
@login_required @login_required
@ -44,7 +45,7 @@ class SessionResource(object):
except IOError: except IOError:
submission_hostname = None submission_hostname = None
yield dict( yield dict(
server = authority.server_flags(common_name), server = self.authority.server_flags(common_name),
submitted = submitted, submitted = submitted,
common_name = common_name, common_name = common_name,
address = submission_address, address = submission_address,
@ -142,7 +143,7 @@ class SessionResource(object):
dead = 604800 # Seconds from last activity to consider lease dead, X509 chain broken or machine discarded dead = 604800 # Seconds from last activity to consider lease dead, X509 chain broken or machine discarded
), ),
common_name = const.FQDN, common_name = const.FQDN,
title = authority.certificate.subject.native["common_name"], title = self.authority.certificate.subject.native["common_name"],
mailer = dict( mailer = dict(
name = config.MAILER_NAME, name = config.MAILER_NAME,
address = config.MAILER_ADDRESS address = config.MAILER_ADDRESS
@ -151,9 +152,9 @@ class SessionResource(object):
user_enrollment_allowed=config.USER_ENROLLMENT_ALLOWED, user_enrollment_allowed=config.USER_ENROLLMENT_ALLOWED,
user_multiple_certificates=config.USER_MULTIPLE_CERTIFICATES, user_multiple_certificates=config.USER_MULTIPLE_CERTIFICATES,
events = config.EVENT_SOURCE_SUBSCRIBE % config.EVENT_SOURCE_TOKEN, events = config.EVENT_SOURCE_SUBSCRIBE % config.EVENT_SOURCE_TOKEN,
requests=serialize_requests(authority.list_requests), requests=serialize_requests(self.authority.list_requests),
signed=serialize_certificates(authority.list_signed), signed=serialize_certificates(self.authority.list_signed),
revoked=serialize_revoked(authority.list_revoked), revoked=serialize_revoked(self.authority.list_revoked),
admin_users = User.objects.filter_admins(), admin_users = User.objects.filter_admins(),
user_subnets = config.USER_SUBNETS or None, user_subnets = config.USER_SUBNETS or None,
autosign_subnets = config.AUTOSIGN_SUBNETS or None, autosign_subnets = config.AUTOSIGN_SUBNETS or None,
@ -222,7 +223,7 @@ def certidude_app(log_handlers=[]):
app.add_route("/api/signed/{cn}/", SignedCertificateDetailResource(authority)) app.add_route("/api/signed/{cn}/", SignedCertificateDetailResource(authority))
app.add_route("/api/request/{cn}/", RequestDetailResource(authority)) app.add_route("/api/request/{cn}/", RequestDetailResource(authority))
app.add_route("/api/request/", RequestListResource(authority)) app.add_route("/api/request/", RequestListResource(authority))
app.add_route("/api/", SessionResource()) app.add_route("/api/", SessionResource(authority))
if config.USER_ENROLLMENT_ALLOWED: # TODO: add token enable/disable flag for config if config.USER_ENROLLMENT_ALLOWED: # TODO: add token enable/disable flag for config
app.add_route("/api/token/", TokenResource(authority)) app.add_route("/api/token/", TokenResource(authority))

3
certidude/api/utils.py Normal file
View File

@ -0,0 +1,3 @@
class AuthorityHandler:
def __init__(self, authority):
self.authority = authority