def change_password(self, username): errorP = "" if request.method == "GET": profile = user_mongo_utils.get_user_by_username(username) return render_template('mod_profile/account.html', profile=profile, errorP=errorP) elif request.method == 'POST': email = current_user.email old_password = request.form['old_password'] new_password = request.form['new_password'] confirm_new_password = request.form['confirm_new_password'] user_input = user_mongo_utils.get_user(email=email) password_check = bcrypt.check_password_hash( user_input.password, old_password) if password_check: if new_password == confirm_new_password: user_mongo_utils.change_pass(username, new_password) profile = user_mongo_utils.get_user_by_username(username) return render_template( 'mod_profile/account.html', profile=profile, success="Password was changed successfully") else: profile = user_mongo_utils.get_user_by_username(username) return render_template('mod_profile/account.html', profile=profile, errorP="Passwords didn't match") else: profile = user_mongo_utils.get_user_by_username(username) return render_template( 'mod_profile/account.html', profile=profile, errorP="This isn't your actual password")
def paginated_author_articles(self, username, skip_posts_number, posts_per_page): # TODO: Restrict access to only authenticated users # get the profile object for the given username profile = user_mongo_utils.get_user_by_username(username) articles = dumps( content_mongo_utils.get_authors_paginated_articles( profile.id, skip_posts_number, posts_per_page)) return Response(response=articles)
def bookmarks(self, username): message = "Showing your bookmarked articles" profile = user_mongo_utils.get_user_by_username(username) bookmarks = bookmarks_mongo_utils.get_bookmark_list(username) return render_template('mod_profile/bookmarks.html', article_title=bookmarked_article_title, profile=profile, bookmarks=bookmarks, message=message)
def feed(self, username): ''' Loads the feed page. ''' profile = user_mongo_utils.get_user_by_username(username) feed = dumps( content_mongo_utils.get_authors_paginated_articles( profile.username, 0, 8)) return render_template('mod_profile/feed.html', profile=profile, feed=feed)
def comments(self, username): message = "Showing your comments on articles" profile = user_mongo_utils.get_user_by_username(username) comments = comment_mongo_util.get_comments_list(username) return render_template('mod_profile/comments.html', article_title=commented_article_title, profile=profile, comments=comments, message=message)
def category_feed(self, username, category): ''' Loads the feed page with specific category article. ''' # get the profile object for the given username profile = user_mongo_utils.get_user_by_username(username) feed = dumps( content_mongo_utils.get_articles_one_category_only( profile.username, category)) return render_template('mod_profile/feed.html', profile=profile, feed=feed)
def archive(self, username): ''' Loads the article archive page. ''' # get the profile object for the given username profile = user_mongo_utils.get_user_by_username(username) category = content_mongo_utils.get_categories() articles_by_category = content_mongo_utils.count_articles_by_category( profile.username, category) return render_template('mod_profile/archive.html', profile=profile, articles_by_category=articles_by_category)
def about(self, username): ''' Loads the about page. ''' # get the profile object for the given username profile = user_mongo_utils.get_user_by_username(username) articles_no = content_mongo_utils.count_articles(username) if profile.people_followers != None: followers_no = len(profile.people_followers) return render_template('mod_profile/about.html', profile=profile, articles_no=articles_no, followers_no=followers_no)
def following(self, username): # get the profile object for the given username profile = user_mongo_utils.get_user_by_username(username) organization = org_mongo_utils.get_organizations() return render_template( 'mod_profile/following.html', user_avatar=user_avatar, profile=profile, get_user_name_last_name_by_username= get_user_name_last_name_by_username, organization=organization, get_org_name_by_username=get_org_name_by_username, get_avatar_url=get_avatar_url)
def profile_settings(self, username): # Get the profile info error = "" if request.method == "GET": profile = user_mongo_utils.get_user_by_username(username) return render_template('mod_profile/account.html', profile=profile, error=error) elif request.method == "POST": user_json = {} if request.form['email'] is not None: user_json['email'] = request.form['email'] user_json['name'] = request.form['name'] user_json['location'] = request.form['location'] user_json['telephone'] = request.form['telephone'] user_json['mobile'] = request.form['mobile'] user_json['about_me'] = request.form['about_me'] user_mongo_utils.update({'username': current_user.username}, user_json) profile = user_mongo_utils.get_user_by_username(username) return render_template('mod_profile/account.html', profile=profile, error="Successfully updated your profile.")
def search(self, username): ''' Loads the article archive page. ''' # get the profile object for the given username profile = user_mongo_utils.get_user_by_username(username) keyword = request.args.get('q') if keyword: feed = content_mongo_utils.find_article(keyword) else: # TODO: Show latest 10 from each category feed = content_mongo_utils.get_authors_articles(profile.username) return render_template('mod_profile/search.html', feed=feed, profile=profile)
def my_articles(article_action): message = None if article_action == "save": message = "Your article has been saved, but not published." elif article_action == "publish": message = "Your article has been published." elif article_action == "show": message = "Showing your latest articles" elif article_action == 'delete': message = "Article/s deleted." # TODO: Restrict access to only authenticated users articles = content_mongo_utils.get_authors_articles(current_user.username) profile = user_mongo_utils.get_user_by_username(current_user.username) return render_template('mod_article/article_management.html', profile=profile, articles=articles, article_action=article_action, message=message)
def add_comment_reply(): ''' Adds comment reply. :return JSON: ''' data = request.form comment_id = comment_mongo_util.add_comment_reply( data['reply_of'], data['slug'], data['text'], data['username'], data['firstname'], data['lastname']) user = user_mongo_utils.get_user_by_username(data['username']) response = { "id": str(comment_id), "avatar_url": url_for('static', filename=user.avatar_url) } return Response(json.dumps(response), status=200, mimetype='application/json')
def user_avatar(username): avatar_url = user_mongo_utils.get_user_by_username(username).avatar_url return avatar_url
def get_avatar_url(self, username): user = user_mongo_utils.get_user_by_username(username) return user['avatar_url']
def get_user_name_last_name_by_username(username): return user_mongo_utils.get_user_by_username(username)