Example #1
1
def post():
    if request.method == 'POST':
        print request.json
        
        session_token = escape(session.get('token'))
        username = redis_connections.get(session_token)
        content = request.json['content']
        lat = request.json['lat']
        lng = request.json['lng']
         
        user = User.query.filter_by(username=username).first() 
        db.session.add(user)
        facebook_post = Post(user=user,content=content, lat=lat, lng=lng)
        db.session.add(facebook_post)

        db.session.commit()
        db.session.flush()
        return jsonify({'message':u'upload posting Successfully!'}),200
    else:
        session_token = escape(session.get('token'))
        username = redis_connections.get(session_token)
        posts = Post.query.filter_by(username=username).all()
        post_list = []
        for each_post in posts:
            post_list.append({'id':each_post.id,'username':each_post.username,'content':each_post.content,'lat':each_post.lat,'lng':each_post.lng,'timestamp':each_post.timestamp})
        print post_list
        return jsonify({'posts': post_list})
Example #2
0
def get_oauth():
    """
    Get a tweepy OAuthHander
    """
    cb_url = 'http://'+request.host+url_for('auth_verify')
    
    oauth = tweepy.OAuthHandler(
        settings.TWITTER_CONSUMER_KEY,
        settings.TWITTER_CONSUMER_SECRET,
        callback=cb_url,
        secure=True)
    
    key = session.get('request_token_key')
    secret = session.get('request_token_secret')
    if key and secret:
        oauth.set_request_token(key, secret)
    
    key = session.get('access_token_key')
    secret = session.get('access_token_secret')
    if key and secret:
        oauth.set_access_token(key, secret)
               
        if not session.get('username'):
            username = oauth.get_username()
            if username:
                session['username'] = username.lower()
    return oauth
Example #3
0
def docheck():
    # session[] 存資料
    # session.get() 取 session 資料
    # 利用 request.form[] 取得表單欄位資料, 然後送到 template
    guess = request.form["guess"]
    session["guess"] = guess
    # 假如使用者直接執行 doCheck, 則設法轉回根方法
    if guess is None:
        redirect("/")
    # 從 session 取出 answer 對應資料, 且處理直接執行 docheck 時無法取 session 值情況
    try:
        theanswer = int(session.get('answer'))
    except:
        redirect("/")
    # 經由表單所取得的 guess 資料型別為 string
    try:
        theguess = int(guess)
    except:
        return redirect("/guessform")
    # 每執行 doCheck 一次,次數增量一次
    session["count"] += 1
    count = session.get("count")
    # 答案與所猜數字進行比對
    if theanswer < theguess:
        return render_template("toobig.html", guess=guess, answer=theanswer, count=count)
    elif theanswer > theguess:
        return render_template("toosmall.html", guess=guess, answer=theanswer, count=count)
    else:
        # 已經猜對, 從 session 取出累計猜測次數
        thecount = session.get('count')
        return "猜了 "+str(thecount)+" 次, 終於猜對了, 正確答案為 "+str(theanswer)+": <a href='/'>再猜</a>"
    return render_template("docheck.html", guess=guess)
Example #4
0
def edit_response(response_id):
    code = 201
    tdatetime = dt.now()
    tstr = tdatetime.strftime('%Y-%m-%d %H:%M:%S')
    req = request.form

    # 下記 三項演算子で記述する
    updater_id = 0
    if session.get('user_id') is not None:
        updater_id = session.get('user_id')

    try:
        row = db_session.query(Response).get(response_id)
        row.type = req["responses[type]"]
        row.content = req["responses[content]"]
        row.state = req["responses[state]"]
        row.updated_by = updater_id
        row.updated_at = tstr

        db_session.flush()
        db_session.commit()
    except:
        pass
    finally:
        pass

    return jsonify(status_code=code)
Example #5
0
def addDesk():
    try:
        if session.get('user'):
            _title = request.form['inputTitle']
            _user = session.get('user')

            if request.form.get('filePath') is None:
                _filePath = ''
            else:
                _filePath = request.form.get('filePath')
          

            conn = mysql.connect()
            cursor = conn.cursor()
            cursor.callproc('sp_addDesk',(_title,_filePath,_user))
            data = cursor.fetchall()

            if len(data) is 0:
                conn.commit()
                return redirect('/userHome')
            else:
                return render_template('error.html',error = 'An error occurred!')

        else:
            return render_template('error.html',error = 'Unauthorized Access')
    except Exception as e:
        return render_template('error.html',error = str(e))
    finally:
        cursor.close()
        conn.close()
