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})
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
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)
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)
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()
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'))
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)
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)
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'})
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)
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")
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)
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)
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)
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()
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'))
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)
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)
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'))
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)
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) )
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')
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
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
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")
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)
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()
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)
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) )
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)
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'])
def home(): if not session.get('logged_in'): return render_template('login.html') else: return 'Hello Boss! <a href="/logout">Logout</a>'
def is_logged_in(): user = session.get('user') if user: return user else: return False
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
def decorated_function(*args, **kwargs): if session.get("user_id") is None: return redirect("/login") return f(*args, **kwargs)
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)
def cerrar(): session.get('usuario', None) session.pop('usuario', None) return redirect('/home')
def check_session(): username = session.get("admin_username") if username: return jsonify(username=username, code=200), 200 else: return jsonify(msg="出错了,没登录", code=4000), 400
def files(): if not session.get('logged_in'): abort(401) files = get_uploaded_images() return render_template('files.html', img=files)
def check_auth(): if not session.get('pass', None) == app.config.get("RQ_PASS"): return redirect(url_for('rq_auth'))
def index(): auth = session.get('auth') print(auth) return render_template('index.html')
def my_context_processor(): # 传递参数的函数 user = session.get('username') if user: return {'login_user': user} return {}
def files(): if not session.get('logged_in'): abort(401) else: return render_template('files.html', photo=get_uploaded_images())
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')
def home(): if not session.get('logged_in'): return render_template('login.html') else: return render_template('home.html')
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
def gonggao(): if request.method == 'GET': return render_template('back/add-notice.html',error=session.get('user_id'))
def test_message(message): session['receive_count'] = session.get('receive_count', 0) + 1 emit('my response', { 'data': message['data'], 'count': session['receive_count'] })
def howto(): if not session.get('logged_in'): return render_template('outside.html') else: return render_template('howto.html')
def index(): if request.method == 'GET': return render_template('back/index.html', error=session.get('user_id'))
def logout(): if not session.get('logged_in'): return render_template('outside.html') else: session['logged_in'] = False return redirect('/')
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.')
def index(): if not session.get('logged_in'): return render_template('home.html') else: return render_template('dashboard.html')
def report(): imagePath = request.form['CastReport'][46:] username = session.get('username') databaseScripts.reportImage(username, imagePath) return redirect('/')
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)
def upload(): if not session.get('logged_in'): return render_template('outside.html') else: return render_template('upload.html')
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)
def get_github_oauth_token(): return session.get('github_token', None)