def GET(self, arg): if user.username == arg: status = web.input().status email = users.get_confirm_email_by_douban_id(user.douban_id).email return view.base02(view.welcome_send_email_feedback(user, status, email), user, siteName) else: raise web.notfound()
def GET(self, arg): if user.username == arg: status = web.input().status email = users.get_confirm_email_by_douban_id(user.douban_id).email return view.base02( view.welcome_send_email_feedback(user, status, email), user, siteName) else: raise web.notfound()
def GET(self): # u = users.get_user_by_id(session.get_user_id()) # ut = u.nicknameChangeTime #得到上次修改昵称的时间 # c = datetime.datetime.now()#得到当前时间 # if (c - ut).days < 30: #时间差 # can_change_nickname = False # else: # can_change_nickname = True #得到权限 per = users.get_permission_by_douid(user.douban_id) rights = per[0].rights #得到提醒 notification_results, notification_num = notification.get_unread_notification( user.id) #得到@提醒 notification_mention_results, mention_num = notification.get_unread_metion_notifition( user.id) #链表 得到提醒的详细id\名称等 ntf_posts = [] ntf_users = [] mtf_posts = [] mtf_users = [] ntf_list = notification_results.list() mtf_list = notification_mention_results.list() for x in xrange(len(ntf_list)): ntf_posts += postModel.getPostsByPostId(ntf_list[x].pid) ntf_users += users.get_users_by_id(ntf_list[x].uid) for x in xrange(len(mtf_list)): mtf_posts += postModel.getPostsByPostId(mtf_list[x].pid) mtf_users += users.get_users_by_id(mtf_list[x].uid) ntf_list = ntf_list + mtf_list ntf_posts = ntf_posts + mtf_posts ntf_users = ntf_users + mtf_users notification_num = notification_num + mention_num #得到资料设置 profile = users.get_profile_by_user_id(user.id) #得到邮箱验证状态 confirm = users.get_confirm_email_by_douban_id(user.douban_id) return view.base(view.member_setting_profile(user, profile, confirm), user, siteName, rights, ntf_list, notification_num, ntf_posts, ntf_users)
def GET(self): # u = users.get_user_by_id(session.get_user_id()) # ut = u.nicknameChangeTime #得到上次修改昵称的时间 # c = datetime.datetime.now()#得到当前时间 # if (c - ut).days < 30: #时间差 # can_change_nickname = False # else: # can_change_nickname = True #得到权限 per = users.get_permission_by_douid(user.douban_id) rights = per[0].rights #得到提醒 notification_results, notification_num = notification.get_unread_notification(user.id) #得到@提醒 notification_mention_results, mention_num= notification.get_unread_metion_notifition(user.id) #链表 得到提醒的详细id\名称等 ntf_posts = [] ntf_users = [] mtf_posts = [] mtf_users = [] ntf_list = notification_results.list() mtf_list = notification_mention_results.list() for x in xrange(len(ntf_list)): ntf_posts += postModel.getPostsByPostId(ntf_list[x].pid) ntf_users += users.get_users_by_id(ntf_list[x].uid) for x in xrange(len(mtf_list)): mtf_posts += postModel.getPostsByPostId(mtf_list[x].pid) mtf_users += users.get_users_by_id(mtf_list[x].uid) ntf_list = ntf_list + mtf_list ntf_posts = ntf_posts + mtf_posts ntf_users = ntf_users + mtf_users notification_num = notification_num+mention_num #得到资料设置 profile = users.get_profile_by_user_id(user.id) #得到邮箱验证状态 confirm = users.get_confirm_email_by_douban_id(user.douban_id) return view.base(view.member_setting_profile(user, profile, confirm), user, siteName, rights, ntf_list, notification_num, ntf_posts, ntf_users)
class Douban: def GET(self): data = web.input() if data.has_key('code'): code = data.code provider = 'douban' d = config.APIKEY_DICT.get(provider) login_service = None if provider == config.OPENID_DOUBAN: openid_type = config.OPENID_TYPE_DICT[config.OPENID_DOUBAN] login_service = DoubanLogin(d['key'], d['secret'], d['redirect_uri']) # elif provider == config.OPENID_SINA: # openid_type = config.OPENID_TYPE_DICT[config.OPENID_SINA] # login_service = SinaLogin(d['key'], d['secret'], d['redirect_uri']) # else: # ## 处理以oauth1的方式授权的 # if provider == config.OPENID_QQ: # user = _qqweibo_callback(request) # elif provider == config.OPENID_TWITTER: # user = _twitter_callback(request) # if user: # _add_sync_task_and_push_queue(provider, user) # return redirect(url_for('index')) # else: # return "connect to %s fail" % provider try: token_dict = login_service.get_access_token(code) except OAuthLoginError, e: return view.error404( 'Connection failed' ) #note:need to change view name "error404" if not (token_dict and token_dict.get("access_token")): return (401, "no_access_token") try: user_info = login_service.get_user_info( token_dict.get("access_token"), token_dict.get("uid")) except OAuthLoginError, e: return (401, e.msg) if user_info: douban_id = user_info['id'] nickname = user_info[u'name'] avatarPath = user_info['avatar'] #判断邮箱激活表中是否有此豆瓣ID if users.douban_id_exist_in_table_confirm_email(douban_id): #如果此用户填写过email if users.get_confirm_email_by_douban_id(douban_id).email: info = users.get_confirm_email_by_douban_id(douban_id) c = info.confirmed #如果填写的邮箱已经验证 if c == 1: #更新用户邮箱 和 昵称 等资料 users.update_user_by_douid( douban_id, nickname=nickname, avatarPath=avatarPath, nicknameChangeTime=datetime.datetime.now(), lastLoginIP=web.ctx.ip, lastLoginTime=datetime.datetime.now()) # last_user_id = db.query("SELECT LAST_INSERT_ID()")[0].values()[0] last_user_id = users.get_douban_user_by_doubanid( douban_id).id try: city = user_info['loc_name'] except Exception, e: city = None try: desc = user_info['desc'] except: desc = None users.update_profile(last_user_id, city=city, bio=desc) session.douban_login(douban_id) raise web.seeother(session.get_last_visited_url()) elif c == 0: session.douban_callback(user_info) #返回 提醒用户需要激活邮件 的页面 raise web.seeother( '/welcome/' + user_info['uid'] + '/send_email_feedback?status=succesful') #如果没填写email else: session.douban_callback(user_info) #删除表中的记录 为了一会儿重新insert users.del_verification_data_by_douban_id(douban_id) #跳转到邮箱设置页面 raise web.seeother('/welcome/' + user_info['uid']) #如果是新用户 else: session.douban_callback(user_info) #跳转到邮箱设置页面 raise web.seeother('/welcome/' + user_info['uid'])
def GET(self): data = web.input() if 'code' not in data: return view.error404('Connection failed') code = data.code provider = 'douban' d = config.APIKEY_DICT.get(provider) if provider == config.OPENID_DOUBAN: openid_type = config.OPENID_TYPE_DICT[config.OPENID_DOUBAN] douban_login = DoubanLogin(d['key'], d['secret'], d['redirect_uri']) token_dict = douban_login.get_access_token(code) if not token_dict or not token_dict.get("access_token"): return(401, "no_access_token") user_info = douban_login.get_user_info(token_dict.get("access_token"), token_dict.get("uid")) if not user_info: return view.error404('Connection failed') douban_id = user_info['id'] nickname = user_info[u'name'] avatarPath = user_info['avatar'] #判断邮箱激活表中是否有此豆瓣ID if users.douban_id_exist_in_table_confirm_email(int(douban_id)): #如果此用户填写过email if users.get_confirm_email_by_douban_id(douban_id).email: info = users.get_confirm_email_by_douban_id(douban_id) #如果填写的邮箱已经验证 if info.confirmed: #更新用户邮箱 和 昵称 等资料 users.update_user_by_douid( douban_id, nickname = nickname, avatarPath = avatarPath, nicknameChangeTime = datetime.datetime.now(), lastLoginIP = web.ctx.ip, lastLoginTime = datetime.datetime.now() ) last_user_id = users.get_douban_user_by_doubanid(douban_id).id city = user_info.get('loc_name') desc = user_info.get('desc') users.update_profile(last_user_id, city = city, bio = desc ) session.douban_login(douban_id) raise web.seeother(session.get_last_visited_url()) elif c == 0: session.douban_callback(user_info) #返回 提醒用户需要激活邮件 的页面 raise web.seeother('/welcome/'+ user_info['uid'] +'/send_email_feedback?status=succesful') #如果没填写email else: session.douban_callback(user_info) #删除表中的记录 为了一会儿重新insert users.del_verification_data_by_douban_id(douban_id) #跳转到邮箱设置页面 raise web.seeother('/welcome/'+ user_info['uid']) #如果是新用户 else: session.douban_callback(user_info) #跳转到邮箱设置页面 raise web.seeother('/welcome/'+ user_info['uid'])