Example #6
0
def upload_file():
    if not session.get('has_cookies', 0) == 1:
        app.logger.debug("No cookie found")
        return Response('<html><body><span id="cookies">'
                        + gettext('Please activate cookies '
                                  'so your uploads can be linked to you.')
                        + '</span></body></html>')

    if 'file' in request.files and request.files['file']:
        app.logger.info("Upload form is valid")
        app.logger.info("request.files is %s" % request.files)
        upload = Upload()

        # save original name
        upload.store_file(request.files['file'])

        Upload.add(upload)
        Upload.commit()

        # link to session
        file_ids = session.get('file_ids', [])
        file_ids.append(upload.id)
        session['file_ids'] = file_ids

        app.logger.info("Saved upload: %s" % upload)
    else:
        app.logger.error("No file specified")

    return redirect(url_for('main'))
Example #7
0
def AGenerarCertificado():
    results = [{'label':'/VEvento', 'msg':[ur'Certificado generado']}, {'label':'/VEvento', 'msg':[ur'Error']}, ]
    eventoid = request.args.get('eventoid')

    print session.get('actor')
    if eventoid is None:
        res = results[1]
    else:
        evento = Evento.get(eventoid)
        usuario = session.get('actor')
        usuario = Usuario.get(usuario)
        if usuario is None:
            usuario = "Default"
        pdf = crear_pdf(render_template('certificado.html', evento=evento, usuario=usuario))
        
        if pdf is None:
            res = results[1]
        else:
            res = results[0]
            res['certificado'] = pdf

    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    return json.dumps(res)
Example #8
0
def add_response():
    code = 201
    tdatetime = dt.now()
    tstr = tdatetime.strftime('%Y-%m-%d %H:%M:%S')
    req = request.form
    # 下記 三項演算子で記述する
    creator_id = 0
    if session.get('user_id') is not None:
        creator_id = session.get('user_id')

    try:
        response = Response(
            id=None,
            type=req["responses[type]"],
            content=req["responses[content]"],
            state=req["responses[state]"],
            created_by=creator_id,
            updated_by=creator_id,
            created_at=tstr,
            updated_at=tstr
        )
        db_session.add(response)
        db_session.commit()
    except:
        pass
    finally:
        pass

    return jsonify(status_code=code)
Example #9
0
def oauth_callback():
	auth = request.authorization

	# require client authentication using Basic auth
	if not auth:
		response = jsonify({'error': 'invalid_client'})
		response.status_code = 401
		response.headers['WWW-Authenticate'] = 'Basic realm="Login Required"'
		return response

	# we could validate the client_id/secret from the HTTP authentication info here...
	client_id = auth.username

	# validate access token
	token = request.form.get('access_token')

	if token and request.form.get('method') == 'access_response':
		survey = request.form.get('survey')
		response = request.form.get('response')

		session = get_session(token)

		if not session.get('user'):
			return jsonify({'error': 'invalid_grant'})

		if not Response.query.filter_by(survey=survey, key=response, username=session.get('user')).count():
			abort(404)

		return jsonify({'success': True})

	return jsonify({'error': 'invalid_request'})
Example #10
0
def VEvento():

    print session.get('actor')
    eventoid = request.args.get('eventoid')

    res = {}
    if eventoid is not None:
        res['evento'] = Evento.get(eventoid).__dict__

    if "actor" in session:
        res['actor'] = session.get('actor')
        asiste = Asiste.get(res['actor'], eventoid)
        asistio = Asiste.asistio(res['actor'], eventoid)
        admin = Usuario.esAdmin(res['actor'])
        if admin is True:
            res['admin'] = 0
        else:
            res['admin'] = 1
        if asiste is None:
            res['reservado'] = 1
        else:
            res['reservado'] = 0
        if asistio is None:
            res['asistio'] = 1
        else:
            res['asistio'] = 0

    return json.dumps(res)
Example #11
0
def index():
	if session.get("logged_in"):
		return redirect(url_for("dashboard"))
	elif session.get("signup"):
		flash("Thank you for signing up to our beta program. We'll contact you as soon as a new spot opens up!")
		session["signup"] = False
	return render_template("index.html", title="Welcome to EVCloud", page="index")
Example #12
0
def chemical_analyses():
    email = session.get('email', None)
    api_key = session.get('api_key', None)
    api = MetpetAPI(email, api_key).api

    filters = ast.literal_eval(json.dumps(request.args))
    offset = request.args.get('offset', 0)
    filters['offset'] = offset

    data = api.chemical_analysis.get(params=filters)
    next, previous, last, total_count = paginate_model('chemical_analyses',
                                                        data, filters)
    chemical_analyses = data.data['objects']

    first_page_filters = filters
    del first_page_filters['offset']

    if filters:
        first_page_url = url_for('chemical_analyses') + '?' + urlencode(first_page_filters)
    else:
        first_page_url = url_for('chemical_analyses') + urlencode(first_page_filters)

    return render_template('chemical_analyses.html',
                            chemical_analyses=chemical_analyses,
                            next_url=next,
                            prev_url=previous,
                            total=total_count,
                            first_page=first_page_url,
                            last_page=last)
Example #13
0
def joined(message):
    """Sent by clients when they enter a room.
    A status message is broadcast to all people in the room."""
    room = session.get('room')
    join_room(room)
    print "session1", session
    emit('status', {'msg': session.get('name') + ' has entered the room.'}, room=room)
