예제 #1
0
    def ActualizarPerfil(self):

        lob_rspsta = DatosUpdate(request.form)
        if not lob_rspsta.validate():
            return self.Utils.nice_json({"error": lob_rspsta.errors}, 400)

        ln_opcn_mnu = request.form["id_mnu_ge"]
        token = request.headers['Authorization']
        validacionSeguridad = ValidacionSeguridad()

        if validacionSeguridad.Principal(token, ln_opcn_mnu):
            DatosUsuarioToken = jwt.decode(token, conf.SS_TKN_SCRET_KEY,
                                           'utf-8')
            datosUsuario = validacionSeguridad.ObtenerDatosUsuario(
                DatosUsuarioToken['lgn'])[0]

            lc_cdgo = request.form["cdgo"]
            lc_dscrpcn = request.form["dscrpcn"]
            ln_id_prfl_une = request.form["id_prfl_une"]
            lb_estdo = request.form["estdo"]

            arrayValues = {}
            arrayValuesDetalle = {}
            #Actualizo tabla une
            arrayValuesDetalle['id_lgn_mdfccn_ge'] = str(
                datosUsuario['id_lgn_ge'])
            arrayValuesDetalle['estdo'] = lb_estdo
            arrayValuesDetalle['fcha_mdfccn'] = str(self.fecha_act)
            self.lc_cnctn.queryUpdate(
                dbConf.DB_SHMA + "." + str('tbperfiles_une'),
                arrayValuesDetalle, 'id=' + str(ln_id_prfl_une))
            #obtengo id_lgn a partir del id_lgn_ge
            Cursor = self.lc_cnctn.querySelect(
                dbConf.DB_SHMA + '.tbperfiles_une', 'id_prfl',
                "id=" + ln_id_prfl_une)
            if Cursor:
                data = json.loads(json.dumps(Cursor[0], indent=2))
                ln_id_prfl = data['id_prfl']
                #Actualizo tabla principal
                arrayValues['id'] = ln_id_prfl
                arrayValues['cdgo'] = str(lc_cdgo)
                arrayValues['dscrpcn'] = lc_dscrpcn
                arrayValues['estdo'] = lb_estdo
                self.lc_cnctn.queryUpdate(
                    dbConf.DB_SHMA + "." + str('tbperfiles'), arrayValues,
                    'id=' + str(ln_id_prfl))
        else:
            return self.Utils.nice_json({"error": "null"}, 400)
예제 #2
0
    def ObtenerPreguntas(self):
        ln_opcn_mnu = request.form["id_mnu_ge"]
        token = request.headers['Authorization']
        validacionSeguridad = ValidacionSeguridad()
        val = validacionSeguridad.Principal(token, ln_opcn_mnu,
                                            optns.OPCNS_MNU['PreguntaSg'])
        arrayParametros = {}
        prmtrs = ''
        try:
            arrayParametros['cdgo'] = request.form['cdgo']
            cdgo = arrayParametros['cdgo']
            prmtrs += "  and a.cdgo like '%" + cdgo + "%'"
        except:
            pass
        try:
            arrayParametros['dscrpcn'] = request.form['dscrpcn']
            dscrpcn = arrayParametros['dscrpcn']
            prmtrs += "  and a.dscrpcn like '%" + dscrpcn + "%' "
        except:
            pass

        try:
            arrayParametros['id_prgnta_ge'] = request.form['id_prgnta_ge']
            id_prgnta_ge = arrayParametros['id_prgnta_ge']
            prmtrs += "  and b.id = '" + id_prgnta_ge + "'"
        except:
            pass

        if val:

            StrSql=" select "\
                                " b.id,a.cdgo,a.dscrpcn "\
                                " from "\
                                " ssi7x.tbpreguntas_seguridad a inner join ssi7x.tbpreguntas_seguridad_ge b on "\
                                " a.id=b.id_prgnta_sgrdd "\
                                " where "\
                                " b.estdo = true "\
                                + str(prmtrs)
            print(StrSql)
            Cursor = C.queryFree(StrSql)
            if Cursor:
                data = json.loads(json.dumps(Cursor, indent=2))
                return Utils.nice_json(data, 200)
            else:
                return Utils.nice_json({"error": errors.ERR_NO_RGSTRS}, 400)
        else:
            return Utils.nice_json({"error": errors.ERR_NO_ATRZCN}, 400)
