forked from MarseyWorld/MarseyWorld
Hide shadowed user content in more contexts.
- Search: posts by shadowed user. - Search: shadowed users in search for users. - Direct links to shadowed user posts display as removed. - Other users' profile comments listings hide comments on shadowed posts. Users can still see their own comments on shadowed posts. Similar to ghosted comment logic.master
parent
a10a177106
commit
6a7a3b1821
|
@ -225,11 +225,18 @@ def post_id(pid, anything=None, v=None, sub=None):
|
|||
|
||||
post.views += 1
|
||||
g.db.add(post)
|
||||
if request.headers.get("Authorization"): return post.json
|
||||
else:
|
||||
if post.is_banned and not (v and (v.admin_level > 1 or post.author_id == v.id)): template = "submission_banned.html"
|
||||
else: template = "submission.html"
|
||||
return render_template(template, v=v, p=post, ids=list(ids), sort=sort, render_replies=True, offset=offset, sub=post.subr, fart=app.config['SETTINGS']['Fart mode'])
|
||||
|
||||
if request.headers.get("Authorization"):
|
||||
return post.json
|
||||
|
||||
template = "submission.html"
|
||||
if (post.is_banned or post.author.shadowbanned) \
|
||||
and not (v and (v.admin_level >= 2 or post.author_id == v.id)):
|
||||
template = "submission_banned.html"
|
||||
|
||||
return render_template(template, v=v, p=post, ids=list(ids),
|
||||
sort=sort, render_replies=True, offset=offset, sub=post.subr,
|
||||
fart=app.config['SETTINGS']['Fart mode'])
|
||||
|
||||
@app.get("/viewmore/<pid>/<sort>/<offset>")
|
||||
@limiter.limit("1/second;30/minute;200/hour;1000/day")
|
||||
|
|
|
@ -48,16 +48,19 @@ def searchposts(v):
|
|||
|
||||
criteria=searchparse(query)
|
||||
|
||||
|
||||
|
||||
posts = g.db.query(Submission.id).filter(Submission.author_id.notin_(v.userblocks))
|
||||
posts = g.db.query(Submission.id) \
|
||||
.join(Submission.author) \
|
||||
.filter(Submission.author_id.notin_(v.userblocks))
|
||||
|
||||
if not v.paid_dues: posts = posts.filter_by(club=False)
|
||||
if not v.paid_dues:
|
||||
posts = posts.filter(Submission.club == False)
|
||||
|
||||
if v.admin_level < 2:
|
||||
posts = posts.filter(Submission.deleted_utc == 0, Submission.is_banned == False, Submission.private == False)
|
||||
|
||||
|
||||
posts = posts.filter(
|
||||
Submission.deleted_utc == 0,
|
||||
Submission.is_banned == False,
|
||||
Submission.private == False,
|
||||
User.shadowbanned == None)
|
||||
|
||||
if 'author' in criteria:
|
||||
posts = posts.filter(Submission.ghost == False)
|
||||
|
@ -239,6 +242,9 @@ def searchusers(v):
|
|||
)
|
||||
)
|
||||
|
||||
if v.admin_level < 2:
|
||||
users = users.filter(User.shadowbanned == None)
|
||||
|
||||
users=users.order_by(User.username.ilike(term).desc(), User.stored_subscriber_count.desc())
|
||||
|
||||
total=users.count()
|
||||
|
|
|
@ -11,6 +11,7 @@ from files.mail import *
|
|||
from flask import *
|
||||
from files.__main__ import app, limiter, db_session
|
||||
import sqlalchemy
|
||||
from sqlalchemy.orm import aliased
|
||||
from sqlalchemy import text
|
||||
from collections import Counter
|
||||
import gevent
|
||||
|
@ -1055,14 +1056,24 @@ def u_username_comments(username, v=None):
|
|||
sort=request.values.get("sort","new")
|
||||
t=request.values.get("t","all")
|
||||
|
||||
|
||||
comments = g.db.query(Comment.id).filter(Comment.author_id == u.id, Comment.parent_submission != None)
|
||||
comment_post_author = aliased(User)
|
||||
comments = g.db.query(Comment.id) \
|
||||
.join(Comment.post) \
|
||||
.join(comment_post_author, Submission.author) \
|
||||
.filter(
|
||||
Comment.author_id == u.id,
|
||||
Comment.parent_submission != None
|
||||
)
|
||||
|
||||
if not v or (v.id != u.id and v.admin_level < 2):
|
||||
comments = comments.filter(Comment.is_banned == False, Comment.ghost == False)
|
||||
comments = comments.filter(
|
||||
Comment.is_banned == False,
|
||||
Comment.ghost == False,
|
||||
comment_post_author.shadowbanned == None
|
||||
)
|
||||
|
||||
if not (v and v.admin_level > 1):
|
||||
comments = comments.filter_by(deleted_utc=0)
|
||||
comments = comments.filter(Comment.deleted_utc == 0)
|
||||
|
||||
comments = apply_time_filter(t, comments, Comment)
|
||||
|
||||
|
|
Loading…
Reference in New Issue