Example #14
0
def rotation():
    if not session.get('date'):
        date = datetime.date(2014, 10, 30)
    else:
        date = datetime.date.fromordinal(session.get('date'))
    if not session.get('weeks'):
        weeks = 2
    else:
        weeks = session.get('weeks')
    form = DateForm(year=date.year, month=date.month, day=date.day,
                    weeks=weeks)
    if request.method == 'POST':
        try:
            date = datetime.date(form.year.data,
                                 form.month.data,
                                 form.day.data)
            session['date'] = date.toordinal()
            session['weeks'] = form.weeks.data
        except:
            date = datetime.date.fromordinal(session.get('date'))
            flash('Invalid date. Using previous value.')
        return redirect(url_for('rotation'))
    else:
        gifname = str(date) + '_' + str(weeks) + '.gif'
        giffile = os.path.join(path, 'static', 'rotation', gifname)
        if not os.path.isfile(giffile):
            cmd = "convert -delay 50 "
            for d in range(-7*weeks, 1):
                img = get_img(date + datetime.timedelta(d))
                if img:
                    cmd += img + ' '
            cmd += '-loop 0 '+giffile
            os.system(cmd)
        return render_template('rotation.html', text=text_rotation,
                               form=form, gifname=gifname)
Example #15
0
def before_request():
    """
    """
    from flask import  request
    g.db = Session()
    # 用户登陆信息加载
    user_id = session.get('user_id', None)
    if not user_id:
        g.user = None
    else:
        g.user = g.db.query(Customer).filter(Customer.id == user_id,
                                             Customer.status == True
                                             ).first()

    # mc 用户登录
    mc_user_id = session.get('mc_user_id', None)
    if not mc_user_id:
        g.mc_user = None
    else:
        g.mc_user = g.db.query(Merchant).filter(Merchant.id == mc_user_id,
                                                Merchant.status == True
                                                ).first()

    # admin 用户登录
    admin_user_id = session.get('admin_user_id', None)
    if not admin_user_id:
        g.admin_user = None
    else:
        g.admin_user = g.db.query(AdminUser).filter(AdminUser.id == admin_user_id,
                                                    AdminUser.status == True
                                                    ).first()
Example #16
0
def newpost_authentication():
    #gotta be logged in
    if not session.get('username'):
        abort(401)

    #make sure the user entered all the form data

    u = User.query.filter_by(username=session.get('username')).first()

    #create a new post linked to that user with the data
    new_post = Post(
        title=request.form['title'], 
        description=request.form['description'], 
        pay=request.form['pay'], 
        location=request.form['location'], 
        date=request.form['date'],
        the_user=session.get('username')
        )

    new_post.author = u
    db.session.add(new_post)
    db.session.commit()

    flash('Post successfully added!')
    return redirect(url_for('dashboard'))
Example #17
0
 def decorated(*args, **kwargs):
     if session.get('user_info') is None:
         return redirect(url_for('login'))
     if session.get('user_info').get('is_admin') is None or not session.get('user_info').get('is_admin'):
         return redirect(url_for('dashboard'))
     __handshake()
     return f(*args, **kwargs)
Example #18
0
def new_password(s):
    context = {
        'msg': 'Wrong code for create new password',
        'action': "/user/new_password/%s" % (s,),
    }

    if s == session.get('act_str_for_password'):
        context['msg'] = 'Please write your new password'

        if request.method == 'POST':
            from models.models import User, db

            pass1 = request.form.get('pass1')
            pass2 = request.form.get('pass2')

            if User.clean_passwords(pass1, pass2):
                query = User.query.filter_by(email=session.get('email')).first()
                query.password = User.hash_password(pass1)

                db.session.add(query)
                db.session.commit()

                del session['email']
                del session['act_str_for_password']

                context['msg'] = 'Successfully changed password'

                return render_template('reg/flash_message.html', context=context)

        return render_template('reg/handling_pass.html', context=context)

    return render_template('reg/flash_message.html', context=context)
Example #19
0
def event_tags():
    if session.get('logged_in'):
        # Create the event
        activity = '\'' + request.form['activity'] + '\''
        city_id = '\'' + request.form['city'] + '\''
        location = '\'' + request.form['location'] + '\''
        date = request.form['date']
        time = request.form['time']
        max_part = '\'' + request.form['max_part'] + '\''
        user_id = session.get('user_id')
        date_time = "\'{} {}\'".format(date, time + ':00')
        args = ','.join([city_id, location, date_time, max_part, activity])
        query = 'INSERT INTO Events (CityID, Location, DateAndTime, MaxRegisters, ActivityID) VALUES ({})'.format(args)
        query_db_no_return_value(query)
        event_id = query_db('SELECT ID FROM Events ORDER BY ID DESC LIMIT 1')[0][0]
        # Add user as creator and participant
        args = ','.join([str(user_id), str(event_id), '1'])
        query = 'INSERT INTO Registrations (UserID, EventID, Creator) VALUES ({})'.format(args)
        query_db_no_return_value(query)

        # Get relevant tags fot the activity type
        tags = query_db('SELECT * FROM Tags WHERE ActivityID={}'.format(activity))
        return render_template('event_tags.html', tags=tags, num_tags=len(tags), event_id=event_id)

    else:
        return redirect(url_for('login_page'))