예제 #3
0
파일: Users.py 프로젝트: robiwimarbu/auth
    def ObtenerUsuarios(self):
        token = request.headers['Authorization']
        ln_opcn_mnu = request.form["id_mnu_ge"]
        validacionSeguridad = ValidacionSeguridad()
        val = validacionSeguridad.Principal(token, ln_opcn_mnu,
                                            optns.OPCNS_MNU['Usuarios'])

        prmtrs = ''

        try:
            id_lgn_ge = request.form['id_login_ge']
            prmtrs = prmtrs + "  and a.id = " + id_lgn_ge
        except Exception:
            pass
        try:
            lgn = request.form['login']
            prmtrs = prmtrs + "  and lgn like '%" + lgn + "%' "
        except Exception:
            pass
        try:
            id_grpo_emprsrl = request.form['id_grpo_emprsrl']
            prmtrs = prmtrs + "  and id_grpo_emprsrl = " + id_grpo_emprsrl + " "
        except Exception:
            pass

        if val:
            Cursor = lc_cnctn.queryFree(" select "\
                                    " a.id, b.lgn, b.nmbre_usro, b.fto_usro, case when b.estdo = true then 'ACTIVO' else 'INACTIVO' end as estdo  "\
                                    " from "\
                                    " "+str(dbConf.DB_SHMA)+".tblogins_ge a inner join "+str(dbConf.DB_SHMA)+".tblogins b on "\
                                    " a.id_lgn = b.id "\
                                    " where "\
                                    " a.estdo = true "\
                                    + prmtrs +
                                    " order by "\
                                    " b.lgn")
            if Cursor:
                data = json.loads(json.dumps(Cursor, indent=2))
                return Utils.nice_json(data, 200)
            else:
                return Utils.nice_json({"error": errors.ERR_NO_RGSTRS}, 400)
        else:
            return Utils.nice_json({"error": errors.ERR_NO_ATRZCN}, 400)
예제 #4
0
    def ActualizarPreguntas(self):
        token = request.headers['Authorization']
        ln_opcn_mnu = request.form["id_mnu_ge"]
        validacionSeguridad = ValidacionSeguridad()
        val = validacionSeguridad.Principal(token, ln_opcn_mnu,
                                            optns.OPCNS_MNU['PreguntaSg'])
        u = ActualizarAcceso(request.form)
        if not u.validate():
            return Utils.nice_json({"error": u.errors}, 400)
        if val:
            DatosUsuarioToken = jwt.decode(token, conf.SS_TKN_SCRET_KEY,
                                           'utf-8')
            id_lgn_ge_ssn = validacionSeguridad.ObtenerDatosUsuario(
                DatosUsuarioToken['lgn'])[0]
            print(id_lgn_ge_ssn['id_lgn_ge'])
            arrayValues = {}
            arrayValues2 = {}
            #Actualizo tabla ge
            arrayValues['id'] = request.form['id_prgnta_ge']
            arrayValues['fcha_mdfccn'] = str(fecha_act)
            arrayValues['id_lgn_mdfccn_ge'] = str(id_lgn_ge_ssn['id_lgn_ge'])
            self.PreguntaActualizaRegistro(arrayValues,
                                           'tbpreguntas_seguridad_ge')
            #obtengo id_prgnta a partir del id
            Cursor = C.querySelect(
                dbConf.DB_SHMA + '.tbpreguntas_seguridad_ge',
                'id_prgnta_sgrdd', "id=" + str(request.form['id_prgnta_ge']))
            if Cursor:
                data = json.loads(json.dumps(Cursor[0], indent=2))
                id_prgnta = data['id_prgnta_sgrdd']

            #Actualizo tabla principal
            arrayValues2['id'] = id_prgnta
            arrayValues2['cdgo'] = request.form['cdgo']
            arrayValues2['dscrpcn'] = request.form['dscrpcn']
            arrayValues2['fcha_mdfccn'] = str(fecha_act)
            arrayValues2['id_lgn_mdfccn_ge'] = str(id_lgn_ge_ssn['id_lgn_ge'])

            self.PreguntaActualizaRegistro(arrayValues2,
                                           'tbpreguntas_seguridad')
            return Utils.nice_json({"error": labels.SCCSS_ACTLZCN_EXTSA}, 200)
        else:
            return Utils.nice_json({"error": errors.ERR_NO_ATRZCN}, 400)
