def render_post_forgot(user, isuser, isloggedin): if isuser: token = user_data.generate_reset_token(user) email = user_data.do_get_screen_name_email(user) query_str = urllib.urlencode( {pages.reset_password_atom.RESET_TOKEN:token}) loc = '' if lib.ip.external_location == '' else \ lib.ip.external_location url = '' if loc == '' else loc + urls.RESET_PASSWORD__URL + \ '?' + query_str reset_url = lib.html.hyperlink(url, url) if url != '' else '' message_link = 'Here\'s your password reset link: ' + reset_url lib.email_lib.send_email(email, message_link, message_link) return common.sp('Reset link sent to email address on file', isloggedin, user) else: return common.sp('No account with that name!' + html.br() + \ getforgotform(), isloggedin, user)
def render_post_reset(user, isloggedin, reset_token, password): setsession = False outsession = None redirect = False if data.user_data.is_reset_token_valid(reset_token): data.user_data.invalidate_reset_token(reset_token) reset_user = \ data.user_data.do_get_sn_for_reset_token(reset_token) auth.set_password(reset_user, password, True) (setsession, session) = \ auth.login_user(False, reset_user, True) if setsession: outsession = session redirect = True return comn.sp('Password updated!', isloggedin, reset_user), \ setsession, outsession, redirect else: return comn.sp('Invalid reset token!', isloggedin, user), \ setsession, outsession, redirect
def render_create_or_update(isloggedin, user, sess_id, useruuid, mood_type_id, sharing_level_id, note, msg_id, action_type): if not isloggedin: return common.sp('You are not logged in.', isloggedin, user), False else: if action_type == messages_atom.Query.ACTION_EDIT: message_data.do_update_mood(msg_id, mood_type_id, sharing_level_id, note) else: message_data.do_post_mood(sess_id, useruuid, mood_type_id, sharing_level_id, note) return common.sp('Thanks!', isloggedin, user), True
def render_post_create_invite(user, session, require_invite): redirect = False (isin, reason) = auth.is_loggedin(session) if require_invite: if isin: redirect = True user_data.generate_invite_token(user) return comn.sp('Created!', isin, user), redirect else: return comn.sp('You are not logged in.', isin, user), redirect else: return comn.sp('Invite features are disabled.', isin, user), redirect
def render_page(sn, u_id, sess_id, sharing_level_id, invitations_required, isloggedin): if not isloggedin: yield sp('You are not logged in.', isloggedin, sn) else: if sharing_level_id == None: sharing_level_id = -1 else: sharing_level_id = int(sharing_level_id) yield common.sp( do_render_html( do_get_data(u_id, sess_id, sharing_level_id, invitations_required)), True, sn)
def render_get_create(isloggedin, user, require_invite, invite_token): createform = getcreateform(require_invite, invite_token) if isloggedin: return comn.sp('Please log out to create an account.', isloggedin, user) if not require_invite: return comn.sp(createform, isloggedin, user) else: if user_data.is_invite_token_available(invite_token): return comn.sp(createform, isloggedin, user) else: return comn.sp( \ 'You must have a valid invitation to create an account.', isloggedin, user)
def get_page_wordle(req, res): (sess_id, isin, sn, u_id) = do_standard_actions(req, res) if isin and not is_mood_recent(u_id): return sp(_REQUIRE_MOOD_STR, isin, sn) days = req.query.get(wordle_atom.Form.OPT_ID) return wordle.render_page(u_id, isin, sn, days)
def render_page(isloggedin, fromuser, touseruuid, mood_type_id, note, msg_id): if not isloggedin: yield common.sp('You are not logged in.', isloggedin, fromuser) else: for page in common.yp( page_generator(touseruuid, mood_type_id, note, msg_id), isloggedin, fromuser): yield page
def get_profile(req, res): (sess_id, isin, sn, u_id) = do_standard_actions(req, res) if isin and not is_mood_recent(u_id): return sp(_REQUIRE_MOOD_STR, isin, sn) otheruuid = req.query.get(pages.profile_atom.U_ID) return pages.profile.render_get_profile(u_id, isin, sn, otheruuid)
def render_known_places(isin, sn, u_id, p_id=None): #print 'places:render_known_places' print "places:render_known_places:p_id", str(p_id) if not isin: yield common.sp('You are not logged in.', isin, sn) else: data = loc_data.do_get_places(u_id, p_id) for page in common.yp(_get_place_gen(u_id, p_id, data), isin, sn): yield page
def render_page( isloggedin, user, myid, msg_type_id=None, direction=None, u_id_wants=None, msg_id=None, show_yo=False): if not isloggedin: yield sp('You are not logged in.', isloggedin, user) else: for data in \ yp(page_generator( myid, msg_type_id, direction, u_id_wants, msg_id, show_yo), isloggedin, user): yield data
def render_get_location(isin, usr, usrid, view, time, length, display): if not isin: yield comn.sp('You are not logged in.', isin, usr) else: if display is not None: for seg in comn.yp( get_location_gen(usrid, view, time, length, display), isin, usr): yield (seg) else: for seg in get_location_gen(usrid, view, time, length, display): yield (seg)
def render_post_login(isuser, isloggedin, user, iscorrectpassword): setsession = False outsession = None redirect = False if isuser: (setsession, session) = \ auth.login_user(isloggedin, user, iscorrectpassword) if setsession: outsession = session redirect = True return comn.sp('Login failure. Try again:' + html.br() + getloginform(), isloggedin, user), setsession, outsession, redirect
def render_post_location_from_json(isin, usr, u_id, json, sendersess): if not isin: return comn.sp('You are not logged in.', isin, usr) else: #print json for j in json["locations"]: curr = render_post_location(isin, usr, u_id, j["time"], j["lat"], j["lon"], j["alt"], j["acc"], sendersess) #print str(j) if curr != "ok": return "error" return "ok"
def render_page(isin, screen_name, u_id, visit_date=None): clust_hist = \ location_data.do_get_visit_history_detail(u_id, visit_date, visit_date) data = {} clusters = [] last_entry_date = None temp_dict = None for row in clust_hist: entry_date = row['entry_date'] #only do this step when another date is hit if entry_date != last_entry_date: #dont append the null dict if temp_dict is not None: clusters.append(copy.deepcopy(temp_dict)) temp_dict = { 'entry_date':row['entry_date'], 'entry_day':row['entry_day'], 'items':[] } mapurl_data = { loc_atom.PLACE_ID:row['place_id'], loc_atom.DESCR:row['place'], loc_atom.LATITUDE:row['clust_avg_lat'], loc_atom.LONGITUDE:row['clust_avg_lon'], loc_atom.PROXIMITY:row['proximity'] } mapurl = html.urlencode(urls.PLACE__URL, mapurl_data) #use the current temp dict to accumulate items temp_dict['items'].append({ 'entry_day':row['entry_day'], 'entry_time':row['entry_time'], 'exit_day':row['exit_day'], 'exit_time':row['exit_time'], 'total_time':row['total_time'], 'place':html.hyperlink(mapurl, row['place']) }) last_entry_date = entry_date #make sure to save the last date clusters.append(copy.deepcopy(temp_dict)) data['clusters'] = clusters return sp(_render_html(data), isin, screen_name)
def render_post_create(password, user, session, require_invite, invite_token=None): setsession = False session = '' redirect = False (isin, reason) = auth.is_loggedin(session) isauser = auth.is_user(user) createform = getcreateform(require_invite, invite_token) if isin: return comn.sp( \ 'You must log out to create an account.' + html.br() + \ createform, isin, user), \ setsession, session, redirect if require_invite: if not user_data.is_invite_token_available(invite_token): return comn.sp( \ 'You must have a valid invitation to create an account.' + \ html.br(), isin, user), \ setsession, session, redirect if isauser: return comn.sp( \ 'Sorry, that account already exists.' + html.br() + \ createform, isin, user), \ setsession, session, redirect if user == '' or password == '': return comn.sp( \ 'You must provide a username and password.' + html.br() + \ createform, isin, user), \ setsession, session, redirect useruuid = auth.add_user(isauser, user, password) if require_invite: user_data.invalidate_invite_token(invite_token, user) setsession, session = \ auth.login_user(isin, user, True) if setsession: redirect = True return comn.sp('Success!', isin, user), \ setsession, session, redirect else: # Not really sure how this could happen, but it's here anyway! return comn.sp('Authentication failure.' + html.br() + \ createform, isin, user), \ setsession, session, redirect
def render_post_profilepic(isloggedin, user, request, useruuid): if not isloggedin: return comn.sp('You are not logged in', isloggedin, user) else: binary = psycopg2.Binary(request.files.get('datafile').file.read()) db.sendtodb( ''' update _user set profile_pic = %(picdata)s, profile_pic_mimetype = %(mimetype)s where u_id = %(uuid)s ''', { 'picdata': binary, 'mimetype': getattr(request.files.get('datafile'), 'type'), 'uuid': useruuid })
def render_unknown_place(isin, sn, u_id, descr, lat, lon, prox): #print 'places:render_unknown_places' if not isin: yield common.sp('You are not logged in.', isin, sn) else: p_id = None data = [ { loc_atom.PLACE_ID: p_id, loc_atom.LATITUDE: lat, loc_atom.LONGITUDE: lon, loc_atom.DESCR: descr, loc_atom.PROXIMITY: prox, loc_atom.AT_DIST: loc.PLACE_AT_THLD #default }, ] for page in common.yp(_get_place_gen(u_id, p_id, data), isin, sn): yield page
def render_page(user_id, isin, user, days=None, token_type_id=None): _TMPL = template_lib.get_template('pages/wordle.mustache.html') if days == None: days = -1 #all days = int(days) #set selected for item in _DAYCOUNTS: item['sel'] = True if item['days'] == days else False _DAYCOUNTS[-1]['islast'] = True cur = message_data.get_token_histogram(user_id, days, token_type_id) biggest = 0 #calc proportional font size words = [] isfirstrow = True for row in cur: if isfirstrow: biggest = row['total'] isfirstrow = False words.append({ 'word':row['value'], 'size': int(round(float(row['total'])/float(biggest) * _MAXFONTSIZE)) } ) data = {'words':words} data['divclass'] = global_atoms.MESSAGE_DIV_CLASS data['divid'] = global_atoms.MESSAGE_DIV_ID_OUTER data['daycounts'] = _DAYCOUNTS data['url'] = urls.TOKENS__URL data['opt_id'] = wordle_atom.Form.OPT_ID data['x'] = 'x.mustache' return common.sp(pystache.render(_TMPL, data), isin, user)
def render_get_profilepic(isloggedin, user, response, useruuid, dstuuid): if not isloggedin: return comn.sp('You are not logged in', isloggedin, user) else: if user_data.is_usr_info_shared(dstuuid, useruuid, 'profile.pic') or \ useruuid == dstuuid: cur = db.sendtodb( ''' select profile_pic as pic, profile_pic_mimetype as mimetype from _user as u where u.u_id = %(dstuuid)s ''', {'dstuuid': dstuuid}) cursor_list = list(cur) llen = len(cursor_list) if llen == 1: the_user = cursor_list[0] response.set_header('Content-Type', the_user['mimetype']) return the_user['pic'] else: return 'That user does not care to share with you'
def render_page(isin, u_id, user, dosearch, search_text): return sp( user_search_tmpl.render_html(get_data(u_id, dosearch, search_text)), isin, user)
def render_page(isin, u_id, user, to_u_id, to_sn): return sp(render_html(get_data(u_id, to_u_id, to_sn)), isin, user)
def render_get(): return comn.sp('You are not logged in.', False, None)
def render_page(isin, screen_name, u_id): loc_hist = location_data.do_get_visit_history_rollup(u_id) top_places = [dict(x) for x in list(location_data.do_get_top_places(u_id))] for place in top_places: url_data = \ {loc_atom.PLACE_ID:place[loc_atom.PLACE_ID], loc_atom.PROXIMITY:0} url = html.urlencode(urls.PLACE__URL, url_data) place['place_url'] = html.hyperlink(url, place[loc_atom.DESCR]) data = {} visits = [] last_entry_date = None temp_dict = None for row in loc_hist: entry_date = row['entry_date'] entry_day = row['entry_day'] #only do this step when another date is hit if entry_date != last_entry_date: #dont append the null dict if temp_dict is not None: visits.append(copy.deepcopy(temp_dict)) detailurl = \ html.urlencode( urls.VISIT_HISTORY_DETAIL__URL, {'date':str(entry_date)}) temp_dict = { 'datelink': html.hyperlink(detailurl, '[' + entry_day + ' ' + str(entry_date) + ']'), 'items': [] } mapurl_data = { loc_atom.PLACE_ID: row['place_id'], loc_atom.DESCR: row['place'], loc_atom.LATITUDE: row['visit_avg_lat'], loc_atom.LONGITUDE: row['visit_avg_lon'], loc_atom.PROXIMITY: row['proximity'] } mapurl = html.urlencode(urls.PLACE__URL, mapurl_data) #use the current temp dict to accumulate items dist = int(row['dist']) if row['dist'] is not None else row['dist'] temp_dict['items'].append({ 'visit_count': row['visit_count'], 'visit_time': row['total_visit_time'], 'dist': dist, 'place': html.hyperlink(mapurl, row['place']) }) last_entry_date = entry_date #make sure to save the last date visits.append(copy.deepcopy(temp_dict)) data['visits'] = visits data['top_places'] = top_places data['places_url'] = html.hyperlink(urls.PLACES__URL, 'Manage My Places') data['places_recalc_url'] = \ html.hyperlink(urls.VISIT_HISTORY_RECALC__URL, 'Re-analyze My Places') return sp(render_html(data), isin, screen_name)
def render_get_login(isloggedin, user): if isloggedin: return comn.sp('You are already logged in.', isloggedin, user) else: return comn.sp(getloginform(), isloggedin, user)
def get_tou(req, res): (sess_id, isin, sn, u_id) = do_standard_actions(req, res) return sp(pages.tou.render(), isin, sn)
def render_page(action, isin, u_id, user, to_u_id, msg_id=None): return sp( yo_form_tmpl.render_html(get_args(action, u_id, to_u_id, msg_id)), isin, user)
def render_get_logout(isloggedin, user, useruuid, session): if isloggedin: auth.remove_session(isloggedin, useruuid, session) return comn.sp('You are now logged out.', isloggedin, user) else: return comn.sp('You were not logged in', isloggedin, user)
def render_get_forgot(isloggedin, user): if isloggedin: return common.sp('You are already logged in.', isloggedin, user) else: return common.sp(getforgotform(), isloggedin, user)
def render_get_reset(isloggedin, user, reset_token): if isloggedin: return comn.sp('You must log out to reset a password!', isloggedin, user) else: return comn.sp(getresetform(reset_token), isloggedin, user)