Example #20
0
def excavators():
    user = session.get('user_info')
    err_msg = None
    if session.get('error_message') is not None:
        err_msg = session.get('error_message')
        session['error_message'] = None

    info_msg = None
    if session.get('info_message') is not None:
        info_msg = session.get('info_message')
        session['info_message'] = None

    accounts_key = 'accounts:%s' % user.get('username')
    accounts = list()

    for acct in sorted(r_session.smembers(accounts_key)):
        account_key = 'account:%s:%s' % (user.get('username'), acct.decode("utf-8"))
        account_data_key = account_key + ':data'
        account_data_value = r_session.get(account_data_key)
        account_info = json.loads(r_session.get(account_key).decode("utf-8"))
        if account_data_value is not None:
            account_info['data'] = json.loads(account_data_value.decode("utf-8"))

        accounts.append(account_info)

    show_drawcash = not (r_session.get('can_drawcash') is None or
                         r_session.get('can_drawcash').decode('utf-8') == '0')

    return render_template('excavators.html', err_msg=err_msg, info_msg=info_msg, accounts=accounts,
                           show_drawcash=show_drawcash)
Example #21
0
def bulk_upload():
    return render_template('bulk_upload.html',
        auth_token = session.get("auth_token",None),
        email = session.get("email",None),
        name = session.get("name",None),
        owner = session.get("owner",None)
    )
Example #22
0
def login():	
	if session.get('access_token', None) is None:
		return redirect(Client().authorization_url(client_id=STRAVA_CLIENT_ID, redirect_uri=STRAVA_CALLBACK_URL, scope="view_private"))
	else:
		token = session.get('access_token')
		
	return redirect('/whoami')
Example #23
0
def showSummary():
    entries = []

    sumIncome = 0

    expensePerCategory = {}
    for category in Category.objects().all():
        expensePerCategory.update({category.name : 0})

    userId = ObjectId(session.get('user')['_id']['$oid'])
    for entry in Entry.objects(owner = userId).all():
        e = {'_id' : entry.id, 'amount' : entry.amount,
            'description' : entry.description }

        # Check if the entry has a category.
        if entry.category is not None:
            e.update({'category' : Category.objects(id = entry.category.id).first().name})
        else:
            e.update({'category' : '-'})

        entries.append(e)

        if e['amount'] > 0:
            sumIncome = sumIncome + e['amount']
        else:
            expensePerCategory[e['category']] = \
                expensePerCategory[e['category']] - e['amount']


    logger.debug('Currency: {0}'.format(session.get('currency')))

    return render_template('/budget/summary.html',
        entries = entries, sumIncome = sumIncome,
            expensePerCategory = expensePerCategory)
def gdisconnect():
    # Only disconnect a connected user.
    credentials = login_session.get('credentials')
    if credentials is None:
        response = make_response(
            json.dumps('Current user not connected.'), 401)
        response.headers['Content-Type'] = 'application/json'
        return response
    access_token = login_session.get('credentials')
    url = 'https://accounts.google.com/o/oauth2/revoke?token=%s' % access_token
    h = httplib2.Http()
    result = h.request(url, 'GET')[0]

    if result['status'] == '200':
        # Reset the user's sesson.
        del login_session['credentials']
        del login_session['gplus_id']
        del login_session['username']
        del login_session['email']
        del login_session['picture']

        response = make_response(json.dumps('Successfully disconnected.'), 200)
        response.headers['Content-Type'] = 'application/json'
        print response
        return redirect(url_for('showTeams'))
    else:
        # For whatever reason, the given token was invalid.
        response = make_response(
            json.dumps('Failed to revoke token for given user.', 400))
        response.headers['Content-Type'] = 'application/json'
        return response
Example #25
0
def load_from_api(resource_name, resource_id=None):

    query_str = resource_name + "/"
    if resource_id:
        query_str += str(resource_id) + "/"

    headers = {}
    if session and session.get('api_key'):
        headers = {'Authorization': 'ApiKey:' + session.get('api_key')}

    try:
        response = requests.get(API_HOST + query_str, headers=headers)
        out = response.json()
        if response.status_code != 200:
            raise ApiException(response.status_code, response.json().get('message', gettext(u"An unspecified error has occurred.")))
        i = 0
        while i < 10:
            i += 1
            if response.json().get('next'):
                response = requests.get(response.json()['next'], headers=headers)
                if response.status_code != 200:
                    raise ApiException(response.status_code, response.json().get('message', gettext(u"An unspecified error has occurred.")))
                out['results'] += response.json()['results']
            else:
                break
        return out

    except ConnectionError:
        flash(gettext(u'Error connecting to backend service.'), 'danger')
        pass
    return
