def profile(account_id=None): """ Render the user page. """ if not is_authenticated(current_user): flash_error("This is only for registered users") abort(403) if account_id: account = Account.by_id(account_id) else: account = current_user if not account: flash_error("Cannot find the user account") abort(404) dataview_list = Dataview.query.filter_by(account_id=account.id).all() topics_tracked = current_user.tracked_topics.count() # page = request.args.get("forumpage", 1, type=int) # topics = current_user.tracked_topics.\ # outerjoin(TopicsRead, # db.and_(TopicsRead.topic_id == Topic.id, # TopicsRead.user_id == current_user.id)).\ # add_entity(TopicsRead).\ # order_by(Topic.last_updated.desc()).\ # paginate(page, flaskbb_config['TOPICS_PER_PAGE'], True) # return render_template("forum/forum/topictracker.html", topics=topics) return render_template('user/user.jade', account=account, dataviews=dataview_list, topics_tracked=topics_tracked)
def email_message(): """ Redirect user to this to tell them to go check their email """ user_id = request.args.get('id') useraccount = Account.by_id(user_id) if not useraccount: message = "There is no user with this account" return render_template('account/email_message.jade', message=message) if useraccount.admin: message = "This operation is not possible for this user type" return render_template('account/email_message.jade', message=message) emailsplit = useraccount.email.split("@") email = emailsplit[0][:3] + "*****@" + emailsplit[1] flash_success("Your account is being set up. Please see note below.") message = """Thank you for your request. An email has been sent to %s with further instructions. If you have not recieved an email in next few minutes please try <a style='color:#337ab7' href='%s'>resetting your password</a>.""" % (email, url_for('account.trigger_reset')) # message_dict = sendhash(useraccount, gettext=True) # message = str(message_dict) + "<br/><br/><a href='" + message_dict['verifylink'] + "'><h3>Click to Verify</h3></a>" return render_template('account/email_message.jade', message=message)
def email_message(): user_id = request.args.get('id') useraccount = Account.by_id(user_id) if not useraccount: message = "There is no user with this account" return render_template('account/email_message.jade', message=message) if useraccount.admin: message = "This operation is not possible for this user type" return render_template('account/email_message.jade', message=message) message_dict = sendhash(useraccount, gettext=True) message = str(message_dict) + "<br/><br/><a href='" + message_dict['verifylink'] + "'><h3>Click to Verify</h3></a>" return render_template('account/email_message.jade', message=message)
def edit_profile(account_id): account = Account.by_id(account_id) if not account: flash_error("This is not a valid account") abort(404) if account.id != current_user.id and not current_user.admin: flash_error("You cannot access this content") abort(403) values = { "fullname": account.fullname, "website": account.website, "csrf_token": generate_csrf_token() } return render_template('account/edit_profile.jade', form_fill=values, account_id=account_id)
def email_message(): user_id = request.args.get('id') useraccount = Account.by_id(user_id) if not useraccount: message = "There is no user with this account" return render_template('account/email_message.jade', message=message) if useraccount.admin: message = "This operation is not possible for this user type" return render_template('account/email_message.jade', message=message) message_dict = sendhash(useraccount, gettext=True) message = str(message_dict) + "<br/><br/><a href='" + message_dict[ 'verifylink'] + "'><h3>Click to Verify</h3></a>" return render_template('account/email_message.jade', message=message)
def edit_profile_post(account_id): """ Perform registration of a new user """ errors, values = {}, dict(request.form.items()) account = Account.by_id(account_id) if not account: flash_error("This is not a valid account") abort(404) if account.id != current_user.id and not current_user.admin: flash_error("You cannot access this content") abort(403) try: # Grab the actual data and validate it data = AccountSettings().deserialize(values) if (data['website'].find('http://') == -1) and data['website'] != "": data['website'] = 'http://%s' % data['website'] account.fullname = data['fullname'] account.website = data['website'] db.session.commit() # TO DO redirect to email sent page return redirect(url_for('account.profile', account_id=account.id)) except colander.Invalid as i: errors = i.asdict() print errors if request.form.get("csrf_token", None): values['csrf_token'] = request.form.get('csrf_token') else: values["csrf_token"] = generate_csrf_token() return render_template('account/edit_profile.jade', form_fill=values, form_errors=errors, account_id=account_id)