예제 #5
0
    def ListarPerfiles(self):

        ln_opcn_mnu = request.form["id_mnu_ge"]
        token = request.headers['Authorization']
        validacionSeguridad = ValidacionSeguridad()

        if validacionSeguridad.Principal(token, ln_opcn_mnu,
                                         optns.OPCNS_MNU['Perfiles']):
            lc_dta = ''
            lc_cdgo = ''
            try:
                lc_cdgo = request.form["cdgo"]
                lc_dta = lc_dta + " and a.cdgo = '" + lc_cdgo + "' "
            except Exception:
                pass
            lc_dscrpcn = ''
            try:
                lc_dscrpcn = request.form["dscrpcn"]
                lc_dta = lc_dta + "  and a.dscrpcn like '%" + lc_dscrpcn + "%' "
            except Exception:
                pass
            ln_id_undd_ngco = request.form["id_undd_ngco"]

            strSql = " select b.id, "\
                                    " a.cdgo ,a.dscrpcn "\
                                    " ,case when b.estdo = true then 'ACTIVO' else 'INACTIVO' end as estdo "\
                                    " from "\
                                    " ssi7x.tbperfiles a inner join  ssi7x.tbperfiles_une b on "\
                                    " a.id=b.id_prfl "\
                                    " where "\
                                    " b.id_undd_ngco = "+str(ln_id_undd_ngco) +" "+ lc_dta +""\
                                    " order by a.dscrpcn"
            Cursor = self.lc_cnctn.queryFree(strSql)
            if Cursor:
                data = json.loads(json.dumps(Cursor, indent=2))
                return self.Utils.nice_json(data, 200)
            else:
                return self.Utils.nice_json({"error": labels.INFO_NO_DTS}, 200)
        else:
            return self.Utils.nice_json({"error": "null"}, 400)
예제 #6
0
    def crearPregunta(self):

        ln_opcn_mnu = request.form["id_mnu_ge"]
        token = request.headers['Authorization']
        validacionSeguridad = ValidacionSeguridad()
        val = validacionSeguridad.Principal(token, ln_opcn_mnu,
                                            optns.OPCNS_MNU['PreguntaSg'])
        u = Acceso(request.form)
        if not u.validate():
            return self.Utils.nice_json({"error": u.errors}, 400)
        if val:
            DatosUsuarioToken = jwt.decode(token, conf.SS_TKN_SCRET_KEY,
                                           'utf-8')
            datosUsuario = validacionSeguridad.ObtenerDatosUsuario(
                DatosUsuarioToken['lgn'])[0]
            arrayValues = {}
            arrayValues2 = {}

            arrayValues['cdgo'] = request.form['cdgo']
            arrayValues['dscrpcn'] = request.form['dscrpcn']
            arrayValues['fcha_crcn'] = str(fecha_act)
            arrayValues['fcha_mdfccn'] = str(fecha_act)
            arrayValues['id_lgn_crcn_ge'] = str(datosUsuario['id_lgn_ge'])
            arrayValues['id_lgn_mdfccn_ge'] = str(datosUsuario['id_lgn_ge'])
            id_prgnta = self.crearPregunta_seguridad(arrayValues,
                                                     'tbpreguntas_seguridad')
            arrayValues2['id_prgnta_sgrdd'] = str(id_prgnta)
            arrayValues2['id_lgn_crcn_ge'] = str(datosUsuario['id_lgn_ge'])
            arrayValues2['id_lgn_mdfccn_ge'] = str(datosUsuario['id_lgn_ge'])
            arrayValues2['fcha_crcn'] = str(fecha_act)
            arrayValues2['fcha_mdfccn'] = str(fecha_act)
            arrayValues2['id_lgn_ge'] = str(datosUsuario['id_lgn_ge'])
            self.crearPregunta_seguridad(arrayValues2,
                                         'tbpreguntas_seguridad_ge')
            return Utils.nice_json({"error": labels.SCCSS_RGSTRO_EXTSO}, 200)

        return Utils.nice_json({"error": errors.ERR_NO_ATRZCN}, 400)
