forked from rDrama/rDrama
1
0
Fork 0
master
Aevann1 2021-11-16 00:13:29 +02:00
parent 9be1599b9f
commit 8a49ee0dc3
19 changed files with 84 additions and 89 deletions

View File

@ -346,7 +346,7 @@ class Submission(Base):
@lazy @lazy
def realtitle(self, v): def realtitle(self, v):
if self.club and not (v and v.paid_dues) and not (v and v.admin_level == 6): if self.club and not (v and v.paid_dues) and not (v and v.admin_level > 1):
if v: return random.choice(TROLLTITLES).format(username=v.username) if v: return random.choice(TROLLTITLES).format(username=v.username)
else: return 'COUNTRY CLUB MEMBERS ONLY' else: return 'COUNTRY CLUB MEMBERS ONLY'
elif self.title_html: title = self.title_html elif self.title_html: title = self.title_html
@ -358,7 +358,7 @@ class Submission(Base):
@lazy @lazy
def plaintitle(self, v): def plaintitle(self, v):
if self.club and not (v and v.paid_dues) and not (v and v.admin_level == 6): if self.club and not (v and v.paid_dues) and not (v and v.admin_level > 1):
if v: return random.choice(TROLLTITLES).format(username=v.username) if v: return random.choice(TROLLTITLES).format(username=v.username)
else: return 'COUNTRY CLUB MEMBERS ONLY' else: return 'COUNTRY CLUB MEMBERS ONLY'
else: title = self.title else: title = self.title

View File

@ -177,7 +177,7 @@ class User(Base):
@property @property
@lazy @lazy
def paid_dues(self): def paid_dues(self):
return self.admin_level == 6 or self.club_allowed or (self.truecoins > int(environ.get("DUES").strip()) and not self.club_banned) return self.admin_level > 1 or self.club_allowed or (self.truecoins > int(environ.get("DUES").strip()) and not self.club_banned)
def any_block_exists(self, other): def any_block_exists(self, other):

View File