Example #26
0
def receive():

   msgarr=[]
   conn = sqlite3.connect(db_path)
   sql="SELECT * FROM MESSAGES WHERE ROU not like '%%%s%%' and NAME!='%s'" % (session.get('username'),session.get('username'))
   cursor=conn.execute(sql);
   for row in cursor:
       msgtxt = emoApple(row[1])
       subltt=colorizeSublt(row[0])
       msg='%s%s%s</div>%s%s%s</div></div>' % (mainlt,subltt,row[0],msgtxt,sublt,row[3])
       msgarr.append(msg)
       sql="UPDATE MESSAGES SET ROU=ROU||',%s,' where TEXT='%s' and NAME!='%s'" % (session.get('username'),row[1],session.get('username'))
       conn.execute(sql);
   conn.commit()
   conn.close()

   def eventStream():
       str1 = ''.join(msgarr)
       strlength = len(str1)
       if strlength > 0:
           yield "data: {}\n\n".format(str1)



   return Response(eventStream(), mimetype="text/event-stream")
Example #27
0
def receive_poll():

   msgarr=[]
   conn = sqlite3.connect(db_path)
   sql="SELECT * FROM MESSAGES WHERE ROU not like '%%%s%%' and NAME!='%s'" % (session.get('username'),session.get('username'))
   cursor=conn.execute(sql);
   for row in cursor:
       msgtxt = emoApple(row[1])
       subltt=colorizeSublt(row[0])
       msg='%s%s%s</div>%s%s%s</div></div>' % (mainlt,subltt,row[0],msgtxt,sublt,row[3])
       msgarr.append(msg)
       sql="UPDATE MESSAGES SET ROU=ROU||',%s,' where TEXT='%s' and NAME!='%s'" % (session.get('username'),row[1],session.get('username'))
       conn.execute(sql);
   conn.commit()
   conn.close()
   print("i am in poll")

   str1 = ''.join(msgarr)
   print str1
   strlength = len(str1)

   print strlength
   if int(strlength) == 0:
       print('no new updates')
       return 'ok'
   else:
       return jsonify(result=str1)
Example #28
0
def addComment():
    try:
        if session.get('user'):

            conn = mysql.connect()
            cursor = conn.cursor()
            _title = request.form['inputDescription']
            _user = session.get('user')
            _desk_id = session.get('desk_num')
            print(_desk_id)
            
            cursor.callproc('sp_addComment',(_title,_desk_id,_user))
            data = cursor.fetchall()

            if len(data) is 0:
                conn.commit()
                return redirect('/showComment')
            else:
                return render_template('error.html',error = 'An error occurred!')

        else:
            return render_template('error.html',error = 'Unauthorized Access')
    except Exception as e:
        return render_template('error.html',error = str(e))
    finally:
        cursor.close()
        conn.close()
Example #29
0
def welcome():
 session['prev']=0
 if not session.get('logged_in'):
    return redirect(url_for('index'))
 else:
    conn = sqlite3.connect(db_path)
    msgarr=[]
    tot_rows=conn.execute('SELECT count(*) FROM messages').fetchone()[0]
    sql="SELECT * FROM MESSAGES WHERE ROU like '%%,%s,%%' or NAME='%s' LIMIT 50 OFFSET %d-50" % (session.get('username'),session.get('username'),tot_rows)
    cursor=conn.execute(sql);

    for row in cursor:
        if row[3] is None:
            post_time='Few days back'
        else:
            post_time=row[3]

        msgtxt = emoApple(row[1])

        if row[0] == session.get('username'):
            msg='%s%s%s</div>%s%s%s</div></div>' % (mainrt,subrt,row[0],msgtxt,subrt,post_time)
        else:
            subltt=colorizeSublt(row[0])
            msg='%s%s%s</div>%s%s%s</div></div>' % (mainlt,subltt,row[0],msgtxt,sublt,post_time)
        msgarr.append(msg)
    prev_read_chats = ''.join(msgarr)


    return render_template('welcome.html',title='adda',page_title='adda',username=session.get('username'),init_prev_chats=prev_read_chats)
