45 lines
1.1 KiB
Python
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"])
|