Refactory upload certificates
This commit is contained in:
parent
85c5a37798
commit
d8ecae2c8f
|
@ -35,6 +35,7 @@ class SATCertificate(object):
|
|||
self._is_fiel = False
|
||||
self._are_couple = False
|
||||
self._is_valid_time = False
|
||||
self._cer = b''
|
||||
self._cer_pem = ''
|
||||
self._cer_txt = ''
|
||||
self._key_enc = b''
|
||||
|
@ -64,6 +65,7 @@ class SATCertificate(object):
|
|||
return digest.finalize()
|
||||
|
||||
def _get_data_cer(self, cer):
|
||||
self._cer = cer
|
||||
obj = x509.load_der_x509_certificate(cer, default_backend())
|
||||
self._rfc = obj.subject.get_attributes_for_oid(
|
||||
NameOID.X500_UNIQUE_IDENTIFIER)[0].value.split(' ')[0]
|
||||
|
@ -182,6 +184,10 @@ class SATCertificate(object):
|
|||
def is_valid_time(self):
|
||||
return self._is_valid_time
|
||||
|
||||
@property
|
||||
def cer(self):
|
||||
return self._cer
|
||||
|
||||
@property
|
||||
def cer_pem(self):
|
||||
return self._cer_pem.encode()
|
||||
|
|
|
@ -619,17 +619,9 @@ def get_client_balance(auth):
|
|||
|
||||
|
||||
def get_cert(args):
|
||||
p1 = '/home/mau/Desktop/Pruebas_EKU9003173C9/file.cer'
|
||||
cer = args['cer']
|
||||
# ~ cer = cer.encode()
|
||||
# ~ cer = base64.b64decode(args['cer'].encode())
|
||||
with open(p1, 'w') as f:
|
||||
f.write(cer)
|
||||
# ~ cer = base64.b64decode(args['cer'].encode())
|
||||
print('TYPE', type(cer))
|
||||
# ~ print(cer)
|
||||
# ~ key = base64.b64decode(args['key'].encode())
|
||||
# ~ cert = SATCertificate(cer, key, args['contra'])
|
||||
return
|
||||
cer = base64.b64decode(args['cer'].split(',')[1])
|
||||
key = base64.b64decode(args['key'].split(',')[1])
|
||||
cert = SATCertificate(cer, key, args['contra'])
|
||||
return cert
|
||||
|
||||
|
||||
|
|
|
@ -1181,10 +1181,36 @@ class Certificado(BaseModel):
|
|||
return getattr(cls, f'_get_{opt}')(values)
|
||||
|
||||
@classmethod
|
||||
def _validate(cls, args):
|
||||
def _validate_cert(cls, args):
|
||||
msg = 'Certificado guardado correctamente'
|
||||
result = {'ok': True, 'msg': msg, 'data': {}}
|
||||
cert = utils.get_cert(args)
|
||||
print(cert)
|
||||
return {'ok': False, 'msg': 'error', 'data': {}}
|
||||
if not cert.is_valid:
|
||||
result['ok'] = False
|
||||
result['msg'] = cert.error
|
||||
return result
|
||||
|
||||
obj = Certificado.get(Certificado.es_fiel==False)
|
||||
if obj.rfc != cert.rfc:
|
||||
result['ok'] = False
|
||||
result['msg'] = 'El RFC del certificado no corresponde.'
|
||||
return result
|
||||
|
||||
obj.key_enc = cert.key_enc
|
||||
obj.cer = cert.cer
|
||||
obj.serie = cert.serial_number
|
||||
obj.desde = cert.not_before
|
||||
obj.hasta = cert.not_after
|
||||
obj.save()
|
||||
|
||||
data = {
|
||||
'cert_rfc': obj.rfc,
|
||||
'cert_serie': obj.serie,
|
||||
'cert_desde': obj.desde,
|
||||
'cert_hasta': obj.hasta,
|
||||
}
|
||||
result['data'] = data
|
||||
return result
|
||||
|
||||
@classmethod
|
||||
def post(cls, values):
|
||||
|
@ -1198,16 +1224,6 @@ class Certificado(BaseModel):
|
|||
def get_(cls):
|
||||
return Certificado.select()[0]
|
||||
|
||||
@classmethod
|
||||
def add(cls, file_obj):
|
||||
if file_obj.filename.endswith('key'):
|
||||
path_key = util.save_temp(file_obj.file.read())
|
||||
Configuracion.add({'path_key': path_key})
|
||||
elif file_obj.filename.endswith('cer'):
|
||||
path_cer = util.save_temp(file_obj.file.read())
|
||||
Configuracion.add({'path_cer': path_cer})
|
||||
return {'status': 'server'}
|
||||
|
||||
@classmethod
|
||||
def validate(cls, values, session):
|
||||
row = {}
|
||||
|
|
|
@ -2651,34 +2651,6 @@ function cmd_subir_certificado_click(){
|
|||
return
|
||||
}
|
||||
|
||||
//~ if($$('lst_cert').count() < 2){
|
||||
//~ msg = 'Selecciona al menos dos archivos: CER y KEY del certificado.'
|
||||
//~ msg_error(msg)
|
||||
//~ return
|
||||
//~ }
|
||||
|
||||
//~ if($$('lst_cert').count() > 2){
|
||||
//~ msg = 'Selecciona solo dos archivos: CER y KEY del certificado.'
|
||||
//~ msg_error(msg)
|
||||
//~ return
|
||||
//~ }
|
||||
|
||||
//~ var fo1 = $$('up_cert').files.getItem($$('up_cert').files.getFirstId())
|
||||
//~ var fo2 = $$('up_cert').files.getItem($$('up_cert').files.getLastId())
|
||||
|
||||
//~ var ext = ['key', 'cer']
|
||||
//~ if(ext.indexOf(fo1.type.toLowerCase()) == -1 || ext.indexOf(fo2.type.toLowerCase()) == -1){
|
||||
//~ msg = 'Archivos inválidos, se requiere un archivo CER y un KEY.'
|
||||
//~ msg_error(msg)
|
||||
//~ return
|
||||
//~ }
|
||||
|
||||
//~ if(fo1.type == fo2.type && fo1.size == fo2.size){
|
||||
//~ msg = 'Selecciona archivos diferentes: un archivo CER y un KEY.'
|
||||
//~ msg_error(msg)
|
||||
//~ return
|
||||
//~ }
|
||||
|
||||
var serie = $$('form_cert').getValues()['cert_serie']
|
||||
|
||||
if(serie){
|
||||
|
@ -2697,13 +2669,6 @@ function cmd_subir_certificado_click(){
|
|||
})
|
||||
}
|
||||
|
||||
//~ if (fo1.type.toLowerCase()=='cer'){
|
||||
//~ values['cer'] = fo1.file
|
||||
//~ values['key'] = fo2.file
|
||||
//~ } else {
|
||||
//~ values['key'] = fo1.file
|
||||
//~ values['cer'] = fo2.file
|
||||
//~ }
|
||||
$$('form_upload').setValues({})
|
||||
$$('up_cert').files.data.clearAll()
|
||||
|
||||
|
@ -2740,12 +2705,12 @@ function up_cert_before_file_add(file){
|
|||
reader.addEventListener('load', (event) => {
|
||||
file_cer = event.target.result;
|
||||
});
|
||||
reader.readAsBinaryString(file.file);
|
||||
reader.readAsDataURL(file.file);
|
||||
} else {
|
||||
reader.addEventListener('load', (event) => {
|
||||
file_key = event.target.result;
|
||||
});
|
||||
reader.readAsBinaryString(file.file);
|
||||
reader.readAsDataURL(file.file);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2754,7 +2719,7 @@ function validate_cert(values){
|
|||
msg = 'Archivos recibidos correctamente. Esperando validación'
|
||||
msg_ok(msg)
|
||||
|
||||
values['opt'] = 'validate'
|
||||
values['opt'] = 'validate_cert'
|
||||
webix.ajax().post('/cert', values, {
|
||||
error:function(text, data, XmlHttpRequest){
|
||||
msg = 'Ocurrio un error, consulta a soporte técnico'
|
||||
|
@ -2772,35 +2737,3 @@ function validate_cert(values){
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
//~ function up_cert_upload_complete(response){
|
||||
//~ if(response.status != 'server'){
|
||||
//~ msg = 'Ocurrio un error al subir los archivos'
|
||||
//~ msg_error(msg)
|
||||
//~ return
|
||||
//~ }
|
||||
|
||||
//~ msg = 'Archivos subidos correctamente. Esperando validación'
|
||||
//~ msg_ok(msg)
|
||||
|
||||
//~ var values = $$('form_upload').getValues()
|
||||
//~ $$('form_upload').setValues({})
|
||||
//~ $$('up_cert').files.data.clearAll()
|
||||
//~ values['opt'] = 'validate'
|
||||
|
||||
//~ webix.ajax().post('/cert', values, {
|
||||
//~ error:function(text, data, XmlHttpRequest){
|
||||
//~ msg = 'Ocurrio un error, consulta a soporte técnico'
|
||||
//~ msg_error(msg)
|
||||
//~ },
|
||||
//~ success:function(text, data, XmlHttpRequest){
|
||||
//~ var values = data.json()
|
||||
//~ if(values.ok){
|
||||
//~ $$('form_cert').setValues(values.data)
|
||||
//~ msg_ok(values.msg)
|
||||
//~ }else{
|
||||
//~ msg_error(values.msg)
|
||||
//~ }
|
||||
//~ }
|
||||
//~ })
|
||||
//~ }
|
||||
|
|
|
@ -292,7 +292,7 @@ var emisor_certificado = [
|
|||
{view: 'list', id: 'lst_cert', name: 'certificado',
|
||||
type: 'uploader', autoheight:true, borderless: true}, {}]},
|
||||
{cols: [{},
|
||||
{view: 'text', id: 'txt_contra', name: 'contra', value: '12345678a',
|
||||
{view: 'text', id: 'txt_contra', name: 'contra',
|
||||
label: 'Contraseña KEY', labelPosition: 'top',
|
||||
labelAlign: 'center', type: 'password', required: true}, {}]},
|
||||
{cols: [{}, {view: 'button', id: 'cmd_subir_certificado',
|
||||
|
|
Loading…
Reference in New Issue