Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
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"
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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
Ejemplo n.º 17
0
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
            })
Ejemplo n.º 18
0
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
Ejemplo n.º 19
0
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)
Ejemplo n.º 20
0
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'
Ejemplo n.º 21
0
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)
Ejemplo n.º 22
0
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)
Ejemplo n.º 23
0
def render_get():
    return comn.sp('You are not logged in.', False, None)
Ejemplo n.º 24
0
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)
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0
def get_tou(req, res):
    (sess_id, isin, sn, u_id) = do_standard_actions(req, res)
    return sp(pages.tou.render(), isin, sn)
Ejemplo n.º 27
0
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)
Ejemplo n.º 28
0
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)
Ejemplo n.º 29
0
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)
Ejemplo n.º 30
0
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)