@ -209,7 +209,7 @@ def get_comments(cids, v=None, load_parent=False):
blocked.c.id, blocked.c.id,
).filter(Comment.id.in_(cids)) ).filter(Comment.id.in_(cids))
if not (v and v.shadowbanned) and not (v and v.admin_level == 6): if not (v and v.shadowbanned) and not (v and v.admin_level > 1):
comments = comments.join(User, User.id == Comment.author_id).filter(User.shadowbanned == None) comments = comments.join(User, User.id == Comment.author_id).filter(User.shadowbanned == None)
comments = comments.join( comments = comments.join(

View File

@ -21,7 +21,7 @@ SITE_NAME = environ.get("SITE_NAME", "").strip()
@app.get("/name/<id>/<name>") @app.get("/name/<id>/<name>")
@admin_level_required(6) @admin_level_required(2)
def changename(v, id, name): def changename(v, id, name):
if request.host != 'pcmemes.net': abort(403) if request.host != 'pcmemes.net': abort(403)
user = g.db.query(User).filter_by(id=int(id)).first() user = g.db.query(User).filter_by(id=int(id)).first()
@ -33,7 +33,7 @@ def changename(v, id, name):
return "User not found!" return "User not found!"
@app.get("/coins/<id>/<coins>") @app.get("/coins/<id>/<coins>")
@admin_level_required(6) @admin_level_required(2)
def addcoins(v, id, coins): def addcoins(v, id, coins):
if request.host != 'pcmemes.net': abort(403) if request.host != 'pcmemes.net': abort(403)
user = g.db.query(User).filter_by(id=int(id)).first() user = g.db.query(User).filter_by(id=int(id)).first()
@ -45,7 +45,7 @@ def addcoins(v, id, coins):
return "User not found!" return "User not found!"
@app.get("/truescore") @app.get("/truescore")
@admin_level_required(6) @admin_level_required(2)
def truescore(v): def truescore(v):
users = g.db.query(User).order_by(User.truecoins.desc()).limit(25).all() users = g.db.query(User).order_by(User.truecoins.desc()).limit(25).all()
return render_template("truescore.html", v=v, users=users) return render_template("truescore.html", v=v, users=users)
@ -53,9 +53,9 @@ def truescore(v):
@app.post("/@<username>/revert_actions") @app.post("/@<username>/revert_actions")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
def revert_actions(v, username): def revert_actions(v, username):
if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.id in [1,28,30,995,2513,3333]) or ('rama' not in request.host and 'pcm' not in request.host): if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.admin_level > 2) or ('rama' not in request.host and 'pcm' not in request.host):
user = get_user(username) user = get_user(username)
if not user: abort(404) if not user: abort(404)
@ -78,7 +78,7 @@ def revert_actions(v, username):
@app.post("/@<username>/club_allow") @app.post("/@<username>/club_allow")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
def club_allow(v, username): def club_allow(v, username):
u = get_user(username, v=v) u = get_user(username, v=v)
@ -109,7 +109,7 @@ def club_allow(v, username):
@app.post("/@<username>/club_ban") @app.post("/@<username>/club_ban")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
def club_ban(v, username): def club_ban(v, username):
u = get_user(username, v=v) u = get_user(username, v=v)
@ -139,9 +139,9 @@ def club_ban(v, username):
@app.post("/@<username>/make_admin") @app.post("/@<username>/make_admin")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
def make_admin(v, username): def make_admin(v, username):
if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.id in [1,28,30,995,2513,3333]) or ('rama' not in request.host and 'pcm' not in request.host): if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.admin_level > 2) or ('rama' not in request.host and 'pcm' not in request.host):
user = get_user(username) user = get_user(username)
if not user: abort(404) if not user: abort(404)
user.admin_level = 6 user.admin_level = 6
@ -152,9 +152,9 @@ def make_admin(v, username):
@app.post("/@<username>/remove_admin") @app.post("/@<username>/remove_admin")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
def remove_admin(v, username): def remove_admin(v, username):
if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.id in [1,28,30,995,2513,3333]) or ('rama' not in request.host and 'pcm' not in request.host): if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.admin_level > 2) or ('rama' not in request.host and 'pcm' not in request.host):
user = get_user(username) user = get_user(username)
if not user: abort(404) if not user: abort(404)
user.admin_level = 0 user.admin_level = 0
@ -165,9 +165,9 @@ def remove_admin(v, username):
@app.post("/@<username>/make_fake_admin") @app.post("/@<username>/make_fake_admin")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
def make_fake_admin(v, username): def make_fake_admin(v, username):
if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.id in [1,28,30,995,2513,3333]) or ('rama' not in request.host and 'pcm' not in request.host): if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.admin_level > 2) or ('rama' not in request.host and 'pcm' not in request.host):
user = get_user(username) user = get_user(username)
if not user: abort(404) if not user: abort(404)
user.admin_level = 1 user.admin_level = 1
@ -178,9 +178,9 @@ def make_fake_admin(v, username):
@app.post("/@<username>/remove_fake_admin") @app.post("/@<username>/remove_fake_admin")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
def remove_fake_admin(v, username): def remove_fake_admin(v, username):
if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.id in [1,28,30,995,2513,3333]) or ('rama' not in request.host and 'pcm' not in request.host): if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.admin_level > 2) or ('rama' not in request.host and 'pcm' not in request.host):
user = get_user(username) user = get_user(username)
if not user: abort(404) if not user: abort(404)
user.admin_level = 0 user.admin_level = 0
@ -191,9 +191,9 @@ def remove_fake_admin(v, username):
@app.post("/admin/monthly") @app.post("/admin/monthly")
@limiter.limit("1/day") @limiter.limit("1/day")
@admin_level_required(6) @admin_level_required(2)
def monthly(v): def monthly(v):
if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.id in [1,28,30,995,2513,3333]) or ('rama' not in request.host and 'pcm' not in request.host): if 'pcm' in request.host or (SITE_NAME == 'Drama' and v.admin_level > 2) or ('rama' not in request.host and 'pcm' not in request.host):
thing = g.db.query(AwardRelationship).order_by(AwardRelationship.id.desc()).first().id thing = g.db.query(AwardRelationship).order_by(AwardRelationship.id.desc()).first().id
for u in g.db.query(User).filter(User.patron > 0).all(): for u in g.db.query(User).filter(User.patron > 0).all():
if u.patron == 1: procoins = 2000 if u.patron == 1: procoins = 2000
@ -211,7 +211,7 @@ def monthly(v):
@app.get('/admin/rules') @app.get('/admin/rules')
@admin_level_required(6) @admin_level_required(2)
def get_rules(v): def get_rules(v):
try: try:
@ -224,7 +224,7 @@ def get_rules(v):
@app.post('/admin/rules') @app.post('/admin/rules')
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def post_rules(v): def post_rules(v):
@ -248,7 +248,7 @@ def post_rules(v):
@app.get("/admin/shadowbanned") @app.get("/admin/shadowbanned")
@auth_required @auth_required
def shadowbanned(v): def shadowbanned(v):
if not (v and v.admin_level == 6): abort(404) if not (v and v.admin_level > 1): abort(404)
users = [x for x in g.db.query(User).filter(User.shadowbanned != None).all()] users = [x for x in g.db.query(User).filter(User.shadowbanned != None).all()]
return render_template("banned.html", v=v, users=users) return render_template("banned.html", v=v, users=users)
@ -256,7 +256,7 @@ def shadowbanned(v):
@app.get("/admin/agendaposters") @app.get("/admin/agendaposters")
@auth_required @auth_required
def agendaposters(v): def agendaposters(v):
if not (v and v.admin_level == 6): abort(404) if not (v and v.admin_level > 1): abort(404)
users = [x for x in g.db.query(User).filter_by(agendaposter = True).all()] users = [x for x in g.db.query(User).filter_by(agendaposter = True).all()]
return render_template("banned.html", v=v, users=users) return render_template("banned.html", v=v, users=users)
@ -333,7 +333,7 @@ def admin_home(v):
return render_template("admin/admin_home.html", v=v, x=x) return render_template("admin/admin_home.html", v=v, x=x)
@app.post("/admin/disablesignups") @app.post("/admin/disablesignups")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def disablesignups(v): def disablesignups(v):
with open('./disablesignups', 'r') as f: content = f.read() with open('./disablesignups', 'r') as f: content = f.read()
@ -585,7 +585,7 @@ def admin_removed(v):
@app.post("/agendaposter/<user_id>") @app.post("/agendaposter/<user_id>")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def agendaposter(user_id, v): def agendaposter(user_id, v):
user = g.db.query(User).filter_by(id=user_id).first() user = g.db.query(User).filter_by(id=user_id).first()
@ -638,7 +638,7 @@ def agendaposter(user_id, v):
@app.post("/shadowban/<user_id>") @app.post("/shadowban/<user_id>")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def shadowban(user_id, v): def shadowban(user_id, v):
user = g.db.query(User).filter_by(id=user_id).first() user = g.db.query(User).filter_by(id=user_id).first()
@ -664,7 +664,7 @@ def shadowban(user_id, v):
@app.post("/unshadowban/<user_id>") @app.post("/unshadowban/<user_id>")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def unshadowban(user_id, v): def unshadowban(user_id, v):
user = g.db.query(User).filter_by(id=user_id).first() user = g.db.query(User).filter_by(id=user_id).first()
@ -689,7 +689,7 @@ def unshadowban(user_id, v):
@app.post("/admin/verify/<user_id>") @app.post("/admin/verify/<user_id>")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def verify(user_id, v): def verify(user_id, v):
user = g.db.query(User).filter_by(id=user_id).first() user = g.db.query(User).filter_by(id=user_id).first()
@ -708,7 +708,7 @@ def verify(user_id, v):
@app.post("/admin/unverify/<user_id>") @app.post("/admin/unverify/<user_id>")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def unverify(user_id, v): def unverify(user_id, v):
user = g.db.query(User).filter_by(id=user_id).first() user = g.db.query(User).filter_by(id=user_id).first()
@ -728,7 +728,7 @@ def unverify(user_id, v):
@app.post("/admin/title_change/<user_id>") @app.post("/admin/title_change/<user_id>")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def admin_title_change(user_id, v): def admin_title_change(user_id, v):
@ -762,7 +762,7 @@ def admin_title_change(user_id, v):
@app.post("/ban_user/<user_id>") @app.post("/ban_user/<user_id>")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def ban_user(user_id, v): def ban_user(user_id, v):
@ -837,7 +837,7 @@ def ban_user(user_id, v):
@app.post("/unban_user/<user_id>") @app.post("/unban_user/<user_id>")
@limiter.limit("1/second") @limiter.limit("1/second")
@admin_level_required(6) @admin_level_required(2)
@validate_formkey @validate_formkey
def unban_user(user_id, v): def unban_user(user_id, v):
@ -1074,7 +1074,7 @@ def admin_distinguish_comment(c_id, v):
return html return html
@app.get("/admin/dump_cache") @app.get("/admin/dump_cache")
@admin_level_required(6) @admin_level_required(2)
def admin_dump_cache(v): def admin_dump_cache(v):
cache.clear() cache.clear()
return {"message": "Internal cache cleared."} return {"message": "Internal cache cleared."}

View File

