diff --git a/forms.tmpl b/forms.tmpl
index 91f1b21..5e758a5 100644
--- a/forms.tmpl
+++ b/forms.tmpl
@@ -7,10 +7,11 @@
#
#proc genThreadsList(c: var TForumData, count: var int): string =
# const queryAdmin = sql"""select id, name, views, modified from thread
+# where 1 or id = ?
# order by modified desc limit ?, ?"""
# const query = sql"""select id, name, views, modified from thread
# where id in (select thread from post where author in
-# (select id from person where status <> 'MODERATED'))
+# (select id from person where status <> 'Moderated' or id = ?))
# order by modified desc limit ?, ?"""
# const threadId = 0
# const name = 1
@@ -40,7 +41,7 @@
# for row in rows(db, if c.rank >= Moderator: queryAdmin else: query,
-# $((c.pageNum-1) * ThreadsPerPage), $ThreadsPerPage):
+# c.userId, $((c.pageNum-1) * ThreadsPerPage), $ThreadsPerPage):
# inc(count)
@@ -120,9 +121,9 @@
#proc genPostsList(c: var TForumData, threadId: string, count: var int): string =
# let query = sql("""select p.id, u.name, p.header, p.content, p.creation, p.author, u.email from post p,
# person u
-# where u.id = p.author and p.thread = ? $#
+# where u.id = p.author and p.thread = ? and $#
# order by p.id limit ?, ?""" %
-# (if c.rank >= Moderator: "" else: "and p.status <> 'MODERATED'"))
+# (if c.rank >= Moderator: "(1 or u.id = ?)" else: "(u.status <> 'Moderated' or p.author = ?)"))
# const postId = 0
# const userName = 1
# const postHeader = 2
@@ -132,7 +133,7 @@
# const userEmail = 6
# result = ""
# count = 0
-# let posts = getAllRows(db, query, threadId, $((c.pageNum-1) * PostsPerPage), $PostsPerPage)
+# let posts = getAllRows(db, query, threadId, c.userId, $((c.pageNum-1) * PostsPerPage), $PostsPerPage)
# if posts.len < 1: return ""
# end if
@@ -278,6 +279,8 @@
# end for
+
+
#end proc
#
diff --git a/forum.nim b/forum.nim
index 951d710..518e094 100644
--- a/forum.nim
+++ b/forum.nim
@@ -392,9 +392,7 @@ proc getBanErrorMsg(banValue: string; rank: Rank): string =
of Inactive: return "Your account has been deactivated."
of EmailUnconfirmed:
return "You need to confirm your email first."
- of Moderated:
- return "Your posts await moderation."
- of User, Moderator, Admin:
+ of Moderated, User, Moderator, Admin:
return ""
proc checkLoggedIn(c: var TForumData) =
@@ -1177,7 +1175,7 @@ routes:
resp genMain(c, "Failed to delete all user's posts and threads.",
"Error - NimForum")
- post "/dosetrank/?":
+ post "/dosetrank/?@nick?/?":
createTFD()
cond(@"nick" != "")
@@ -1187,22 +1185,15 @@ routes:
var ui: TUserInfo
if not gatherUserInfo(c, @"nick", ui):
resp genMain(c, "User " & @"nick" & " does not exist.", "Error - Nim Forum")
- #elif ui.
- # XXX check that moderator can make themselves admins
- echo(@"rank")
- echo(@"reason")
- when false:
- let result =
- if @"del" == "true":
- # Remove the ban.
- setBan(c, @"nick", "")
- else:
- setBan(c, @"nick", @"reason")
- if result:
- redirect(c.req.makeUri("/profile/" & @"nick"))
- else:
- resp genMain(c, "Failed to change the ban status of user.",
- "Error - Nim Forum")
+ let newRank = parseEnum[Rank](@"rank")
+ if newRank > c.rank:
+ resp genMain(c, "You cannot change this user's rank to this value.", "Error - Nim Forum")
+
+ if setStatus(c, @"nick", newRank, @"reason"):
+ redirect(c.req.makeUri("/profile/" & @"nick"))
+ else:
+ resp genMain(c, "Failed to change the ban status of user.",
+ "Error - Nim Forum")
get "/setpassword/?":
createTFD()