allow users to lock and sticky threads
This commit is contained in:
@ -135,4 +135,38 @@ app:post("thread", "/:slug", function(self)
|
||||
return {redirect_to = self:url_for("thread", {slug = thread.slug}, {page = last_page}) .. "#latest-post"}
|
||||
end)
|
||||
|
||||
app:post("thread_lock", "/:slug/lock", function(self)
|
||||
local user = util.get_logged_in_user(self)
|
||||
if not user then
|
||||
return {redirect_to = self:url_for("thread", {slug = self.params.slug})}
|
||||
end
|
||||
local thread = Threads:find({slug = self.params.slug})
|
||||
if not ((thread.user_id == user.id) or user:is_mod()) then
|
||||
return {redirect_to = self:url_for("thread", {slug = self.params.slug})}
|
||||
end
|
||||
local target_op = util.form_bool_to_sqlite(self.params.target_op)
|
||||
thread:update({
|
||||
is_locked = target_op,
|
||||
})
|
||||
return {redirect_to = self:url_for("thread", {slug = self.params.slug})}
|
||||
end)
|
||||
|
||||
app:post("thread_sticky", "/:slug/sticky", function(self)
|
||||
local user = util.get_logged_in_user(self)
|
||||
if not user then
|
||||
return {redirect_to = self:url_for("thread", {slug = self.params.slug})}
|
||||
end
|
||||
|
||||
if not user:is_mod() then
|
||||
return {redirect_to = self:url_for("thread", {slug = self.params.slug})}
|
||||
end
|
||||
|
||||
local thread = Threads:find({slug = self.params.slug})
|
||||
local target_op = util.form_bool_to_sqlite(self.params.target_op)
|
||||
thread:update({
|
||||
is_stickied = target_op,
|
||||
})
|
||||
return {redirect_to = self:url_for("thread", {slug = self.params.slug})}
|
||||
end)
|
||||
|
||||
return app
|
||||
|
Reference in New Issue
Block a user