forked from MarseyWorld/MarseyWorld
remove .deleted column for alts
parent
ef2bda6920
commit
57e9cb3428
|
@ -12,7 +12,6 @@ class Alt(Base):
|
||||||
user2 = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
user2 = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||||
is_manual = Column(Boolean, default=False)
|
is_manual = Column(Boolean, default=False)
|
||||||
created_utc = Column(Integer)
|
created_utc = Column(Integer)
|
||||||
deleted = Column(Boolean, default=False)
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||||
|
|
|
@ -610,15 +610,13 @@ def admin_add_alt(v:User, username):
|
||||||
user2 = get_user(request.values.get('other_username'))
|
user2 = get_user(request.values.get('other_username'))
|
||||||
if user1.id == user2.id: abort(400, "Can't add the same account as alts of each other")
|
if user1.id == user2.id: abort(400, "Can't add the same account as alts of each other")
|
||||||
|
|
||||||
deleted = request.values.get('deleted', False, bool) or False
|
|
||||||
ids = [user1.id, user2.id]
|
ids = [user1.id, user2.id]
|
||||||
a = g.db.query(Alt).filter(Alt.user1.in_(ids), Alt.user2.in_(ids)).one_or_none()
|
a = g.db.query(Alt).filter(Alt.user1.in_(ids), Alt.user2.in_(ids)).one_or_none()
|
||||||
if a: abort(409, f"@{user1.username} and @{user2.username} are already known {'linked' if not a.deleted else 'delinked'} alts")
|
if a: abort(409, f"@{user1.username} and @{user2.username} are already known alts!")
|
||||||
a = Alt(
|
a = Alt(
|
||||||
user1=user1.id,
|
user1=user1.id,
|
||||||
user2=user2.id,
|
user2=user2.id,
|
||||||
is_manual=True,
|
is_manual=True,
|
||||||
deleted=deleted
|
|
||||||
)
|
)
|
||||||
g.db.add(a)
|
g.db.add(a)
|
||||||
g.db.flush()
|
g.db.flush()
|
||||||
|
@ -629,17 +627,14 @@ def admin_add_alt(v:User, username):
|
||||||
check_for_alts(user1)
|
check_for_alts(user1)
|
||||||
check_for_alts(user2)
|
check_for_alts(user2)
|
||||||
|
|
||||||
word = 'Delinked' if deleted else 'Linked'
|
|
||||||
ma_word = 'delink' if deleted else 'link'
|
|
||||||
note = f'from @{user2.username}' if deleted else f'with @{user2.username}'
|
|
||||||
ma = ModAction(
|
ma = ModAction(
|
||||||
kind=f"{ma_word}_accounts",
|
kind=f"link_accounts",
|
||||||
user_id=v.id,
|
user_id=v.id,
|
||||||
target_user_id=user1.id,
|
target_user_id=user1.id,
|
||||||
_note=note
|
_note=f'with @{user2.username}'
|
||||||
)
|
)
|
||||||
g.db.add(ma)
|
g.db.add(ma)
|
||||||
return {"message": f"{word} @{user1.username} and @{user2.username} successfully!"}
|
return {"message": f"Linked @{user1.username} and @{user2.username} successfully!"}
|
||||||
|
|
||||||
@app.post('/@<username>/alts/<int:other>/deleted')
|
@app.post('/@<username>/alts/<int:other>/deleted')
|
||||||
@limiter.limit(DEFAULT_RATELIMIT_SLOWER)
|
@limiter.limit(DEFAULT_RATELIMIT_SLOWER)
|
||||||
|
|
|
@ -72,13 +72,6 @@ def check_for_alts(current:User, include_current_session=False):
|
||||||
add_alt(past_id, current_id)
|
add_alt(past_id, current_id)
|
||||||
other_alts = g.db.query(Alt).filter(Alt.user1.in_(li), Alt.user2.in_(li)).all()
|
other_alts = g.db.query(Alt).filter(Alt.user1.in_(li), Alt.user2.in_(li)).all()
|
||||||
for a in other_alts:
|
for a in other_alts:
|
||||||
if a.deleted:
|
|
||||||
if include_current_session:
|
|
||||||
try: session["history"].remove(a.user1)
|
|
||||||
except: pass
|
|
||||||
try: session["history"].remove(a.user2)
|
|
||||||
except: pass
|
|
||||||
continue # don't propagate deleted alt links
|
|
||||||
if a.user1 != past_id: add_alt(a.user1, past_id)
|
if a.user1 != past_id: add_alt(a.user1, past_id)
|
||||||
if a.user1 != current_id: add_alt(a.user1, current_id)
|
if a.user1 != current_id: add_alt(a.user1, current_id)
|
||||||
if a.user2 != past_id: add_alt(a.user2, past_id)
|
if a.user2 != past_id: add_alt(a.user2, past_id)
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
delete from alts where deleted=true;
|
||||||
|
alter table alts drop column deleted;
|
Loading…
Reference in New Issue