예제 #7
0
    def crear(self):
        lob_rspsta = DatosPerfil(request.form)
        if not lob_rspsta.validate():
            return self.Utils.nice_json({"error": lob_rspsta.errors}, 400)

        ln_opcn_mnu = request.form["id_mnu_ge"]
        token = request.headers['Authorization']
        validacionSeguridad = ValidacionSeguridad()

        if validacionSeguridad.Principal(token, ln_opcn_mnu,
                                         optns.OPCNS_MNU['Perfiles']):
            DatosUsuarioToken = jwt.decode(token, conf.SS_TKN_SCRET_KEY,
                                           'utf-8')
            datosUsuario = validacionSeguridad.ObtenerDatosUsuario(
                DatosUsuarioToken['lgn'])[0]
            arrayValues = {}
            arrayValues['cdgo'] = request.form["cdgo"]
            arrayValues['dscrpcn'] = request.form["dscrpcn"]
            ld_id_prfl = self.lc_cnctn.queryInsert(
                dbConf.DB_SHMA + ".tbperfiles", arrayValues, 'id')
            if ld_id_prfl:
                arrayValuesDetalle = {}
                arrayValuesDetalle['id_prfl'] = str(ld_id_prfl)
                arrayValuesDetalle['id_undd_ngco'] = str(3)
                arrayValuesDetalle['id_lgn_crcn_ge'] = str(
                    datosUsuario['id_lgn_ge'])
                arrayValuesDetalle['id_lgn_mdfccn_ge'] = str(
                    datosUsuario['id_lgn_ge'])
                arrayValuesDetalle['fcha_mdfccn'] = str(self.fecha_act)
                arrayValuesDetalle['fcha_mdfccn'] = str(self.fecha_act)
                self.lc_cnctn.queryInsert(dbConf.DB_SHMA + ".tbperfiles_une",
                                          arrayValuesDetalle)
            else:
                return self.Utils.nice_json({"error": "null"}, 400)
        else:
            return self.Utils.nice_json({"error": "null"}, 400)
예제 #8
0
from SSI7X.Static.Utils import Utils  # @UnresolvedImport
from SSI7X.Static.Ldap_connect import Conexion_ldap # @UnresolvedImport
from urllib.parse import urlparse
import SSI7X.Static.errors as errors  # @UnresolvedImport
import SSI7X.Static.labels as labels  # @UnresolvedImport
import SSI7X.Static.config as conf  # @UnresolvedImport
import SSI7X.Static.config_DB as dbConf # @UnresolvedImport 
import jwt #@UnresolvedImport
from SSI7X.ValidacionSeguridad import ValidacionSeguridad # @UnresolvedImport

'''
Declaracion de variables globales
'''
lc_cnctn = ConnectDB()
Utils = Utils()
validacionSeguridad = ValidacionSeguridad()

'''
clase para la validacion de datos provenientes del POST en el login
'''
class UsuarioAcceso(Form):
    username = StringField(labels.lbl_nmbr_usrs,[validators.DataRequired(message=errors.ERR_NO_INGSA_USRO)])
    password = StringField(labels.lbl_cntrsna_usrs,[validators.DataRequired(message=errors.ERR_NO_INGRSA_CNTRSNA)])