Example #30
0
def sample(id):
    #headers! to authenticate user during API calls (for private data and to add/edit their samples)
    headers = None
    if session.get("auth_token", None):
        headers = {"Authorization": "Token "+session.get("auth_token")}

    #get the sample the usual way and return error message if something went wrong
    sample = get(env("API_HOST")+"samples/"+id+"/", params = {"format": "json"}, headers = headers).json()
    if "detail" in sample:
        flash(sample["detail"])
        return redirect(url_for("search"))

    #make lat/long and date nice
    pos = sample["location_coords"].split(" ")
    sample["location_coords"] = [round(float(pos[2].replace(")","")),5), round(float(pos[1].replace("(","")),5)]
    if sample["collection_date"]:
        sample["collection_date"] = sample["collection_date"][:-10]

    #get subsample and analysis data for tables
    subsamples = []
    for s in sample["subsample_ids"]:
        subsamples.append(get(env("API_HOST")+"subsamples/"+s,
            params = {"fields": "subsample_type,name,id,public_data,owner", "format": "json"}, headers = headers).json())
    for s in subsamples:
        s["chemical_analyses"] = get(env("API_HOST")+"chemical_analyses/",
            params = {"subsample_ids": s["id"], "fields": "id", "format": "json"}, headers = headers).json()["results"]

    return render_template("sample.html",
        sample = sample,
        subsamples = subsamples,
        auth_token = session.get("auth_token",None),
        email = session.get("email",None),
        name = session.get("name",None)
    )
Example #31
0
def handle_user_disconnect():
    """Handle a SocketIO disconnect event. This has to be recoverable to ensure
    that refreshing the page does not destroy a user's chat session."""
    sid = session.get('sid')
    # Set expiration for temporary data
    expire(sid)
Example #32
0
def form():
    logout_form=LogoutForm(request.form)
    modif_form=ModifForm(request.form)
    if modif_form.modif_submit.data and modif_form.validate_on_submit():
        return redirect(url_for('profile'))
    if logout_form.logout_submit.data and logout_form.validate_on_submit():
        session['email']=None
        return redirect(url_for('index'))
    
    form = ReusableForm(request.form)
    #tags_user=[]
    #add_dep='Lille'
    #add_arr='Marseille'
    #escales='Grenoble'
    test=[]
    tags=['Hall', 'Museum']
    #optimisation='distance'
    #mode='driving'
    #overallScore= cp.get_classement(datas[2], tags, datas[1], datas[3], datas[0])[0]
    start=Node(13, 0, None, 0, 0)
    target=Node(2, 0, None, 0, 0)
    #d_max=300000
    #dtfr = cp.get_graph_matrix('Lille', 'Marseille', [], 'driving', overallScore)
    #df_filtered = dtfr
    if request.method == 'POST':
        add_dep=request.form.get('add_dep')
        #add_dep='Lille'
        session["add_dep"]=add_dep
        
        add_arr=request.form.get('add_arr')
        #add_arr='Marseille'
        session["add_arr"]=add_arr
        escales=[form.escales.data]
        #escales=['Grenoble']
        
        tags=form.tags.data
        session["tags"]=tags
        
        optimisation=request.form.get('optimisation')
        #session["optimisation"]=optimisation
        
        mode=request.form.get('locomotion')
        #session["mode"]=mode
        
        h_dep=request.form.get('h_dep')
        j_dep=request.form.get('j_dep')
        h_arr=request.form.get('h_arr')
        j_arr=request.form.get('j_arr')
        #escales=request.form.get('escales')
        t_max=request.form.get('t_max')
        #d_max=request.form.get('d_max')
        t_repas=request.form.get('t_repas')
        
        overallScore = cp.get_classement(datas[2], tags, datas[1], datas[3], datas[0])[0]
        #session["overallScore"]=overallScore
        
        #t_max=10800
        d_max=300000
        #mode='driving'
        #optimisation='distance'
        
        dtfr=cp.get_graph_matrix(add_dep, add_arr, escales, 'driving', overallScore)
        #session["dtfr"]=dtfr
        df_filtered = dtfr.loc[dtfr['distance'] < d_max]
        #session["df_filtered"]=df_filtered
        #df_filtered = df.loc[df['time']<=t_max]
        test=pl.get_path(start, target, dtfr, overallScore, optimisation, df_filtered, datas[0], add_dep, add_arr, escales)
        #test=cp.get_way(tags, cp.get_classement(datas[2], tags, datas[1], datas[3], datas[0])[0], 2, datas[0])
        session["test"]=test
        return redirect('/map')
    else:
        #add_dep=session.get("add_dep", None)
        #add_arr=session.get("add_arr", None)
        tags=session.get("tags", None)
        #optimisation=session.get("optimisation", None)
        #mode=session.get("mode", None)
        #overallScore=session.get("overallScore", None)
        #dtfr=session.get("dtfr", None)
        #df_filtered=session.get("df_filtered", None)
        test=session.get("test", None)  
    #test=pl.get_path(start, target, dtfr, overallScore, optimisation, df_filtered, datas[0], add_dep, add_arr)
    #session["test"]=test
        #return redirect('/map')
    #if tags == []:
        #tags=session.get("tags", None)
    #else:
        #pass
    #test=cp.get_way(tags, cp.get_classement(datas[2], tags, datas[1], datas[3], datas[0])[0], 2, datas[0])
    #test=pl.get_path(start, target, df, overallScore, optimisation, df_filtered, datas[0])
    #session["test"]=test
    #tags=['Museum']
    return render_template('form.html', title='Formulaire', form=form, logout_form=logout_form, modif_form=modif_form, session_email=session['email'])
