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()
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