@ -598,10 +598,10 @@ def award_comment(cid, v):
else: return redirect("/") else: return redirect("/")
@app.get("/admin/awards") @app.get("/admin/awards")
@admin_level_required(6) @admin_level_required(2)
def admin_userawards_get(v): def admin_userawards_get(v):
if request.host == 'rdrama.net' and v.id not in [1,28,30,995,2513,3333]: render_template("admin/awards.html", awards=list(AWARDS2.values()), v=v) if request.host == 'rdrama.net' and v.admin_level != 3: render_template("admin/awards.html", awards=list(AWARDS2.values()), v=v)
return render_template("admin/awards.html", awards=list(AWARDS.values()), v=v) return render_template("admin/awards.html", awards=list(AWARDS.values()), v=v)
@app.post("/admin/awards") @app.post("/admin/awards")
@ -650,7 +650,7 @@ def admin_userawards_post(v):
g.db.commit() g.db.commit()
if request.host == 'rdrama.net' and v.id not in [1,28,30,995,2513,3333]: render_template("admin/awards.html", awards=list(AWARDS2.values()), v=v) if request.host == 'rdrama.net' and v.admin_level != 3: render_template("admin/awards.html", awards=list(AWARDS2.values()), v=v)
return render_template("admin/awards.html", awards=list(AWARDS.values()), v=v) return render_template("admin/awards.html", awards=list(AWARDS.values()), v=v)

View File