'''
clase para la validacion de datos del POST en el cambio de contrasenna
'''
class UsroCmbioCntrsna(Form):
    cntrsna = StringField(labels.lbl_cntrsna_usrs,[validators.DataRequired(message=errors.ERR_NO_INGRSA_CNTRSNA)])
    cntrsna_nva = StringField(labels.lbl_nva_cntrsna,[validators.DataRequired(message=errors.ERR_NO_DB_INGRSR_NVA_CNTRSNA),validators.Length(min=conf.PW_MN_SIZE,message=errors.ERR_NO_MNM_CRCTRS),validators.Regexp('(?=.*\d)',message=errors.ERR_NO_MNMO_NMRO),validators.Regexp('(?=.*[A-Z])',message=errors.ERR_NO_MNMO_MYSCLA)])
    tkn = StringField('el token', [validators.DataRequired(message='Falta el token'),validators.Length(min=conf.SS_TKN_SIZE,message=errors.ERR_NO_TKN_INVLDO)])
예제 #9
0
파일: Users.py 프로젝트: robiwimarbu/auth
    def ActualizarUsuario(self):
        token = request.headers['Authorization']
        fcha_actl = time.ctime()
        ln_opcn_mnu = request.form["id_mnu_ge"]
        validacionSeguridad = ValidacionSeguridad()
        val = validacionSeguridad.Principal(token, ln_opcn_mnu,
                                            optns.OPCNS_MNU['Usuarios'])
        #Validar los campos requeridos.
        u = ActualizarAcceso(request.form)
        if not u.validate():
            return Utils.nice_json({"error": u.errors}, 400)
        if val:
            md5 = hashlib.md5(
                request.form['password'].encode('utf-8')).hexdigest()
            '''
                INSERTAR DATOS
            '''
            arrayValues = {}
            arrayValues2 = {}
            #Actualizo tabla ge
            arrayValues2['id'] = request.form['id_login_ge']
            arrayValues2['fcha_mdfccn'] = str(fcha_actl)
            arrayValues2[
                'id_grpo_emprsrl'] = '2'  #pendiente traer esta variable de una cookie
            arrayValues['lgn'] = request.form['login']
            arrayValues['cntrsna'] = md5  #pendiente encriptar la contraseña
            arrayValues['nmbre_usro'] = request.form['nombre_usuario']
            '''
            Validar repetidos
            '''
            lc_tbls_query = dbConf.DB_SHMA + ".tblogins_ge a INNER JOIN " + dbConf.DB_SHMA + ".tblogins b on a.id_lgn=b.id "
            CursorValidar = lc_cnctn.querySelect(
                lc_tbls_query, ' b.id ',
                " a.id <> " + str(arrayValues2['id']) + " AND b.lgn = '" +
                str(arrayValues['lgn']) + "' ")
            if CursorValidar:
                return Utils.nice_json(
                    {"error": labels.lbl_lgn + " " + errors.ERR_RGSTRO_RPTDO},
                    400)
            '''
            Insertar en la tabla auxiliar y obtener id de creacion
            '''
            self.UsuarioActualizaRegistro(arrayValues2, 'tblogins_ge')
            #obtengo id_lgn a partir del id_lgn_ge
            Cursor = lc_cnctn.querySelect(dbConf.DB_SHMA + '.tblogins_ge',
                                          'id_lgn',
                                          "id=" + str(arrayValues2['id']))
            if Cursor:
                data = json.loads(json.dumps(Cursor[0], indent=2))
                id_lgn = data['id_lgn']
            #Actualizo tabla principal
            arrayValues['id'] = id_lgn
            '''
            Guardar la imagen en la ruta especificada
            '''
            lc_nmbre_imgn = str(
                hashlib.md5(str(
                    arrayValues['id']).encode('utf-8')).hexdigest()) + '.jpg'
            arrayGuardarArchivo = self.GuardarArchivo(request.files,
                                                      'imge_pth',
                                                      conf.SV_DIR_IMAGES,
                                                      lc_nmbre_imgn, True)
            if arrayGuardarArchivo['status'] == 'error':
                return Utils.nice_json(
                    {"error": arrayGuardarArchivo['retorno']}, 400)
            else:
                arrayValues['fto_usro'] = str(arrayGuardarArchivo["retorno"])

            #ACTUALIZACION TABLA LOGINS OK
            self.UsuarioActualizaRegistro(arrayValues, 'tblogins')
            return Utils.nice_json({"error": labels.SCCSS_ACTLZCN_EXTSA}, 200)
            '''
                FIN INSERTAR DATOS
            '''
        else:
            return Utils.nice_json({"error": errors.ERR_NO_ATRZCN}, 400)