Example #33
0
def home():
    if not session.get('logged_in'):
        return render_template('login.html')
    else:
        return 'Hello Boss! <a href="/logout">Logout</a>'
Example #34
0
def is_logged_in():
    user = session.get('user')
    if user:
        return user
    else:
        return False
Example #35
0
def load_user():
    user_id = session.get('user_id')
    if user_id is None:
        g.user = None
    else:
        g.user = User.query.get(session['user_id'])
def gconnect():
    print(request.args.get("state"), "==", login_session["state"])
    if (str(request.args.get("state")) != str(login_session["state"])):
        print("Invalid State")
        response = make_response(json.dumps("Invalid State parameter"), 401)
        response.headers["Content-Type"] = "application/json"
        return response
    code = request.data
    try:
        print("code", code)
        oauth_flow = flow_from_clientsecrets(os.path.join(
            APP_PATH, "client_secret.json"),
                                             scope="")
        oauth_flow.redirect_uri = 'postmessage'
        oauth_flow.access_type = 'offline'
        credentials = oauth_flow.step2_exchange(code)
    except FlowExchangeError as e:
        print('Authentication has failed: {}'.format(str(e)))
        response = make_response(json.dumps("Failed to upgrade"), 401)
        response.headers["Content-Type"] = "application/json"
        return response
    access_token = credentials.access_token
    url = ('https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s' %
           access_token)
    h = httplib2.Http()
    result = json.loads(h.request(url, 'GET')[1])
    print(result)
    if result.get('error') is not None:
        response = make_response(json.dumps(result.get('error')), 500)
        response.headers['Content-Type'] = 'application/json'
        return response
    gplus_id = credentials.id_token['sub']
    if result['user_id'] != gplus_id:
        response = make_response(
            json.dumps("Token's user ID doesn't match given user ID."), 401)
        response.headers['Content-Type'] = 'application/json'
        return response
    if result['issued_to'] != CLIENT_ID:
        response = make_response(
            json.dumps("Token's client ID does not match app's."), 401)
        print "Token's client ID does not match app's."
        response.headers['Content-Type'] = 'application/json'
        return response
    stored_access_token = login_session.get('access_token')
    stored_gplus_id = login_session.get('gplus_id')
    if stored_access_token is not None and gplus_id == stored_gplus_id:
        response = make_response(
            json.dumps('Current user is already connected.'), 200)
        response.headers['Content-Type'] = 'application/json'
        return response
    login_session['access_token'] = access_token
    userinfo_url = "https://www.googleapis.com/oauth2/v1/userinfo"
    params = {'access_token': credentials.access_token, 'alt': 'json'}
    answer = requests.get(userinfo_url, params=params)
    data = answer.json()
    login_session['username'] = data['name']
    login_session['picture'] = data['picture']
    login_session['email'] = data['email']
    output = ''
    output += '<h1>Welcome, '
    output += login_session['username']
    output += '!</h1>'
    output += '<img src="'
    output += login_session['picture']
    output += (' " style = "width: 300px; height: 300px;border-radius:150px;\
	-webkit-border-radius: 150px;-moz-border-radius: 150px;"> ')
    flash("you are now logged in as %s" % login_session['username'])
    print "done!"
    return output
Example #37
0
 def decorated_function(*args, **kwargs):
     if session.get("user_id") is None:
         return redirect("/login")
     return f(*args, **kwargs)
Example #38
0
def get_twitter_token(token=None):
    user_id = session.get('user_id')
    user = User.query.get(user_id)
    twitter_token = Token.query.filter_by(user=user, name='Twitter').first()
    return (twitter_token.oauth_token, twitter_token.oauth_token_secret)
Example #39
0
File: app.py Project: flask7/URED
def cerrar():
	session.get('usuario', None)
	session.pop('usuario', None)
	return redirect('/home')
Example #40
0
def check_session():
    username = session.get("admin_username")
    if username:
        return jsonify(username=username, code=200), 200
    else:
        return jsonify(msg="出错了,没登录", code=4000), 400
Example #41
0
def files():
    if not session.get('logged_in'):
        abort(401)

    files = get_uploaded_images()
    return render_template('files.html', img=files)
Example #42
0
def check_auth():
    if not session.get('pass', None) == app.config.get("RQ_PASS"):
        return redirect(url_for('rq_auth'))
Example #43
0
def index():
    auth = session.get('auth')
    print(auth)
    return render_template('index.html')
Example #44
0
def my_context_processor():     # 传递参数的函数
    user = session.get('username')
    if user:
        return {'login_user': user}
    return {}
Example #45
0
def files():
    if not session.get('logged_in'):
        abort(401)
    else:
        return render_template('files.html', photo=get_uploaded_images())
Example #46
0
def main():
    """Serves the index page of the app and ensures that the session has a
    unique identifier."""
    if not session.get('sid'):
        session['sid'] = uuid.uuid4().hex
    return render_template('index.html')