@ -46,7 +46,7 @@ def post_pid_comment_cid(cid, pid=None, anything=None, v=None):
if comment.post and comment.post.club and not (v and v.paid_dues): abort(403) if comment.post and comment.post.club and not (v and v.paid_dues): abort(403)
if not comment.parent_submission and not (v and (comment.author.id == v.id or comment.sentto == v.id)) and not (v and v.admin_level == 6) : abort(403) if not comment.parent_submission and not (v and (comment.author.id == v.id or comment.sentto == v.id)) and not (v and v.admin_level > 1) : abort(403)
if not pid: if not pid:
if comment.parent_submission: pid = comment.parent_submission if comment.parent_submission: pid = comment.parent_submission
@ -90,7 +90,7 @@ def post_pid_comment_cid(cid, pid=None, anything=None, v=None):
blocked.c.id, blocked.c.id,
) )
if not (v and v.shadowbanned) and not (v and v.admin_level == 6): if not (v and v.shadowbanned) and not (v and v.admin_level > 1):
comments = comments.join(User, User.id == Comment.author_id).filter(User.shadowbanned == None) comments = comments.join(User, User.id == Comment.author_id).filter(User.shadowbanned == None)
comments=comments.filter( comments=comments.filter(
@ -842,16 +842,16 @@ def toggle_pin_comment(cid, v):
if comment.is_pinned: if comment.is_pinned:
if comment.is_pinned.startswith("t:"): abort(403) if comment.is_pinned.startswith("t:"): abort(403)
else: else:
if v.admin_level == 6 or comment.is_pinned.endswith(" (OP)"): comment.is_pinned = None if v.admin_level > 1 or comment.is_pinned.endswith(" (OP)"): comment.is_pinned = None
else: abort(403) else: abort(403)
else: else:
if v.admin_level == 6: comment.is_pinned = v.username if v.admin_level > 1: comment.is_pinned = v.username
else: comment.is_pinned = v.username + " (OP)" else: comment.is_pinned = v.username + " (OP)"
g.db.add(comment) g.db.add(comment)
g.db.flush() g.db.flush()
if v.admin_level == 6: if v.admin_level > 1:
ma=ModAction( ma=ModAction(
kind="pin_comment" if comment.is_pinned else "unpin_comment", kind="pin_comment" if comment.is_pinned else "unpin_comment",
user_id=v.id, user_id=v.id,

View File

@ -28,7 +28,7 @@ def notifications(v):
messages = request.values.get('messages', False) messages = request.values.get('messages', False)
modmail = request.values.get('modmail', False) modmail = request.values.get('modmail', False)
posts = request.values.get('posts', False) posts = request.values.get('posts', False)
if modmail and v.admin_level == 6: if modmail and v.admin_level > 1:
comments = g.db.query(Comment).filter(Comment.sentto==0).order_by(Comment.created_utc.desc()).offset(25*(page-1)).limit(26).all() comments = g.db.query(Comment).filter(Comment.sentto==0).order_by(Comment.created_utc.desc()).offset(25*(page-1)).limit(26).all()
next_exists = (len(comments) > 25) next_exists = (len(comments) > 25)
comments = comments[:25] comments = comments[:25]
@ -299,7 +299,7 @@ def changeloglist(v=None, sort="new", page=1 ,t="all"):
Submission.author_id.notin_(blocked) Submission.author_id.notin_(blocked)
) )
admins = [x[0] for x in g.db.query(User.id).filter(User.admin_level == 6).all()] admins = [x[0] for x in g.db.query(User.id).filter(User.admin_level > 1).all()]
posts = posts.filter(Submission.title.ilike('_changelog%'), Submission.author_id.in_(admins)) posts = posts.filter(Submission.title.ilike('_changelog%'), Submission.author_id.in_(admins))
if t != 'all': if t != 'all':

View File

@ -118,7 +118,7 @@ def post_id(pid, anything=None, v=None):
post = get_post(pid, v=v) post = get_post(pid, v=v)
if post.club and not (v and v.paid_dues) or post.private and not (v and (v.id == post.author_id or v.admin_level == 6)): abort(403) if post.club and not (v and v.paid_dues) or post.private and not (v and (v.id == post.author_id or v.admin_level > 1)): abort(403)
if v: if v:
votes = g.db.query(CommentVote).filter_by(user_id=v.id).subquery() votes = g.db.query(CommentVote).filter_by(user_id=v.id).subquery()
@ -134,7 +134,7 @@ def post_id(pid, anything=None, v=None):
blocked.c.id, blocked.c.id,
) )
if not (v and v.shadowbanned) and not (v and v.admin_level == 6): if not (v and v.shadowbanned) and not (v and v.admin_level > 1):
comments = comments.join(User, User.id == Comment.author_id).filter(User.shadowbanned == None) comments = comments.join(User, User.id == Comment.author_id).filter(User.shadowbanned == None)
comments=comments.filter( comments=comments.filter(
@ -214,7 +214,7 @@ def edit_post(pid, v):
p = get_post(pid) p = get_post(pid)
if p.author_id != v.id and not (v.admin_level == 6 and v.id in [1,28,30,995,2513,3333]): abort(403) if p.author_id != v.id and not (v.admin_level > 1 and v.admin_level > 2): abort(403)
title = request.values.get("title", "").strip() title = request.values.get("title", "").strip()
body = request.values.get("body", "").strip() body = request.values.get("body", "").strip()
@ -936,7 +936,7 @@ def submit_post(v):
cache.delete_memoized(frontlist) cache.delete_memoized(frontlist)
cache.delete_memoized(User.userpagelisting) cache.delete_memoized(User.userpagelisting)
if v.admin_level == 6 and ("[changelog]" in new_post.title or "(changelog)" in new_post.title): if v.admin_level > 1 and ("[changelog]" in new_post.title or "(changelog)" in new_post.title):
send_message(f"http://{site}{new_post.permalink}") send_message(f"http://{site}{new_post.permalink}")
cache.delete_memoized(changeloglist) cache.delete_memoized(changeloglist)

View File

@ -59,7 +59,7 @@ def searchposts(v):
posts = g.db.query(Submission.id) posts = g.db.query(Submission.id)
if not (v and v.admin_level == 6): posts = posts.filter(Submission.private == False) if not (v and v.admin_level > 1): posts = posts.filter(Submission.private == False)
if 'q' in criteria: if 'q' in criteria:
words=criteria['q'].split() words=criteria['q'].split()

View File

@ -15,7 +15,7 @@ site_name = environ.get("SITE_NAME").strip()
def static_rules(v): def static_rules(v):
if not path.exists(f'./{site_name} rules.html'): if not path.exists(f'./{site_name} rules.html'):
if v and v.admin_level == 6: if v and v.admin_level > 1:
return render_template('norules.html', v=v) return render_template('norules.html', v=v)
else: else:
abort(404) abort(404)
@ -174,7 +174,7 @@ def log(v):
page=int(request.args.get("page",1)) page=int(request.args.get("page",1))
if v and v.admin_level == 6: actions = g.db.query(ModAction).order_by(ModAction.id.desc()).offset(25 * (page - 1)).limit(26).all() if v and v.admin_level > 1: actions = g.db.query(ModAction).order_by(ModAction.id.desc()).offset(25 * (page - 1)).limit(26).all()
else: actions=g.db.query(ModAction).filter(ModAction.kind!="shadowban", ModAction.kind!="unshadowban", ModAction.kind!="club", ModAction.kind!="unclub", ModAction.kind!="check").order_by(ModAction.id.desc()).offset(25*(page-1)).limit(26).all() else: actions=g.db.query(ModAction).filter(ModAction.kind!="shadowban", ModAction.kind!="unshadowban", ModAction.kind!="club", ModAction.kind!="unclub", ModAction.kind!="check").order_by(ModAction.id.desc()).offset(25*(page-1)).limit(26).all()
next_exists=len(actions)>25 next_exists=len(actions)>25

View File

@ -63,7 +63,7 @@
</form> </form>
<pre></pre> <pre></pre>
{% if 'rdrama.net' not in request.host or v.id in [1,995,2513] %} {% if 'rdrama.net' not in request.host or v.admin_level > 2 %}
<div><a class="btn btn-success" href="javascript:void(0)" onclick="post_toast('/admin/monthly')">Grant Monthly Marseybux</a></div> <div><a class="btn btn-success" href="javascript:void(0)" onclick="post_toast('/admin/monthly')">Grant Monthly Marseybux</a></div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -33,7 +33,7 @@
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.8/dist/clipboard.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.8/dist/clipboard.min.js"></script>
{% if v and v.admin_level == 6 %} {% if v and v.admin_level > 1 %}
<script src="/assets/js/comments_admin.js?v=53"></script> <script src="/assets/js/comments_admin.js?v=53"></script>
{% endif %} {% endif %}
@ -173,7 +173,7 @@
{% set downs=c.downvotes %} {% set downs=c.downvotes %}
{% set score=ups-downs %} {% set score=ups-downs %}
{% if v and (v.shadowbanned or v.admin_level == 6) %} {% if v and (v.shadowbanned or v.admin_level > 1) %}
{% set replies=c.replies3 %} {% set replies=c.replies3 %}
{% else %} {% else %}
{% set replies=c.replies %} {% set replies=c.replies %}
@ -291,7 +291,7 @@
{% endif %} {% endif %}
{% if c.active_flags %}<a class="btn btn-primary" style="padding:1px 5px; font-size:10px;" href="javascript:void(0)" onclick="document.getElementById('flaggers-{{c.id}}').classList.toggle('d-none')">{{c.active_flags}} Reports</a>{% endif %} {% if c.active_flags %}<a class="btn btn-primary" style="padding:1px 5px; font-size:10px;" href="javascript:void(0)" onclick="document.getElementById('flaggers-{{c.id}}').classList.toggle('d-none')">{{c.active_flags}} Reports</a>{% endif %}
{% if c.over_18 %}<span class="badge badge-danger text-small-extra mr-1">+18</span>{% endif %} {% if c.over_18 %}<span class="badge badge-danger text-small-extra mr-1">+18</span>{% endif %}
{% if v and v.admin_level==6 and c.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Shadowbanned by @{{c.author.shadowbanned}}"></i>{% endif %} {% if v and v.admin_level> 1 and c.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Shadowbanned by @{{c.author.shadowbanned}}"></i>{% endif %}
{% if c.is_pinned %}<i id='pinned-{{c.id}}' class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned {% if c.is_pinned.startswith('t:') %}until {{c.is_pinned[2:]}}{% else %}by @{{c.is_pinned}}{%endif%}"></i>{% endif %} {% if c.is_pinned %}<i id='pinned-{{c.id}}' class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned {% if c.is_pinned.startswith('t:') %}until {{c.is_pinned[2:]}}{% else %}by @{{c.is_pinned}}{%endif%}"></i>{% endif %}
{% if c.distinguish_level %}<i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{'SITE_NAME' | app_config}} Admin, speaking officially"></i>{% endif %} {% if c.distinguish_level %}<i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{'SITE_NAME' | app_config}} Admin, speaking officially"></i>{% endif %}
{% if c.is_op %}<i class="fas fa-microphone-stand text-info" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="OP"></i>{% endif %} {% if c.is_op %}<i class="fas fa-microphone-stand text-info" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="OP"></i>{% endif %}
@ -319,7 +319,7 @@
<pre></pre> <pre></pre>
<ul style="padding-left:20px; margin-bottom: 0;"> <ul style="padding-left:20px; margin-bottom: 0;">
{% for f in c.ordered_flags %} {% for f in c.ordered_flags %}
<li><a style="font-weight:bold" href="{{f.user.url}}">{{f.user.username}}</a>{% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level==6 %}<a href="javascript:void(0)" onclick="post_toast('/del_report/c{{ f.id }}')">[remove]</a>{% endif %}</li> <li><a style="font-weight:bold" href="{{f.user.url}}">{{f.user.username}}</a>{% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level> 1 %}<a href="javascript:void(0)" onclick="post_toast('/del_report/c{{ f.id }}')">[remove]</a>{% endif %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
@ -461,7 +461,7 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if v and v.admin_level==6 and v.id==c.author_id %} {% if v and v.admin_level> 1 and v.id==c.author_id %}
<a id="undistinguish-{{c.id}}" class="list-inline-item d-none {% if c.distinguish_level %}d-md-inline-block{% endif %} text-info" href="javascript:void(0)" onclick="post_toast3('/distinguish_comment/{{c.id}}','distinguish-{{c.id}}','undistinguish-{{c.id}}','no')"><i class="fas fa-id-badge text-info fa-fw"></i>Undistinguish</a> <a id="undistinguish-{{c.id}}" class="list-inline-item d-none {% if c.distinguish_level %}d-md-inline-block{% endif %} text-info" href="javascript:void(0)" onclick="post_toast3('/distinguish_comment/{{c.id}}','distinguish-{{c.id}}','undistinguish-{{c.id}}','no')"><i class="fas fa-id-badge text-info fa-fw"></i>Undistinguish</a>
<a id="distinguish-{{c.id}}" class="list-inline-item d-none {% if not c.distinguish_level %}d-md-inline-block{% endif %} text-info" href="javascript:void(0)" onclick="post_toast3('/distinguish_comment/{{c.id}}','distinguish-{{c.id}}','undistinguish-{{c.id}}','yes')"><i class="fas fa-id-badge text-info fa-fw"></i>Distinguish</a> <a id="distinguish-{{c.id}}" class="list-inline-item d-none {% if not c.distinguish_level %}d-md-inline-block{% endif %} text-info" href="javascript:void(0)" onclick="post_toast3('/distinguish_comment/{{c.id}}','distinguish-{{c.id}}','undistinguish-{{c.id}}','yes')"><i class="fas fa-id-badge text-info fa-fw"></i>Distinguish</a>
{% endif %} {% endif %}
@ -496,7 +496,7 @@
<a id="mark-{{c.id}}" class="list-inline-item d-none {% if not c.over_18 %}d-md-inline-block{% endif %} text-danger" href="javascript:void(0)" onclick="post_toast3('/toggle_comment_nsfw/{{c.id}}','mark-{{c.id}}','unmark-{{c.id}}')"><i class="fas fa-eye-evil text-danger fa-fw"></i>Mark +18</a> <a id="mark-{{c.id}}" class="list-inline-item d-none {% if not c.over_18 %}d-md-inline-block{% endif %} text-danger" href="javascript:void(0)" onclick="post_toast3('/toggle_comment_nsfw/{{c.id}}','mark-{{c.id}}','unmark-{{c.id}}')"><i class="fas fa-eye-evil text-danger fa-fw"></i>Mark +18</a>
{% endif %} {% endif %}
{% if v and v.admin_level==6 and v.id != c.author_id %} {% if v and v.admin_level> 1 and v.id != c.author_id %}
<a id="unban-{{c.id}}" class="list-inline-item d-none {% if c.author.is_suspended %}d-md-inline-block{% endif %} text-success" id="unexile-comment-{{c.id}}" href="javascript:void(0)" onclick="post_toast3('/unban_user/{{c.author_id}}','ban-{{c.id}}','unban-{{c.id}}')"><i class="fas fa-user-slash text-success fa-fw"></i>Unban user</a> <a id="unban-{{c.id}}" class="list-inline-item d-none {% if c.author.is_suspended %}d-md-inline-block{% endif %} text-success" id="unexile-comment-{{c.id}}" href="javascript:void(0)" onclick="post_toast3('/unban_user/{{c.author_id}}','ban-{{c.id}}','unban-{{c.id}}')"><i class="fas fa-user-slash text-success fa-fw"></i>Unban user</a>
<a id="ban-{{c.id}}" class="list-inline-item d-none {% if not c.author.is_suspended %}d-md-inline-block{% endif %} text-danger" id="exile-comment-{{c.id}}" href="javascript:void(0)" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/comment/{{c.id}}', '{{ c.author.id }}', '{{c.author.username}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a> <a id="ban-{{c.id}}" class="list-inline-item d-none {% if not c.author.is_suspended %}d-md-inline-block{% endif %} text-danger" id="exile-comment-{{c.id}}" href="javascript:void(0)" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/comment/{{c.id}}', '{{ c.author.id }}', '{{c.author.username}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a>
{% endif %} {% endif %}
@ -661,7 +661,7 @@
<a id="unmark2-{{c.id}}" class="{% if not c.over_18 %}d-none{% endif %} list-group-item text-danger" href="javascript:void(0)" onclick="post_toast2('/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-danger"></i>Unmark +18</a> <a id="unmark2-{{c.id}}" class="{% if not c.over_18 %}d-none{% endif %} list-group-item text-danger" href="javascript:void(0)" onclick="post_toast2('/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-danger"></i>Unmark +18</a>
{% endif %} {% endif %}
{% if v and (c.post and v.admin_level == 6) %} {% if v and (c.post and v.admin_level > 1) %}
{% if c.author_id != v.id %} {% if c.author_id != v.id %}
<a id="ban2-{{c.id}}" class="{% if c.author.is_suspended %}d-none{% endif %} list-group-item text-danger" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/comment/{{c.id}}', '{{ c.author.id }}', '{{c.author.username}}')" href="javascript:void(0)"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a> <a id="ban2-{{c.id}}" class="{% if c.author.is_suspended %}d-none{% endif %} list-group-item text-danger" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/comment/{{c.id}}', '{{ c.author.id }}', '{{c.author.username}}')" href="javascript:void(0)"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a>
<a id="unban2-{{c.id}}" class="{% if not c.author.is_suspended %}d-none{% endif %} list-group-item text-success" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{c.author_id}}','ban2-{{c.id}}','unban2-{{c.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus fa-fw text-success"></i>Unban user</a> <a id="unban2-{{c.id}}" class="{% if not c.author.is_suspended %}d-none{% endif %} list-group-item text-success" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{c.author_id}}','ban2-{{c.id}}','unban2-{{c.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus fa-fw text-success"></i>Unban user</a>
@ -689,7 +689,7 @@
{% if v %} {% if v %}
{% include "gif_modal.html" %} {% include "gif_modal.html" %}
{% include "emoji_modal.html" %} {% include "emoji_modal.html" %}
{% if v.admin_level == 6 %} {% if v.admin_level > 1 %}
{% include "ban_modal.html" %} {% include "ban_modal.html" %}
{% endif %} {% endif %}

View File

@ -63,7 +63,7 @@
<a class="nav-link" href="/random/" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Random post"><i class="fas fa-random"></i></a> <a class="nav-link" href="/random/" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Random post"><i class="fas fa-random"></i></a>
</li> </li>
{% if v and v.admin_level==6 %} {% if v and v.admin_level> 1 %}
<li class="nav-item d-flex align-items-center justify-content-center text-center mx-1"> <li class="nav-item d-flex align-items-center justify-content-center text-center mx-1">
<a class="nav-link" href="/admin/" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Admin tools"><i class="fas fa-crown{% if v.has_report_queue %} text-success{% endif %}"></i></a> <a class="nav-link" href="/admin/" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Admin tools"><i class="fas fa-crown{% if v.has_report_queue %} text-success{% endif %}"></i></a>
</li> </li>

View File

@ -30,7 +30,7 @@
Messages Messages
</a> </a>
</li> </li>
{% if v.admin_level==6 %} {% if v.admin_level> 1 %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link py-3{% if '/notifications?modmail=true' in request.full_path %} active{% endif %}" href="/notifications?modmail=true"> <a class="nav-link py-3{% if '/notifications?modmail=true' in request.full_path %} active{% endif %}" href="/notifications?modmail=true">
Modmail Modmail

View File

@ -55,7 +55,7 @@
{% block subNav %} {% block subNav %}
{% set mod = (v.admin_level==6) %} {% set mod = (v.admin_level> 1) %}
<div class="container-fluid bg-white sticky d-none d-md-block" style="padding-top: 50px; padding-bottom: 0 !important;"> <div class="container-fluid bg-white sticky d-none d-md-block" style="padding-top: 50px; padding-bottom: 0 !important;">
<div class="row box-shadow-bottom"> <div class="row box-shadow-bottom">
<div class="col"> <div class="col">

View File

@ -106,7 +106,7 @@
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.8/dist/clipboard.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.8/dist/clipboard.min.js"></script>
<script src="/assets/js/new_comments_count.js?v=53"></script> <script src="/assets/js/new_comments_count.js?v=53"></script>
{% if v and (v.id == p.author_id or v.admin_level == 6 and v.id in [1,28,30,995,2513,3333]) %} {% if v and (v.id == p.author_id or v.admin_level > 1 and v.admin_level > 2) %}
<script> <script>
togglePostEdit=function(id){ togglePostEdit=function(id){
@ -150,7 +150,7 @@
{% include "award_modal.html" %} {% include "award_modal.html" %}
{% include "emoji_modal.html" %} {% include "emoji_modal.html" %}
{% include "gif_modal.html" %} {% include "gif_modal.html" %}
{% if v.admin_level == 6 %} {% if v.admin_level > 1 %}
{% include "ban_modal.html" %} {% include "ban_modal.html" %}
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -316,7 +316,7 @@
<ul class="list-group post-actions"> <ul class="list-group post-actions">
<button class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportPostModal" onclick="report_postModal('{{p.id}}')"><i class="far fa-flag text-center text-muted mr-3"></i>Report</button> <button class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportPostModal" onclick="report_postModal('{{p.id}}')"><i class="far fa-flag text-center text-muted mr-3"></i>Report</button>
{% if v and (v.id==p.author_id or v.admin_level==6 and v.id in [1,28,30,995,2513,3333]) %} {% if v and (v.id==p.author_id or v.admin_level> 1 and v.admin_level > 2) %}
<button class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-dismiss="modal" onclick="togglePostEdit('{{p.id}}')"><i class="far fa-edit text-center text-muted mr-3"></i>Edit</button> <button class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-dismiss="modal" onclick="togglePostEdit('{{p.id}}')"><i class="far fa-edit text-center text-muted mr-3"></i>Edit</button>
{% endif %} {% endif %}
@ -397,7 +397,7 @@
<button id="unsex-user-{{p.id}}" class="list-inline-item{% if not p.is_blocking %} d-none{% endif %} text-success" href="javascript:void(0)" onclick="post_toast2('/settings/unblock?username={{p.author.username}}','sex-user-{{p.id}}','unsex-user-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-slash text-success"></i>Unban user</button> <button id="unsex-user-{{p.id}}" class="list-inline-item{% if not p.is_blocking %} d-none{% endif %} text-success" href="javascript:void(0)" onclick="post_toast2('/settings/unblock?username={{p.author.username}}','sex-user-{{p.id}}','unsex-user-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-slash text-success"></i>Unban user</button>
{% endif %} {% endif %}
{% if v and v.admin_level == 6 and v.id!=p.author_id %} {% if v and v.admin_level > 1 and v.id!=p.author_id %}
<button id="ban2-{{p.id}}" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{ p.author.id }}', '{{p.author.username}}')" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" href="javascript:void(0)"><i class="fas fa-user-minus mr-3"></i>Ban user</button> <button id="ban2-{{p.id}}" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{ p.author.id }}', '{{p.author.username}}')" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" href="javascript:void(0)"><i class="fas fa-user-minus mr-3"></i>Ban user</button>
<button id="unban2-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{p.author_id}}','ban2-{{p.id}}','unban2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Unban user</button> <button id="unban2-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{p.author_id}}','ban2-{{p.id}}','unban2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Unban user</button>
{% endif %} {% endif %}
@ -436,7 +436,7 @@
<i class="{{a.class_list}} px-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{a.title}} Award given by @{{a.user.username}}"></i> <i class="{{a.class_list}} px-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{a.title}} Award given by @{{a.user.username}}"></i>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if v and v.admin_level==6 and p.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Shadowbanned by @{{p.author.shadowbanned}}"></i>{% endif %} {% if v and v.admin_level> 1 and p.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Shadowbanned by @{{p.author.shadowbanned}}"></i>{% endif %}
{% if p.stickied %}<i id="pinned-{{p.id}}" class="fas fa-thumbtack fa-rotate--45 fa-fw text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}"></i>{% endif %} {% if p.stickied %}<i id="pinned-{{p.id}}" class="fas fa-thumbtack fa-rotate--45 fa-fw text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}"></i>{% endif %}
{% if p.is_pinned %}<i class="fas fa-thumbtack fa-rotate--45 fa-fw text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned to profile"></i>{% endif %} {% if p.is_pinned %}<i class="fas fa-thumbtack fa-rotate--45 fa-fw text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned to profile"></i>{% endif %}
{% if p.distinguish_level %} <i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{'SITE_NAME' | app_config}} Admin, speaking officially"></i>{% endif %} {% if p.distinguish_level %} <i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{'SITE_NAME' | app_config}} Admin, speaking officially"></i>{% endif %}
@ -459,7 +459,7 @@
<pre></pre> <pre></pre>
<ul style="padding-left:20px; margin-bottom: 0;"> <ul style="padding-left:20px; margin-bottom: 0;">
{% for f in p.ordered_flags %} {% for f in p.ordered_flags %}
<li><a style="font-weight:bold" href="{{f.user.url}}">{{f.user.username}}</a>{% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level==6 %}<a href="javascript:void(0)" onclick="post_toast('/del_report/p{{ f.id }}')">[remove]</a>{% endif %}</li> <li><a style="font-weight:bold" href="{{f.user.url}}">{{f.user.username}}</a>{% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level> 1 %}<a href="javascript:void(0)" onclick="post_toast('/del_report/p{{ f.id }}')">[remove]</a>{% endif %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
@ -555,7 +555,7 @@
</div> </div>
{% if v and (v.id==p.author_id or v.admin_level==6 and v.id in [1,28,30,995,2513,3333]) and not v.is_suspended %} {% if v and (v.id==p.author_id or v.admin_level> 1 and v.admin_level > 2) and not v.is_suspended %}
<div id="edit-post-body-{{p.id}}" class="d-none comment-write collapsed child"> <div id="edit-post-body-{{p.id}}" class="d-none comment-write collapsed child">
<form id="post-edit-form-{{p.id}}" class="d-flex flex-column input-group" action="/edit_post/{{p.id}}" method="post"> <form id="post-edit-form-{{p.id}}" class="d-flex flex-column input-group" action="/edit_post/{{p.id}}" method="post">
<input type="hidden" name="formkey" value="{{v.formkey}}"> <input type="hidden" name="formkey" value="{{v.formkey}}">
@ -600,7 +600,7 @@
</a> </a>
</li> </li>
{% if v and (v.id==p.author_id or v.admin_level==6 and v.id in [1,28,30,995,2513,3333]) %} {% if v and (v.id==p.author_id or v.admin_level> 1 and v.admin_level > 2) %}
<a class="list-inline-item" href="javascript:void(0)" onclick="togglePostEdit('{{p.id}}')"><i class="fas fa-edit"></i>Edit</a> <a class="list-inline-item" href="javascript:void(0)" onclick="togglePostEdit('{{p.id}}')"><i class="fas fa-edit"></i>Edit</a>
{% endif %} {% endif %}

View File

@ -119,7 +119,7 @@
<pre></pre> <pre></pre>
<ul style="padding-left:20px; margin-bottom: 0;"> <ul style="padding-left:20px; margin-bottom: 0;">
{% for f in p.ordered_flags %} {% for f in p.ordered_flags %}
<li><a style="font-weight:bold" href="{{f.user.url}}">{{f.user.username}}</a>{% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level==6 %}<a href="javascript:void(0)" onclick="post_toast('/del_report/p{{ f.id }}')">[remove]</a>{% endif %}</li> <li><a style="font-weight:bold" href="{{f.user.url}}">{{f.user.username}}</a>{% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level> 1 %}<a href="javascript:void(0)" onclick="post_toast('/del_report/p{{ f.id }}')">[remove]</a>{% endif %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
@ -204,7 +204,7 @@
<i class="{{a.class_list}} px-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{a.title}} Award given by @{{a.user.username}}"></i> <i class="{{a.class_list}} px-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{a.title}} Award given by @{{a.user.username}}"></i>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if v and v.admin_level==6 and p.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Shadowbanned by @{{p.author.shadowbanned}}"></i>{% endif %} {% if v and v.admin_level> 1 and p.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Shadowbanned by @{{p.author.shadowbanned}}"></i>{% endif %}
{% if p.stickied %}<i id='pinned-{{p.id}}' class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}"></i>{% endif %} {% if p.stickied %}<i id='pinned-{{p.id}}' class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}"></i>{% endif %}
{% if p.distinguish_level %}<i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{'SITE_NAME' | app_config}} Admin, speaking officially"></i>{% endif %} {% if p.distinguish_level %}<i class="fas fa-broom text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{'SITE_NAME' | app_config}} Admin, speaking officially"></i>{% endif %}
{% if p.is_pinned and request.path.startswith('/@') %}<i class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned to profile"></i>{% endif %} {% if p.is_pinned and request.path.startswith('/@') %}<i class="fas fa-thumbtack fa-rotate--45 text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Pinned to profile"></i>{% endif %}
@ -483,7 +483,7 @@
<button id="unsex-user-{{p.id}}" class="list-inline-item{% if not p.is_blocking %} d-none{% endif %} text-success" href="javascript:void(0)" onclick="post_toast2('/settings/unblock?username={{p.author.username}}','sex-user-{{p.id}}','unsex-user-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-slash text-success"></i>Unban user</button> <button id="unsex-user-{{p.id}}" class="list-inline-item{% if not p.is_blocking %} d-none{% endif %} text-success" href="javascript:void(0)" onclick="post_toast2('/settings/unblock?username={{p.author.username}}','sex-user-{{p.id}}','unsex-user-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-slash text-success"></i>Unban user</button>
{% endif %} {% endif %}
{% if v and v.admin_level == 6 and v.id!=p.author_id %} {% if v and v.admin_level > 1 and v.id!=p.author_id %}
<button id="ban2-{{p.id}}" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{ p.author.id }}', '{{p.author.username}}')" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" href="javascript:void(0)"><i class="fas fa-user-minus mr-3"></i>Ban user</button> <button id="ban2-{{p.id}}" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{ p.author.id }}', '{{p.author.username}}')" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" href="javascript:void(0)"><i class="fas fa-user-minus mr-3"></i>Ban user</button>
<button id="unban2-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{p.author_id}}','ban2-{{p.id}}','unban2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Unban user</button> <button id="unban2-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{p.author_id}}','ban2-{{p.id}}','unban2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Unban user</button>
{% endif %} {% endif %}
@ -602,7 +602,7 @@
{% if v %} {% if v %}
{% include "delete_post_modal.html" %} {% include "delete_post_modal.html" %}
{% include "report_post_modal.html" %} {% include "report_post_modal.html" %}
{% if v.admin_level == 6 %} {% if v.admin_level > 1 %}
{% include "ban_modal.html" %} {% include "ban_modal.html" %}
{% endif %} {% endif %}
{% endif %} {% endif %}