예제 #10
0
파일: Users.py 프로젝트: robiwimarbu/auth
    def InsertarUsuarios(self):
        token = request.headers['Authorization']
        fcha_actl = time.ctime()
        ln_opcn_mnu = request.form["id_mnu_ge"]
        validacionSeguridad = ValidacionSeguridad()
        val = validacionSeguridad.Principal(token, ln_opcn_mnu,
                                            optns.OPCNS_MNU['Usuarios'])
        lc_cntrsna = hashlib.md5(
            request.form['password'].encode('utf-8')).hexdigest()
        #Validar los campos requeridos.
        u = AcInsertarAcceso(request.form)
        if not u.validate():
            return Utils.nice_json({"error": u.errors}, 400)

        if val:
            '''
                Aqui insertamos los datos del usuario
            '''
            arrayValues = {}
            arrayValues3 = {}
            arrayValues['lgn'] = request.form['login']
            arrayValues[
                'cntrsna'] = lc_cntrsna  #pendiente encriptar la contraseña
            arrayValues['nmbre_usro'] = request.form['nombre_usuario']
            arrayValues3['fcha_crcn'] = str(fcha_actl)
            arrayValues3['fcha_mdfccn'] = str(fcha_actl)
            arrayValues3[
                'id_grpo_emprsrl'] = '2'  #pendiente traer esta variable de una cookie
            '''
            Validar repetidos
            '''
            lc_tbls_query = dbConf.DB_SHMA + ".tblogins_ge a INNER JOIN " + dbConf.DB_SHMA + ".tblogins b on a.id_lgn=b.id "
            CursorValidar = lc_cnctn.querySelect(
                lc_tbls_query, ' b.id ',
                " b.lgn = '" + str(arrayValues['lgn']) + "' ")
            if CursorValidar:
                return Utils.nice_json(
                    {"error": labels.lbl_lgn + " " + errors.ERR_RGSTRO_RPTDO},
                    400)

            id_lgn = self.UsuarioInsertaRegistro(arrayValues, 'tblogins')
            arrayValues3['id_lgn'] = str(id_lgn)
            lc_nmbre_imgn = str(
                hashlib.md5(str(id_lgn).encode('utf-8')).hexdigest()) + '.jpg'

            arrayGuardarArchivo = self.GuardarArchivo(request.files,
                                                      'imge_pth',
                                                      conf.SV_DIR_IMAGES,
                                                      lc_nmbre_imgn, True)
            if arrayGuardarArchivo['status'] == 'error':
                return Utils.nice_json(
                    {"error": arrayGuardarArchivo['retorno']}, 400)
            else:
                arrayValues['fto_usro'] = str(arrayGuardarArchivo["retorno"])
            '''
            Actualizo el registro con el nombre de la imagen
            '''
            arrayValues['id'] = str(id_lgn)
            self.UsuarioActualizaRegistro(arrayValues, 'tblogins')

            return Utils.nice_json({"error": labels.SCCSS_RGSTRO_EXTSO}, 200)
            '''
            Fin de la insercion de los datos
            '''
        else:
            return Utils.nice_json({"error": errors.ERR_NO_ATRZCN}, 400)