def create_local_user(fb_info, local_username, request = None): u = users.create_user(origination='facebook', remote_object=fb_info, username=local_username) if request: profile_picture = request.session['u_fbgraph'].get_connections(fb_info['id'], "picture") up = users.add_user_picture("{0}-fbprofile.jpg".format(fb_info['id']), fb_info['id'], request.registry.settings['user.picture_upload_directory'], profile_picture) u.picture = up dbsession.add(u) return u
def create_local_user(fb_info, local_username, request=None): u = users.create_user(origination='facebook', remote_object=fb_info, username=local_username) if request: profile_picture = request.session['u_fbgraph'].get_connections( fb_info['id'], "picture") up = users.add_user_picture( "{0}-fbprofile.jpg".format(fb_info['id']), fb_info['id'], request.registry.settings['user.picture_upload_directory'], profile_picture) u.picture = up dbsession.add(u) return u
def complete_auth(request, auth_toks): # create a twython object with our request-specific tokens # these tokens are used only to learn if the user accepted our request # for permissions. tmp_twit = Twython( twitter_token=request.registry.settings['twitter.app_key'], twitter_secret=request.registry.settings['twitter.app_secret'], oauth_token=auth_toks['oauth_token'], oauth_token_secret=auth_toks['oauth_token_secret']) final_toks = tmp_twit.get_authorized_tokens() # create a session-permanent twython object containing the permanent tokens for this user. # this object must be used to read any data from the user's account. u_twit = Twython( twitter_token=request.registry.settings['twitter.app_key'], twitter_secret=request.registry.settings['twitter.app_secret'], oauth_token=final_toks['oauth_token'], oauth_token_secret=final_toks['oauth_token_secret']) request.session['u_twit'] = u_twit username = "******".format(final_toks['oauth_token']) screen_name = final_toks['screen_name'] # check if user already exists; if not, please create try: u = users.get_user_by_name(username) #@TODO: add something to ensure we are in sync with the twitter profile picture # unless specifically overridden by the user except sqlalchemy.orm.exc.NoResultFound: u = users.create_user(origination='twitter', username=username, remote_object=final_toks) import urllib2 image_data = urllib2.urlopen( "http://api.twitter.com/1/users/profile_image/{0}.json".format( screen_name)) orig_filename = "{0}-twitter-pic.png".format(screen_name) up_dir = request.registry.settings['user.picture_upload_directory'] u.picture = users.add_user_picture(orig_filename, str(u.id)[:7], up_dir, image_data) dbsession.add(u) return {'final_toks': final_toks, 'u': u}
def user_info(request): import hashlib import os from raggregate.queries import user_preference as up r = request ses = request.session p = ses['safe_post'] edit_mode = False user_id = None if 'user_id' in r.params: user_id = r.params['user_id'] if 'logged_in' in ses and 'user_id' not in r.params: user_id = ses['users.id'] if 'logged_in' in ses and (user_id == str(ses['users.id']) or users.get_user_by_id( ses['users.id']).is_user_admin()): edit_mode = True u = users.get_user_by_id(user_id) params = up.get_user_prefs(user_id) if p and edit_mode: dbsession = DBSession() u.about_me = p['about_me'] if p['email'] == "": u.email = None else: u.email = p['email'] if r.POST['picture'] != '': orig_filename = r.POST['picture'].filename up_dir = r.registry.settings['user.picture_upload_directory'] u.picture = users.add_user_picture(orig_filename, str(u.id)[:7], up_dir, r.POST['picture'].file) dbsession.add(u) response = {'edit_mode': edit_mode, 'u': u} response.update(params) return response
def complete_auth(request, auth_toks): # create a twython object with our request-specific tokens # these tokens are used only to learn if the user accepted our request # for permissions. tmp_twit = Twython(twitter_token = request.registry.settings['twitter.app_key'], twitter_secret = request.registry.settings['twitter.app_secret'], oauth_token = auth_toks['oauth_token'], oauth_token_secret = auth_toks['oauth_token_secret']) final_toks = tmp_twit.get_authorized_tokens() # create a session-permanent twython object containing the permanent tokens for this user. # this object must be used to read any data from the user's account. u_twit = Twython(twitter_token = request.registry.settings['twitter.app_key'], twitter_secret = request.registry.settings['twitter.app_secret'], oauth_token = final_toks['oauth_token'], oauth_token_secret = final_toks['oauth_token_secret']) request.session['u_twit'] = u_twit username = "******".format(final_toks['oauth_token']) screen_name = final_toks['screen_name'] # check if user already exists; if not, please create try: u = users.get_user_by_name(username) #@TODO: add something to ensure we are in sync with the twitter profile picture # unless specifically overridden by the user except sqlalchemy.orm.exc.NoResultFound: u = users.create_user(origination='twitter', username=username, remote_object=final_toks) import urllib2 image_data = urllib2.urlopen("http://api.twitter.com/1/users/profile_image/{0}.json".format(screen_name)) orig_filename = "{0}-twitter-pic.png".format(screen_name) up_dir = request.registry.settings['user.picture_upload_directory'] u.picture = users.add_user_picture(orig_filename, str(u.id)[:7], up_dir, image_data) dbsession.add(u) return {'final_toks': final_toks, 'u': u}