我们从Python开源项目中,提取了以下45个代码示例,用于说明如何使用flask_login.current_user.save()。
def settings(): form = GeneralSettingsForm() form.theme.choices = [(theme.identifier, theme.name) for theme in get_themes_list()] form.language.choices = [(locale.language, locale.display_name) for locale in babel.list_translations()] if form.validate_on_submit(): current_user.theme = form.theme.data current_user.language = form.language.data current_user.save() flash(_("Settings updated."), "success") else: form.theme.data = current_user.theme form.language.data = current_user.language return render_template("user/general_settings.html", form=form)
def request_orcid_credentials(): """Redirect to the ORCID for the technical conact of the organisation. Additionally the time stamp gets saved when the handler gets invoked. """ client_secret_url = append_qs( iri_to_uri(MEMBER_API_FORM_BASE_URL), new_existing=('Existing_Update' if current_user.organisation.confirmed else 'New_Credentials'), note=NOTE_ORCID + " " + current_user.organisation.name, contact_email=current_user.email, contact_name=current_user.name, org_name=current_user.organisation.name, cred_type=CRED_TYPE_PREMIUM, app_name=APP_NAME + " for " + current_user.organisation.name, app_description=APP_DESCRIPTION + current_user.organisation.name + "and its researchers", app_url=APP_URL, redirect_uri_1=url_for("orcid_callback", _external=True)) current_user.organisation.api_credentials_requested_at = datetime.now() current_user.organisation.save() return redirect(client_secret_url)
def suspend(userid: str) -> Response: user = User.query.filter_by(id=userid).first() if user is None: flash(i8n.USER_DOES_NOT_EXIST, category='error') return redirect(url_for('admin')) if user.is_admin: flash(i8n.ADMIN_CANNOT_BE_SUSPENDED, category='error') return redirect(url_for('admin')) user.active = False user.save() flash(i8n.USER_SUSPENDED, category='success') return redirect(url_for('admin'))
def reset_password(userid: str) -> Response: user = User.query.filter_by(id=userid).first() if user is None: flash(i8n.USER_DOES_NOT_EXIST, category='error') return redirect(url_for('admin')) new_password = genword() user.password = encrypt_password(new_password) user.save() flash(i8n.PASSWORD_CHANGED_BY_ADMIN + new_password, category='success') return redirect(url_for('admin')) # noinspection PyUnusedLocal
def new_topic(forum_id, slug=None): forum_instance = Forum.query.filter_by(id=forum_id).first_or_404() if not Permission(CanPostTopic): flash(_("You do not have the permissions to create a new topic."), "danger") return redirect(forum_instance.url) form = NewTopicForm() if request.method == "POST": if "preview" in request.form and form.validate(): return render_template( "forum/new_topic.html", forum=forum_instance, form=form, preview=form.content.data ) if "submit" in request.form and form.validate(): topic = form.save(current_user, forum_instance) # redirect to the new topic return redirect(url_for('forum.view_topic', topic_id=topic.id)) return render_template( "forum/new_topic.html", forum=forum_instance, form=form )
def new_post(topic_id, slug=None): topic = Topic.query.filter_by(id=topic_id).first_or_404() if not Permission(CanPostReply): flash(_("You do not have the permissions to post in this topic."), "danger") return redirect(topic.forum.url) form = ReplyForm() if form.validate_on_submit(): if "preview" in request.form: return render_template( "forum/new_post.html", topic=topic, form=form, preview=form.content.data ) else: post = form.save(current_user, topic) return view_post(post.id) return render_template("forum/new_post.html", topic=topic, form=form)
def reply_post(topic_id, post_id): topic = Topic.query.filter_by(id=topic_id).first_or_404() post = Post.query.filter_by(id=post_id).first_or_404() if not Permission(CanPostReply): flash(_("You do not have the permissions to post in this topic."), "danger") return redirect(topic.forum.url) form = ReplyForm() if form.validate_on_submit(): if "preview" in request.form: return render_template( "forum/new_post.html", topic=topic, form=form, preview=form.content.data ) else: form.save(current_user, topic) return redirect(post.topic.url) else: form.content.data = format_quote(post.username, post.content) return render_template("forum/new_post.html", topic=post.topic, form=form)
def edit_post(post_id): post = Post.query.filter_by(id=post_id).first_or_404() if not Permission(CanEditPost): flash(_("You do not have the permissions to edit this post."), "danger") return redirect(post.topic.url) form = ReplyForm() if form.validate_on_submit(): if "preview" in request.form: return render_template( "forum/new_post.html", topic=post.topic, form=form, preview=form.content.data ) else: form.populate_obj(post) post.date_modified = time_utcnow() post.modified_by = current_user.username post.save() return redirect(post.topic.url) else: form.content.data = post.content return render_template("forum/new_post.html", topic=post.topic, form=form)
def register(): form = RegisterForm() if request.method == 'POST': if form.validate_on_submit(): email = form['email'].data password = form['password'].data if not email.split('@')[-1] in ['ustc.edu.cn', 'mail.ustc.edu.cn', 'ustclug.org']: flash('Email must end with @[mail.]ustc.edu.cn', 'error') elif User.get_user_by_email(email): flash('Email already exists', 'error') else: token = ts.dumps(email, salt=app.config['SECRET_KEY'] + 'email-confirm-key') url = url_for('confirm', token=token, _external=True) user = User(email, password) user.save() send_mail('Confirm your email', 'Follow this link to confirm your email:<br><a href="' + url + '">' + url + '</a>' , email) return redirect(url_for('register_ok')) return render_template('register.html', form=form)
def change_password(): form = ChangePasswordForm() if form.validate_on_submit(): current_user.password = form.new_password.data current_user.save() flash(_("Password updated."), "success") return render_template("user/change_password.html", form=form)
def change_email(): form = ChangeEmailForm(current_user) if form.validate_on_submit(): current_user.email = form.new_email.data current_user.save() flash(_("E-Mail Address updated."), "success") return render_template("user/change_email.html", form=form)
def change_user_details(): form = ChangeUserDetailsForm(obj=current_user) if form.validate_on_submit(): form.populate_obj(current_user) current_user.save() flash(_("Details updated."), "success") return render_template("user/change_user_details.html", form=form)
def select_user_org(user_org_id): """Change the current organisation of the current user.""" user_org_id = int(user_org_id) _next = get_next_url() or request.referrer or url_for("login") try: uo = UserOrg.get(id=user_org_id) if (uo.user.orcid == current_user.orcid or uo.user.email == current_user.email or uo.user.eppn == current_user.eppn): current_user.organisation_id = uo.org_id current_user.save() else: flash("You cannot switch your user to this organisation", "danger") except UserOrg.DoesNotExist: flash("Your are not related to this organisation.", "danger") return redirect(_next)
def register_complete() -> Response: send_welcome_email = SendWelcomeEmail( time=datetime.utcnow(), to=current_user.email, email_store=app.ioc.email_store) send_welcome_email() current_user.language = Session.get_current_language() current_user.save() flash(i8n.ACCOUNT_CREATED, category='success') return redirect(url_for('email_inbox'))
def language(locale: str) -> Response: if current_user.is_authenticated: current_user.language = locale current_user.save() Session.store_current_language(locale) return redirect(Session.get_last_visited_url() or url_for('home'))
def unsuspend(userid: str) -> Response: user = User.query.filter_by(id=userid).first() if user is None: flash(i8n.USER_DOES_NOT_EXIST, category='error') return redirect(url_for('admin')) user.active = True user.save() flash(i8n.USER_UNSUSPENDED, category='success') return redirect(url_for('admin'))
def view_topic(topic_id, slug=None): page = request.args.get('page', 1, type=int) # Fetch some information about the topic topic = Topic.get_topic(topic_id=topic_id, user=current_user) # Count the topic views topic.views += 1 topic.save() # fetch the posts in the topic posts = Post.query.\ join(User, Post.user_id == User.id).\ filter(Post.topic_id == topic.id).\ add_entity(User).\ order_by(Post.id.asc()).\ paginate(page, flaskbb_config['POSTS_PER_PAGE'], False) # Update the topicsread status if the user hasn't read it forumsread = None if current_user.is_authenticated: forumsread = ForumsRead.query.\ filter_by(user_id=current_user.id, forum_id=topic.forum.id).first() topic.update_read(current_user, topic.forum, forumsread) form = None if Permission(CanPostReply): form = QuickreplyForm() if form.validate_on_submit(): post = form.save(current_user, topic) return view_post(post.id) return render_template("forum/topic.html", topic=topic, posts=posts, last_seen=time_diff(), form=form)
def lock_topic(topic_id=None, slug=None): topic = Topic.query.filter_by(id=topic_id).first_or_404() if not Permission(IsAtleastModeratorInForum(forum=topic.forum)): flash(_("You do not have the permissions to lock this topic."), "danger") return redirect(topic.url) topic.locked = True topic.save() return redirect(topic.url)
def unlock_topic(topic_id=None, slug=None): topic = Topic.query.filter_by(id=topic_id).first_or_404() if not Permission(IsAtleastModeratorInForum(forum=topic.forum)): flash(_("You do not have the permissions to unlock this topic."), "danger") return redirect(topic.url) topic.locked = False topic.save() return redirect(topic.url)
def highlight_topic(topic_id=None, slug=None): topic = Topic.query.filter_by(id=topic_id).first_or_404() if not Permission(IsAtleastModeratorInForum(forum=topic.forum)): flash(_("You do not have the permissions to highlight this topic."), "danger") return redirect(topic.url) topic.important = True topic.save() return redirect(topic.url)
def report_post(post_id): post = Post.query.filter_by(id=post_id).first_or_404() form = ReportForm() if form.validate_on_submit(): form.save(current_user, post) flash(_("Thanks for reporting."), "success") return render_template("forum/report_post.html", form=form)
def track_topic(topic_id, slug=None): topic = Topic.query.filter_by(id=topic_id).first_or_404() current_user.track_topic(topic) current_user.save() return redirect(topic.url)
def change_email(): form = ChangeEmailForm(current_user) if form.validate_on_submit(): current_user.email = form.new_email.data current_user.save() flash(_("Email address updated."), "success") return render_template("user/change_email.html", form=form)
def change_user_details(): form = ChangeUserDetailsForm(obj=current_user) if form.validate_on_submit(): form.populate_obj(current_user) current_user.save() flash(_("User details updated."), "success") return render_template("user/change_user_details.html", form=form)
def trivialize_topic(topic_id=None, slug=None): topic = Topic.query.filter_by(id=topic_id).first_or_404() # Unlock is basically the same as lock if not Permission(IsAtleastModeratorInForum(forum=topic.forum)): flash(_("You do not have the permissions to trivialize this topic."), "danger") return redirect(topic.url) topic.important = False topic.save() return redirect(topic.url)
def untrack_topic(topic_id, slug=None): topic = Topic.query.filter_by(id=topic_id).first_or_404() current_user.untrack_topic(topic) current_user.save() return redirect(topic.url)
def apply(): if not current_user.status in ['none', 'reject', 'applying', 'pass']: abort(403) form = ApplyForm(request.form, current_user) if request.method == 'POST': if form.validate_on_submit(): name = form['name'].data studentno = form['studentno'].data phone = form['phone'].data reason = form['reason'].data agree = form['agree'].data if not agree: flash('You must agree to the constitution', 'error') else: if current_user.status == 'pass': current_user.renewing = True else: current_user.status = 'applying' current_user.name = name current_user.studentno = studentno.upper() current_user.phone = phone current_user.reason = reason current_user.applytime = datetime.datetime.now() current_user.save() html = 'Name: ' + name + \ '<br>Email: ' + current_user.email + \ '<br>Student/Staff No: ' + studentno + \ '<br>Phone: ' + phone + \ '<br>Reason: ' + reason if current_user.status == 'pass': title = 'VPN Renewal: ' else: title = 'New VPN Application: ' send_mail(title + name, html, app.config['ADMIN_MAIL']) return redirect(url_for('index')) return render_template('apply.html', form=form, renew=current_user.status == 'pass')
def cancel(): if current_user.status == 'applying': current_user.status = 'none' current_user.save() return redirect(url_for('index'))
def setadmin(id): if current_user.admin: user = User.get_user_by_id(id) user.admin = 1 user.save() return redirect(url_for('manage'))
def unsetadmin(id): if current_user.admin: if current_user.id != id: user = User.get_user_by_id(id) user.admin = 0 user.save() else: flash('You cannot unset yourself', 'error') return redirect(url_for('manage'))
def changepassword(): form = ChangePasswordForm() if request.method == 'POST': if form.validate_on_submit(): oldpassword = form['oldpassword'].data password = form['password'].data if not current_user.check_password(oldpassword): flash('Current password incorrect', 'error') else: current_user.set_password(password) current_user.save() flash('Password successfully changed') return redirect(url_for('index')) return render_template('changepassword.html', form=form)
def resetpassword(): token = request.args.get('token') if not token: flash('No token provided', 'error') return render_template('confirm_error.html') try: email = ts.loads(token, salt=app.config['SECRET_KEY'] + "recover-password-key", max_age=86400) except: flash('Invalid token or token out of date', 'error') return render_template('confirm_error.html') user = User.get_user_by_email(email) if not user: flash('Invalid user', 'error') return render_template('confirm_error.html') elif not user.active: user.set_active() flash('User actived') return redirect(url_for('login')) form = ResetPasswordForm(token=token) if request.method == 'POST': if form.validate_on_submit(): password = form['password'].data user.set_password(password) user.save() flash('Reset password succeeded') return redirect(url_for('login')) return render_template('resetpassword.html', form=form)