Exemplo n.º 1
0
def configuracion():
    global estudiante
    fields = [
        'nombre',
        'apellido',
        'correo',
        'tipo_documento',
        'numero_documento',
        'telefono',
        'direcUsuario',
        'sexo'         
    ]

    if auth.is_logged_in():
        userid = str(auth.user['username'])

        usuario = db.UsuarioUSB(db.UsuarioUSB.usbid == userid)

        db.UsuarioUSB.nombre.default=usuario.nombre
        db.UsuarioUSB.apellido.default = usuario.apellido
        db.UsuarioUSB.correo.default = usuario.correo
        db.UsuarioUSB.tipo_documento.default = usuario.tipo_documento
        db.UsuarioUSB.numero_documento.default = usuario.numero_documento
        db.UsuarioUSB.telefono.default = usuario.telefono
        db.UsuarioUSB.direcUsuario.default = usuario.direcUsuario
        db.UsuarioUSB.sexo.default = usuario.sexo

        if (auth.has_membership(role='Estudiante')):
            estudiante = db.Estudiante(db.Estudiante.usuario == usuario.id)
            fields.append('carnet')
            fields.append('carrera')
            fields.append('sede')
            db.Estudiante.carnet.default = estudiante.carnet
            db.Estudiante.carrera.default = estudiante.carrera
            db.Estudiante.sede.default = estudiante.sede
            form = SQLFORM.factory(db.UsuarioUSB,db.Estudiante,fields=fields,submit_button='Actualizar', showid=False)
            response.view = 'mi_perfil/configuracion_estudiante.html'
        elif (auth.has_membership(role='Profesor') or auth.has_membership(role='TutorAcademico')):
            profesor = db.Profesor(db.Profesor.usuario == usuario.id)
            fields.append('categoria')
            fields.append('dedicacion')
            fields.append('departamento')
            fields.append('sede')
            db.Profesor.carnet.default = profesor.categoria
            db.Profesor.carrera.default = profesor.dedicacion
            db.Profesor.sede.default = profesor.departamento
            db.Profesor.sede.default = profesor.sede
            form = SQLFORM.factory(db.UsuarioUSB,db.Estudiante,fields=fields,submit_button='Actualizar', showid=False)
            response.view = 'mi_perfil/configuracion__profesor.html'
        elif (auth.has_membership(role='CoordinadorCCT') or auth.has_membership(role='Coordinador')):
            coordinador = db.Coordinador(db.Coordinador.id == usuario.id)
            fields.append('carnet')
            fields.append('correo_Alternativo')
            db.Coordinador.carnet.default = coordinador.carnet
            db.Coordinador.correo_Alternativo.default = coordinador.correo_Alternativo
            form = SQLFORM.factory(db.UsuarioUSB,db.Coordinador,fields=fields,submit_button='Actualizar', showid=False)
            response.view = 'mi_perfil/configuracion_coordinador.html'
        else:
            form = SQLFORM(db.UsuarioUSB, record=usuario, fields=fields, submit_button='Actualizar', showid=False)
    else:
        redirect(URL(c="default",f="index"))

    if form.process().accepted:
        # Actualizo los datos de usuario
        usuario.update_record(**db.UsuarioUSB._filter_fields(form.vars))
        if (auth.has_membership(role='Estudiante')):
            # Actualizo los datos exclusivos de estudiante
            estudiante.update_record(**db.Estudiante._filter_fields(form.vars))
        elif (auth.has_membership(role='Profesor') or auth.has_membership(role='TutorAcademico')):
            # Actualizo los datos exclusivos de profesor
            profesor.update_record(**db.Profesor._filter_fields(form.vars))
        elif (auth.has_membership(role='CoordinadorCCT') or auth.has_membership(role='Coordinador')):
            # Actualizo los datos exclusivos de profesor
            coordinador.update_record(**db.Coordinador._filter_fields(form.vars))

        session.flash = T('Perfil actualizado exitosamente!')
        usuario.update_record(activo=True)
        session.currentUser = Usuario.getByRole(usuario.id)
        redirect(URL('ver'))
    else:
        response.flash = T('Por favor llene la forma.')

    return locals()
Exemplo n.º 2
0
        usuario = get_ldap_data(usbid) #Se leen los datos del CAS
        
        tablaUsuario  = db.UsuarioUSB

        #Esto nos indica si el usuario ha ingresado alguna vez al sistema
        #buscandolo en la tabla de usuario.
        primeravez = db(tablaUsuario.usbid==usbid)

        if primeravez.isempty():

            print usuario['tipo']

            authUserId=Usuario.registrar(usuario,auth)

            respuesta = Usuario.getByRole(authUserId)

            session.currentUser = respuesta

            if usuario['tipo'] == 'Pregrado' or usuario['tipo'] == 'Postgrado':
                redirect(URL(c='mi_perfil/configuracion'))

            redirect(URL(c='default',f='index'))
            # auth.login_bare(usbid,clave)
            #redirect(URL(c='default',f='registrar', vars=dict(usuario=usuario,usbid=usbid)))

        else:
            #Como el usuario ya esta registrado, buscamos sus datos y lo logueamos.
            datosUsuario = db(tablaUsuario.usbid==usbid).select()[0]
            clave        = datosUsuario.clave