def doAuthentication(self, trans, request): session = request.getSession() _ = trans info = WebGetUserInfo(self.db, session) # 0) Se empieza la página request.write(self.template.startPage(session, _('Informacion de usuario'))) d = defer.maybeDeferred(lambda:None) # 1) Verificar que esté autenticado ante el sistema if not hasattr(session, 'username'): request.write(self.template.notAuthenticated(session)) # 2) Si es Admin, puede ver todos los usuarios elif "user_id" in request.args.keys() and "kind" in request.args.keys(): try: user_id = int(request.args['user_id'][0]) kind = int(request.args['kind'][0]) msg = '<h2>' + _('Informacion de usuario') + '</h2>' d.addCallback(lambda a: info.getUserInfo(user_id, kind)) except ValueError: request.write(self.template.unexpectedArguments(session, \ _('Argumento no valido'))) user_id = kind = msg = None d.addCallback(lambda a: None) d.addCallback(self.printContent, request, d, user_id, kind, session, msg) else: request.write(self.template.unexpectedArguments(session, \ _('Falta algun argumento'))) d.addCallback(lambda a: request.write(self.template.finishPage(session))) d.addCallback(lambda a: request.finish()) return d
def homePageContent(self, session): """Devuelve el contenido de la pagina principal del usuario """ _ = session._ content = '<h1>' + _('La pagina de %s %s') % \ (session.name, session.lastname) + '</h1>\n' if session.kind == ADMIN: #root content += '<p>' + _('Usted es el administrador de este sitio') + '</p>' d = defer.maybeDeferred(lambda: content) elif session.kind == TUTOR: # si es tutor, se imprimen las clases precoordinadas que tenga arregladas info = WebGetUserInfo(DBConnect(), session) now = DateTime.now() d = info.getPAFromTutor(session.userId, now) elif session.kind == CLIENT: # si es alumno o cliente, se imprimen las horas disponibles (de ai y pc) info = WebGetUserInfo(DBConnect(), session) d = info.getHours(session.kind, session.userId) elif session.kind == PUPIL: info = WebGetUserInfo(DBConnect(), session) d = info.getHours(session.kind, session.userId) #tambien se imprimen la agenda de clases precoordinadas d.addCallback(self._getPAFromPupil, session.userId, info) else: content += '<p>' + _('Aqui se muestra alguna informacion general como horas disponibles u horarios en los que se tienen clases, y algunos links utiles. Por ejemplo, se puede ver la lista de') + ' <a href="/roominfo/">' + \ _('salas disponibles.') + '</a>' + ' ' + _('o las') + ' ' + \ '<a href="/static/Paginas/Tarifas.html">' + \ _('Tarifas actuales') + '</a></p>' d = defer.maybeDeferred(lambda: content) return d