aboutsummaryrefslogtreecommitdiff
path: root/app/blueprints/users/profile.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/blueprints/users/profile.py')
-rw-r--r--app/blueprints/users/profile.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/app/blueprints/users/profile.py b/app/blueprints/users/profile.py
index 47543dc..d33bc50 100644
--- a/app/blueprints/users/profile.py
+++ b/app/blueprints/users/profile.py
@@ -24,7 +24,7 @@ from app.models import *
from flask_wtf import FlaskForm
from wtforms import *
from wtforms.validators import *
-from app.utils import randomString, loginUser, rank_required, nonEmptyOrNone
+from app.utils import randomString, loginUser, rank_required, nonEmptyOrNone, addAuditLog
from app.tasks.forumtasks import checkForumAccount
from app.tasks.emails import sendVerifyEmail, sendEmailRaw
from app.tasks.phpbbparser import getProfile
@@ -62,6 +62,10 @@ def profile(username):
# Process valid POST
if request.method=="POST" and form.validate():
+ severity = AuditSeverity.NORMAL if current_user == user else AuditSeverity.MODERATION
+ addAuditLog(severity, current_user, "Edited {}'s profile".format(user.display_name),
+ url_for("users.profile", username=username))
+
# Copy form fields to user_profile fields
if user.checkPerm(current_user, Permission.CHANGE_USERNAMES):
user.display_name = form.display_name.data
@@ -75,7 +79,10 @@ def profile(username):
if user.checkPerm(current_user, Permission.CHANGE_RANK):
newRank = form["rank"].data
if current_user.rank.atLeast(newRank):
- user.rank = form["rank"].data
+ if newRank != user.rank:
+ user.rank = form["rank"].data
+ msg = "Set rank of {} to {}".format(user.display_name, user.rank.getTitle())
+ addAuditLog(AuditSeverity.MODERATION, current_user, msg, url_for("users.profile", username=username))
else:
flash("Can't promote a user to a rank higher than yourself!", "danger")
@@ -84,6 +91,9 @@ def profile(username):
if newEmail != user.email and newEmail.strip() != "":
token = randomString(32)
+ msg = "Changed email of {}".format(user.display_name)
+ addAuditLog(severity, current_user, msg, url_for("users.profile", username=username))
+
ver = UserEmailVerification()
ver.user = user
ver.token = token
@@ -158,6 +168,9 @@ def send_email(username):
form = SendEmailForm(request.form)
if form.validate_on_submit():
+ addAuditLog(AuditSeverity.MODERATION, current_user,
+ "Sent email to {}".format(user.display_name), url_for("users.profile", username=username))
+
text = form.text.data
html = render_markdown(text)
task = sendEmailRaw.delay([user.email], form.subject.data, text, html)