fixes
This commit is contained in:
parent
6e80360d98
commit
8464398aaf
|
@ -8,7 +8,7 @@ from starlette.requests import HTTPConnection
|
|||
|
||||
from auth.credentials import AuthCredentials, AuthUser
|
||||
from base.orm import local_session
|
||||
from orm.user import User, Role, UserRole
|
||||
from orm.user import User, Role
|
||||
|
||||
from settings import SESSION_TOKEN_HEADER
|
||||
from auth.tokenstorage import SessionToken
|
||||
|
@ -40,11 +40,10 @@ class JWTAuthenticate(AuthenticationBackend):
|
|||
try:
|
||||
user = (
|
||||
session.query(User).options(
|
||||
joinedload(User.roles),
|
||||
joinedload(Role.permissions),
|
||||
joinedload(User.roles).options(joinedload(Role.permissions)),
|
||||
joinedload(User.ratings)
|
||||
).filter(
|
||||
User.id == id
|
||||
User.id == payload.user_id
|
||||
).one()
|
||||
)
|
||||
except exc.NoResultFound:
|
||||
|
@ -53,7 +52,7 @@ class JWTAuthenticate(AuthenticationBackend):
|
|||
if not user:
|
||||
return AuthCredentials(scopes=[]), AuthUser(user_id=None)
|
||||
|
||||
scopes = [] # user.get_permission()
|
||||
scopes = user.get_permission()
|
||||
|
||||
return (
|
||||
AuthCredentials(
|
||||
|
@ -61,7 +60,7 @@ class JWTAuthenticate(AuthenticationBackend):
|
|||
scopes=scopes,
|
||||
logged_in=True
|
||||
),
|
||||
user,
|
||||
AuthUser(user_id=user.id),
|
||||
)
|
||||
else:
|
||||
InvalidToken("please try again")
|
||||
|
|
2
main.py
2
main.py
|
@ -41,6 +41,7 @@ async def start_up():
|
|||
|
||||
async def dev_start_up():
|
||||
if exists(DEV_SERVER_STATUS_FILE_NAME):
|
||||
await redis.connect()
|
||||
return
|
||||
else:
|
||||
with open(DEV_SERVER_STATUS_FILE_NAME, 'w', encoding='utf-8') as f:
|
||||
|
@ -71,6 +72,7 @@ app.mount("/", GraphQL(schema, debug=True))
|
|||
dev_app = app = Starlette(
|
||||
debug=True,
|
||||
on_startup=[dev_start_up],
|
||||
on_shutdown=[shutdown],
|
||||
middleware=middleware,
|
||||
routes=routes,
|
||||
)
|
||||
|
|
|
@ -9,7 +9,6 @@ from orm.shout import ShoutReactionsFollower
|
|||
from orm.topic import TopicFollower
|
||||
from orm.user import User
|
||||
from orm.shout import Shout
|
||||
# from services.stat.reacted import ReactedStorage
|
||||
|
||||
ts = datetime.now(tz=timezone.utc)
|
||||
|
||||
|
@ -84,7 +83,6 @@ def migrate_ratings(session, entry, reaction_dict):
|
|||
)
|
||||
session.add(following2)
|
||||
session.add(rr)
|
||||
# await ReactedStorage.react(rr)
|
||||
|
||||
except Exception as e:
|
||||
print("[migration] comment rating error: %r" % re_reaction_dict)
|
||||
|
|
|
@ -9,7 +9,6 @@ from orm.reaction import Reaction, ReactionKind
|
|||
from orm.shout import Shout, ShoutTopic, ShoutReactionsFollower
|
||||
from orm.user import User
|
||||
from orm.topic import TopicFollower, Topic
|
||||
# from services.stat.reacted import ReactedStorage
|
||||
from services.stat.viewed import ViewedStorage
|
||||
import re
|
||||
|
||||
|
@ -365,7 +364,6 @@ async def content_ratings_to_reactions(entry, slug):
|
|||
else:
|
||||
rea = Reaction.create(**reaction_dict)
|
||||
session.add(rea)
|
||||
# await ReactedStorage.react(rea)
|
||||
# shout_dict['ratings'].append(reaction_dict)
|
||||
|
||||
session.commit()
|
||||
|
|
|
@ -101,7 +101,7 @@ class User(Base):
|
|||
session.commit()
|
||||
User.default_user = default
|
||||
|
||||
async def get_permission(self):
|
||||
def get_permission(self):
|
||||
scope = {}
|
||||
for role in self.roles:
|
||||
for p in role.permissions:
|
||||
|
|
|
@ -24,13 +24,15 @@ from settings import SESSION_TOKEN_HEADER, FRONTEND_URL
|
|||
@mutation.field("getSession")
|
||||
@login_required
|
||||
async def get_current_user(_, info):
|
||||
user = info.context["request"].user
|
||||
token = info.context["request"].headers.get("Authorization")
|
||||
if user and token:
|
||||
user.lastSeen = datetime.now(tz=timezone.utc)
|
||||
context_user = info.context["request"].user
|
||||
token = info.context["request"].headers.get(SESSION_TOKEN_HEADER)
|
||||
|
||||
if context_user and token:
|
||||
with local_session() as session:
|
||||
session.add(user)
|
||||
user = session.query(User).where(User.id == context_user.user_id).one()
|
||||
user.lastSeen = datetime.now(tz=timezone.utc)
|
||||
session.commit()
|
||||
|
||||
return {
|
||||
"token": token,
|
||||
"user": user,
|
||||
|
|
|
@ -40,11 +40,10 @@ def add_author_stat_columns(q):
|
|||
# func.sum(user_rating_aliased.value).label('rating_stat')
|
||||
# )
|
||||
|
||||
# q = q.add_columns(literal(0).label('commented_stat'))
|
||||
|
||||
q = q.outerjoin(Reaction, and_(Reaction.createdBy == User.id, Reaction.body.is_not(None))).add_columns(
|
||||
func.count(distinct(Reaction.id)).label('commented_stat')
|
||||
)
|
||||
q = q.add_columns(literal(0).label('commented_stat'))
|
||||
# q = q.outerjoin(Reaction, and_(Reaction.createdBy == User.id, Reaction.body.is_not(None))).add_columns(
|
||||
# func.count(distinct(Reaction.id)).label('commented_stat')
|
||||
# )
|
||||
|
||||
q = q.group_by(User.id)
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@ async def update_topic(_, _info, inp):
|
|||
return {"topic": topic}
|
||||
|
||||
|
||||
async def topic_follow(user, slug):
|
||||
def topic_follow(user, slug):
|
||||
with local_session() as session:
|
||||
topic = session.query(Topic).where(Topic.slug == slug).one()
|
||||
|
||||
|
@ -124,7 +124,7 @@ async def topic_follow(user, slug):
|
|||
session.commit()
|
||||
|
||||
|
||||
async def topic_unfollow(user, slug):
|
||||
def topic_unfollow(user, slug):
|
||||
with local_session() as session:
|
||||
sub = (
|
||||
session.query(TopicFollower).join(Topic).filter(
|
||||
|
|
Loading…
Reference in New Issue
Block a user