Example #47
0
def home():
    if not session.get('logged_in'):
        return render_template('login.html')
    else:
        return render_template('home.html')
Example #48
0
def gconnect():
    '''Google Plus Oauth login'''
    if request.args.get('state') != login_session['state']:
        response = make_response(simplejson.dumps('Invalid state parameter.'),
                                 401)
        response.headers['Content-Type'] = 'application/simplejson'
        return response

    # Obtain authorization code
    code = request.data
    try:
        # Upgrade the authorization code into a credentials object
        oauth_flow = flow_from_clientsecrets('google_client_secrets.json',
                                             scope='')
        oauth_flow.redirect_uri = 'postmessage'
        credentials = oauth_flow.step2_exchange(code)
    except FlowExchangeError:
        response = make_response(
            simplejson.dumps('Failed to upgrade the authorization code.'), 401)
        response.headers['Content-Type'] = 'application/json'
        return response

    # Check that the access token is valid.
    access_token = credentials.access_token
    url = ('https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s' %
           access_token)
    h = httplib2.Http()
    result = json.loads(h.request(url, 'GET')[1])
    # If there was an error in the access token info, abort.
    if result.get('error') is not None:
        response = make_response(json.dumps(result.get('error')), 500)
        response.headers['Content-Type'] = 'application/json'
        return response

    # Verify that the access token is used for the intended user.
    gplus_id = credentials.id_token['sub']
    if result['user_id'] != gplus_id:
        response = make_response(
            json.dumps("Token's user ID doesn't match given user ID."), 401)
        response.headers['Content-Type'] = 'application/json'
        return response

    # Verify that the access token is valid for this app.
    if result['issued_to'] != CLIENT_ID:
        response = make_response(
            json.dumps("Token's client ID does not match app's."), 401)
        response.headers['Content-Type'] = 'application/json'
        return response

    stored_access_token = login_session.get('access_token')
    stored_gplus_id = login_session.get('gplus_id')
    if stored_access_token is not None and gplus_id == stored_gplus_id:
        response = make_response(
            json.dumps('Current user is already connected.'), 200)
        response.headers['Content-Type'] = 'application/json'
        return response

    # Store the access token in the session for later use.
    login_session['access_token'] = credentials.access_token
    login_session['gplus_id'] = gplus_id

    # Get user info
    userinfo_url = "https://www.googleapis.com/oauth2/v1/userinfo"
    params = {'access_token': credentials.access_token, 'alt': 'json'}
    answer = requests.get(userinfo_url, params=params)

    data = answer.json()

    login_session['username'] = data['name']
    login_session['email'] = data['email']
    login_session['provider'] = 'google'

    user_id = getUserID(login_session['email'])
    if user_id is None:
        createUser(login_session)
    login_session['user_id'] = user_id

    output = ''
    output += '<h1>Welcome, '
    output += login_session['username']
    output += '!</h1>'
    return output
Example #49
0
def gonggao():
    if request.method == 'GET':
        return render_template('back/add-notice.html',error=session.get('user_id'))
Example #50
0
def test_message(message):
    session['receive_count'] = session.get('receive_count', 0) + 1
    emit('my response', {
        'data': message['data'],
        'count': session['receive_count']
    })
Example #51
0
def howto():
    if not session.get('logged_in'):
        return render_template('outside.html')
    else:
        return render_template('howto.html')
Example #52
0
def index():
    if request.method == 'GET':
        return render_template('back/index.html', error=session.get('user_id'))
Example #53
0
def logout():
    if not session.get('logged_in'):
        return render_template('outside.html')
    else:
        session['logged_in'] = False
        return redirect('/')
Example #54
0
def csrf_protect():
    """For POSTs, require CSRF token."""
    if request.method == "POST":
        token = session.get('_csrf_token')
        if not token or token != request.form.get('_csrf_token'):
            return error_json('Invalid CSRF token. Try reloading this page.')
Example #55
0
def index():
    if not session.get('logged_in'):
        return render_template('home.html')
    else:
        return render_template('dashboard.html')
Example #56
0
def report():
    imagePath = request.form['CastReport'][46:]
    username = session.get('username')
    databaseScripts.reportImage(username, imagePath)
    return redirect('/')
Example #57
0
 def decorated(*args, **kwargs):
     if not session.get('email'):
         flash('You need to be logged in to view this page.', 'danger')
         return redirect(url_for('users.login'))
     return f(*args, **kwargs)
Example #58
0
def upload():
    if not session.get('logged_in'):
        return render_template('outside.html')
    else:
        return render_template('upload.html')
Example #59
0
 def decorated(*args, **kwargs):
     if session.get('email'):
         flash('You cannot access this page while logged in.', 'danger')
         return redirect(url_for('users.profile'))
     return f(*args, **kwargs)
Example #60
0
def get_github_oauth_token():
    return session.get('github_token', None)