View File

@ -213,7 +213,7 @@
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/suicide')">Get them help</a> <a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/suicide')">Get them help</a>
<a class="btn btn-primary" href="javascript:void(0)" onclick="toggleElement('profile-toggleable', 'coin-transfer')">Gift {{'COINS_NAME' | app_config}}</a> <a class="btn btn-primary" href="javascript:void(0)" onclick="toggleElement('profile-toggleable', 'coin-transfer')">Gift {{'COINS_NAME' | app_config}}</a>
{% if 'pcm' in request.host and v.admin_level == 6 %} {% if 'pcm' in request.host and v.admin_level > 1 %}
{% if u.admin_level == 0 %} {% if u.admin_level == 0 %}
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/make_admin')">Make admin</a> <a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/make_admin')">Make admin</a>
{% elif v.id in [10,1551,1552,1577,1592] %} {% elif v.id in [10,1551,1552,1577,1592] %}
@ -222,19 +222,19 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if 'rama' in request.host and v.id in [1,28,30,995,2513,3333] %} {% if 'rama' in request.host and v.admin_level > 2 %}
<a id="admin" class="{% if u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin','unadmin')">Make admin</a> <a id="admin" class="{% if u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin','unadmin')">Make admin</a>
<a id="unadmin" class="{% if not u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin','unadmin')">Remove admin</a> <a id="unadmin" class="{% if not u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin','unadmin')">Remove admin</a>
<a id="fakeadmin" class="{% if u.admin_level == 1%}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_fake_admin','fakeadmin','unfakeadmin')">Make fake admin</a> <a id="fakeadmin" class="{% if u.admin_level == 1%}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_fake_admin','fakeadmin','unfakeadmin')">Make fake admin</a>
<a id="unfakeadmin" class="{% if u.admin_level != 1 %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_fake_admin','fakeadmin','unfakeadmin')">Remove fake admin</a> <a id="unfakeadmin" class="{% if u.admin_level != 1 %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_fake_admin','fakeadmin','unfakeadmin')">Remove fake admin</a>
{% if u.admin_level == 6 %} {% if u.admin_level > 1 %}
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/revert_actions')">Revert admin actions</a> <a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/revert_actions')">Revert admin actions</a>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if 'rama' not in request.host and 'pcm' not in request.host and v.admin_level == 6 %} {% if 'rama' not in request.host and 'pcm' not in request.host and v.admin_level > 1 %}
<a id="admin" class="{% if u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin','unadmin')">Make admin</a> <a id="admin" class="{% if u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin','unadmin')">Make admin</a>
<a id="unadmin" class="{% if not u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin','unadmin')">Remove admin</a> <a id="unadmin" class="{% if not u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin','unadmin')">Remove admin</a>
@ -511,7 +511,7 @@
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/suicide')">Get them help</a> <a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/suicide')">Get them help</a>
<a class="btn btn-primary" href="javascript:void(0)" onclick="toggleElement('profile-toggleable-mobile', 'coin-transfer-mobile')">Gift {{'COINS_NAME' | app_config}}</a> <a class="btn btn-primary" href="javascript:void(0)" onclick="toggleElement('profile-toggleable-mobile', 'coin-transfer-mobile')">Gift {{'COINS_NAME' | app_config}}</a>
{% if 'pcm' in request.host and v.admin_level == 6 %} {% if 'pcm' in request.host and v.admin_level > 1 %}
{% if u.admin_level == 0 %} {% if u.admin_level == 0 %}
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/make_admin')">Make admin</a> <a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/make_admin')">Make admin</a>
{% elif v.id in [10,1551,1552,1577,1592] %} {% elif v.id in [10,1551,1552,1577,1592] %}
@ -520,19 +520,19 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if 'rama' in request.host and v.id in [1,28,30,995,2513,3333] %} {% if 'rama' in request.host and v.admin_level > 2 %}
<a id="admin2" class="{% if u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin2','unadmin2')">Make admin</a> <a id="admin2" class="{% if u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin2','unadmin2')">Make admin</a>
<a id="unadmin2" class="{% if not u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin2','unadmin2')">Remove admin</a> <a id="unadmin2" class="{% if not u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin2','unadmin2')">Remove admin</a>
<a id="fakeadmin2" class="{% if u.admin_level == 1%}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_fake_admin','fakeadmin2','unfakeadmin2')">Make fake admin</a> <a id="fakeadmin2" class="{% if u.admin_level == 1%}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_fake_admin','fakeadmin2','unfakeadmin2')">Make fake admin</a>
<a id="unfakeadmin2" class="{% if u.admin_level != 1 %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_fake_admin','fakeadmin2','unfakeadmin2')">Remove fake admin</a> <a id="unfakeadmin2" class="{% if u.admin_level != 1 %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_fake_admin','fakeadmin2','unfakeadmin2')">Remove fake admin</a>
{% if u.admin_level == 6 %} {% if u.admin_level > 1 %}
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/revert_actions')">Revert admin actions</a> <a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/revert_actions')">Revert admin actions</a>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if 'rama' not in request.host and 'pcm' not in request.host and v.admin_level == 6 %} {% if 'rama' not in request.host and 'pcm' not in request.host and v.admin_level > 1 %}
<a id="admin" class="{% if u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin','unadmin')">Make admin</a> <a id="admin" class="{% if u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin','unadmin')">Make admin</a>
<a id="unadmin" class="{% if not u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin','unadmin')">Remove admin</a> <a id="unadmin" class="{% if not u.admin_level %}d-none{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin','unadmin')">Remove admin</a>

