Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 9cf9a19d

Přidáno uživatelem Michal Seják před asi 4 roky(ů)

Re #8572 - Added the `delete_certificate(id)` method to the Controller.

Zobrazit rozdíly:

src/controllers/certificates_controller.py
10 10
    SSL_ID, SIGNATURE_ID, AUTHENTICATION_ID, \
11 11
    DATETIME_FORMAT, ROOT_CA_ID, INTERMEDIATE_CA_ID, CERTIFICATE_ID  # TODO DATABASE_FILE - not the Controller's
12 12
from src.exceptions.database_exception import DatabaseException
13
from src.exceptions.unknown_exception import UnknownException
13 14
from src.model.subject import Subject
14 15
from src.services.certificate_service import CertificateService, RevocationReasonInvalidException, \
15 16
    CertificateStatusInvalidException, CertificateNotFoundException, CertificateAlreadyRevokedException
......
161 162
        cert = self.certificate_service.get_certificate(v)
162 163

  
163 164
        if cert is None:
164
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA                               
165
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA
165 166
        else:
166 167
            return {"success": True, "data": cert.pem_data}, C_SUCCESS
167 168

  
......
183 184
        cert = self.certificate_service.get_certificate(v)
184 185

  
185 186
        if cert is None:
186
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA                               
187
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA
187 188
        else:
188 189
            data = self.cert_to_dict_full(cert)
189 190
            if data is None:
......
239 240
        if certs is None:
240 241
            return E_GENERAL_ERROR, C_INTERNAL_SERVER_ERROR
241 242
        elif len(certs) == 0:
242
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA                               
243
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA
243 244
        else:
244 245
            ret = []
245 246
            for c in certs:
......
296 297
        cert = self.certificate_service.get_certificate(v)
297 298

  
298 299
        if cert is None:
299
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA                               
300
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA
300 301

  
301 302
        if cert.parent_id is None:
302 303
            return E_NO_CERTIFICATES_FOUND, C_NO_DATA
......
448 449
            return E_NO_CERTIFICATES_FOUND, C_NOT_FOUND
449 450
        else:
450 451
            return {"success": True, "data": self.certificate_service.get_public_key_from_certificate(cert)}, C_SUCCESS
452

  
453
    def delete_certificate(self, id):
454
        """
455
        Deletes a certificate identified by ID, including its corresponding subtree (all descendants).
456
        :param id: target certificate ID
457
        :rtype: DeleteResponse
458
        """
459
        try:
460
            v = int(id)
461
        except ValueError:
462
            return E_WRONG_PARAMETERS, C_BAD_REQUEST
463

  
464
        try:
465
            self.certificate_service.delete_certificate(v)
466
        except CertificateNotFoundException:
467
            return E_NO_CERTIFICATES_FOUND, C_NOT_FOUND
468
        except DatabaseException:
469
            return E_CORRUPTED_DATABASE, C_INTERNAL_SERVER_ERROR
470
        except CertificateStatusInvalidException or RevocationReasonInvalidException or UnknownException:
471
            return E_GENERAL_ERROR, C_INTERNAL_SERVER_ERROR
472

  
473
        return {"success": True, "data": "The certificate and its descendants have been successfully deleted."}

Také k dispozici: Unified diff