Data = request.env["ir.model.data"]
user = User.sudo().search([('id', '=', user_id)])
+ current_user = request.env.user.sudo()
if not user or user.karma < 1:
+
+ # Users with high karma can see users with karma <= 0 for
+ # moderation purposes, IFF they have posted something (see below)
+ if (not user or
+ (user.karma < 1 and current_user.karma < forum.karma_unlink_all)):
return werkzeug.utils.redirect("/forum/%s" % slug(forum))
values = self._prepare_forum_values(forum=forum, **post)
- if user_id != request.session.uid and not user.website_published:
- return request.website.render("website_forum.private_profile", values)
+
# questions and answers by user
- user_questions, user_answers = [], []
user_question_ids = Post.search([
('parent_id', '=', False),
('forum_id', '=', forum.id), ('create_uid', '=', user.id)],
order='create_date desc')
count_user_questions = len(user_question_ids)
+
+ if (user_id != request.session.uid and not
+ (user.website_published or
+ (count_user_questions and current_user.karma > forum.karma_unlink_all))):
+ return request.website.render("website_forum.private_profile", values)
+
# displaying only the 20 most recent questions
user_questions = user_question_ids[:20]