View File

@ -2646,11 +2646,6 @@ This has nothing to do with SRD, consider posting your inane, unfunny "meme" pos
Anyone else feel that this guy keeps overstepping his bounds? Anyone else feel that this guy keeps overstepping his bounds?
{[para]} {[para]}
There is more to it than just that at play here. You'll notice fascists (and Nazis) are being placed in the **authoritarian left quadrant**.
This is a part of the right wing misinformation campaign where they distance themselves from the Nazis by arguing that fascists' and Nazis are actually on the left! Three Arrows did a pretty good video on it a while ago (https://www.youtube.com/watch?v=hUFvG4RpwJI).
That this particular misinformation campaign would show up on PCM where out Nazis freely self identify with Auth Right... it doesn't make much sense. The whole idea of the misinformation campaign is to placate "moderate conservatives," by assuring them that the "bad people" were "left wing" all along, and it only works if you want to believe it, because the evidence is overwhelming that the Nazis were extreme right, and Nazis and Nazi sympathizers support right wing candidates without fail.
That said... when your entire identity is "owning the libs"... you'll believe just about anything.
{[para]}
So I got anal herpes from my wife a little bit ago and it was giving me some great difficulties plugging my good old meth. Luckily my butt hole is sore free at the moment after getting some good old Valtrex from the doctor. Imp it was kinda kinky plugging meth with herpes sores. It was painful but something really turns me on about shoving some shard up the shoot with an active disease. So I got anal herpes from my wife a little bit ago and it was giving me some great difficulties plugging my good old meth. Luckily my butt hole is sore free at the moment after getting some good old Valtrex from the doctor. Imp it was kinda kinky plugging meth with herpes sores. It was painful but something really turns me on about shoving some shard up the shoot with an active disease.
{[para]} {[para]}
Maybe AHS needs a new flair for these sort of subs. At their core lies destructive nihilism. We cannot be entirely sure what exactly their ideology is. Everything is hidden behind many layers of irony and postmodernist obscurantism. We can safely assume they're fascists but they will never spell it out. Their main goal isn't to spread a message anyway. Their main goal is to destroy meaningful debate. Maybe AHS needs a new flair for these sort of subs. At their core lies destructive nihilism. We cannot be entirely sure what exactly their ideology is. Everything is hidden behind many layers of irony and postmodernist obscurantism. We can safely assume they're fascists but they will never spell it out. Their main goal isn't to spread a message anyway. Their main goal is to destroy meaningful debate.