pinecrypt-gateway-backend/pinecrypt/server/api/access.py

45 lines
1.1 KiB
Python

import falcon
import logging
import json
import hashlib
from pinecrypt.server import authority, errors, db
from bson.objectid import ObjectId
from pinecrypt.server.decorators import csrf_protection
from .utils.firewall import login_required, authorize_admin
logger = logging.getLogger(__name__)
class DisableEnableAccessToInstance(object):
@csrf_protection
@login_required
@authorize_admin
def on_post(self, req, resp, id):
bool = req.get_param_as_bool("disable")
result = db.certificates.find_one_and_update({
"_id": ObjectId(id)
}, {
"$set": {
"disabled": bool
}
},
upsert=True,
return_document=db.return_new)
if not result:
resp.text = "No certificate found with id %s" % id
raise falcon.HTTPNotFound()
@login_required
@authorize_admin
def on_get(self, req, resp, id):
result = db.certificates.find_one({"_id": ObjectId(id)})
if not result:
resp.text = "No certificate found with id %s" % id
raise falcon.HTTPNotFound()
resp.text = str(result["disabled"])