Example #1
0
    def POST(*a):
        i = config.web.input()
        pwdhash = hashlib.md5(i.password + config.secret_key).hexdigest()
        check = config.model_users.validate_user(i.username, pwdhash)
        if check:
            app.session.loggedin = True
            app.session.username = config.make_secure_val(check['username'])
            app.session.privilege = config.make_secure_val(str(check['privilege']))
            # get time now and N minutes
            now = datetime.datetime.now()
            future = now + datetime.timedelta(minutes = app.expires)
            future_str = str(future).split('.')[0]
            app.session.expires = config.make_secure_val(future_str)

            change_pwd = check['change_pwd']
            ip = web.ctx['ip']
            result = config.model_logs.insert_logs(check['username'], ip)
            if result == None:
                print "Error in log"

            if check['status'] == 0:
                message = "User account disabled!!!!"
                return config.render.login(message)
            elif change_pwd == 1:
                raise config.web.seeother('/users/change_pwd')
            else:
                raise config.web.seeother('/')
        else:
            message = "User or Password are not correct!!!!"
            return config.render.login(message)
Example #2
0
 def GET_TSA(username, **k):
     message = None  # Error message
     result = config.model.get_users(username)  # search for username data
     print result
     result.username = config.make_secure_val(str(
         result.username))  # apply HMAC for username
     return config.render.tsa(result, message)  # render tsa.html
Example #3
0
  def GET(self):
    # check '_id' in the cookie to see if the user already sign in
    if web.cookies().get('_id'):
      # user already sign in, retrieve user profile
      #transformacion de archivo json para leer y obtener perfil de usuario
      profile = json.loads( web.cookies().get('_profile'))
      #Obtencion de valor email del archivo json 
      user = profile['email'] 
      picture = profile['picture']
      #emision de valor email de archivo json para ver html
      # obtencion_email = profile['email'], json.dumps(user)


     
      check = config.model_users.validate_user(user)
      if check:
            app.session.loggedin = True
            app.session.user = check['user']
            app.session.privilege = check['privilege']
            app.session.picture = picture

            # get time now and N minutes
            now = datetime.datetime.now()
            future = now + datetime.timedelta(minutes = app.expires)
            future_str = str(future).split('.')[0]
            app.session.expires = config.make_secure_val(future_str)

            ip = web.ctx['ip']

            config.model_logs.insert_logs(check['user'], ip)

            if check['status'] == 0:
                message = check['user'] + ": User account disabled!!!!"
                app.session.loggedin = False
                app.session.user = '******'
                app.session.privilege = -1 #asignar privilegio solo para pagina de introduccion
                app.session.picture = None
                app.session.kill()#destruir la session de kuorra
                web.setcookie('_id', '', 0)#cierre de session en google 
                print message
                return config.render.login(message)
            else:
                raise config.web.seeother('/')
      if check==None:
        message = user + ": User not found"
        app.session.loggedin = False
        app.session.user = '******'
        app.session.privilege = -1 #asignar privilegio solo para pagina de introduccion
        app.session.picture = None
        app.session.kill()#destruir la session de kuorra
        web.setcookie('_id', '', 0)#cierre de session en google 
        
        print  message
        return config.render.login(message)
        # raise config.web.seeother('/logout')
    
    else:
      raise web.seeother('/auth/google')
Example #4
0
    def GET(self):
        if web.cookies().get(
                '_id'
        ):  # Esta cookie tiene el perfil del usuario devuelta por google
            # se almacena localmente el perfil del usuario desde la cookie
            profile = json.loads(web.cookies().get('_profile'))
            # email del usuario que se autentico con google
            user = profile['email']
            # url de la imagen del usuario que se autentico
            picture = profile['picture']
            '''
            El siguiente codigo verifica si el email del usuario que se autentico
            con google esta almacenado en la base de datos del proyecto.
            '''
            # user_authenticated, si el usuario existe en nuestro sistema regresa los datos el usuario
            # user_authenticated, no el usuario no existe en nuestro sistema regresa un valor None
            user_authenticated = config.model_users.validate_user(user)

            if user_authenticated:
                '''
                Se inicia sesion en el sistema con los datos dados por google y del proyecto
                '''
                app.session.loggedin = True  # sesion iniciada
                # email del usuario
                app.session.user = user_authenticated['user']
                # nivel del usuario
                app.session.tipo = user_authenticated['tipo']
                app.session.picture = picture  # fotografia del usuario google

                # Se establecen la hora y fecha actuales para el tiempo que estara abierta la sesion
                now = datetime.datetime.now()
                future = now + datetime.timedelta(minutes=app.expires)
                future_str = str(future).split('.')[0]
                app.session.expires = config.make_secure_val(future_str)

                # se obtiene la IP del usuario que esta iniciando sesion en el sistema
                ip = web.ctx['ip']

                # se guarda la ip y el usuario que inicio sesion
                config.model_logs.insert_logs(user_authenticated['user'], ip)

                raise config.web.seeother('/')

            if user_authenticated is None:
                app.session.loggedin = False  # cierra la sesion en nuestro sistema
                app.session.user = user  # usuario no registrado en nuestro sistema
                print user
                app.session.tipo = -1  # asignar privilegio solo para pagina de introduccion
                app.session.picture = None  # se quita la url con la fotografia
                app.session.kill()  # destruir la session de kuorra
                web.setcookie('_id', '', 0)  # cierre de session en google
                raise web.seeother('/registro')
                #raise web.seeother('/registro')
        else:  # si no inicio session correctamente con google vuelve a solicitar que la inicie
            # pagina para iniciar sesion con google
            raise web.seeother('/auth/google')
Example #5
0
    def POST_TSA(username, **k):
        message = None  # Error message
        form = config.web.input()  # get form data
        result = config.model.get_users(username)  # search for username data
        user_hash = str(result.user_hash)

        auth = OtpAuth(user_hash)
        if auth.valid_totp(form.authenticator):
            app.session.loggedin = True
            raise config.web.seeother('/')
        else:
            message = "Two Step Authenticator not valid"  # Error message
            result = config.model.get_users(
                username)  # search for username data
            result.username = config.make_secure_val(str(
                result.username))  # apply HMAC for username
            return config.render.tsa(result, message)  # render tsa.html