This commit is contained in:
tonyrewin 2022-11-30 23:29:27 +03:00
commit 86401f5cb7
9 changed files with 23 additions and 23 deletions

View File

@ -123,7 +123,7 @@ def migrate_2stage(entry, id_map):
user_rating_dict = {
"value": rating_entry["value"],
"raterId": rater.id,
"rater": rater.id,
"user": user.id,
}

View File

@ -12,7 +12,7 @@ class CollabAuthor(Base):
id = None # type: ignore
collab = Column(ForeignKey("collab.id"), primary_key=True)
author = Column(ForeignKey("user.id"), primary_key=True)
accepted = Column(Boolean, default=False)
# accepted = Column(Boolean, default=False)
class Collab(Base):
@ -22,6 +22,6 @@ class Collab(Base):
body = Column(String, nullable=True, comment="Body")
pic = Column(String, nullable=True, comment="Picture")
authors = relationship(lambda: User, secondary=CollabAuthor.__tablename__)
invites = relationship(lambda: User, secondary=CollabInvited.__tablename__)
# invites = relationship(lambda: User, secondary=CollabInvited.__tablename__)
createdAt = Column(DateTime, default=datetime.now, comment="Created At")
chat = Column(String, unique=True, nullable=False)

View File

@ -10,7 +10,7 @@ class ShoutCollection(Base):
id = None # type: ignore
shout = Column(ForeignKey("shout.id"), primary_key=True)
collectionId = Column(ForeignKey("collection.id"), primary_key=True)
collection = Column(ForeignKey("collection.id"), primary_key=True)
class Collection(Base):

View File

@ -9,7 +9,7 @@ class CommunityFollower(Base):
id = None # type: ignore
follower = Column(ForeignKey("user.id"), primary_key=True)
communityId = Column(ForeignKey("community.id"), primary_key=True)
community = Column(ForeignKey("community.id"), primary_key=True)
joinedAt = Column(
DateTime, nullable=False, default=datetime.now, comment="Created at"
)

View File

@ -142,19 +142,19 @@ class Resource(Base):
class Permission(Base):
__tablename__ = "permission"
__table_args__ = (
UniqueConstraint("roleId", "operationId", "resourceId"),
UniqueConstraint("role", "operation", "resource"),
{"extend_existing": True},
)
roleId = Column(
role = Column(
ForeignKey("role.id", ondelete="CASCADE"), nullable=False, comment="Role"
)
operationId = Column(
operation = Column(
ForeignKey("operation.id", ondelete="CASCADE"),
nullable=False,
comment="Operation",
)
resourceId = Column(
resource = Column(
ForeignKey("resource.id", ondelete="CASCADE"),
nullable=False,
comment="Resource",
@ -164,11 +164,11 @@ class Permission(Base):
if __name__ == "__main__":
Base.metadata.create_all(engine)
ops = [
Permission(roleId=1, operationId=1, resourceId=1),
Permission(roleId=1, operationId=2, resourceId=1),
Permission(roleId=1, operationId=3, resourceId=1),
Permission(roleId=1, operationId=4, resourceId=1),
Permission(roleId=2, operationId=4, resourceId=1),
Permission(role=1, operation=1, resource=1),
Permission(role=1, operation=2, resource=1),
Permission(role=1, operation=3, resource=1),
Permission(role=1, operation=4, resource=1),
Permission(role=2, operation=4, resource=1),
]
global_session.add_all(ops)
global_session.commit()

View File

@ -20,7 +20,7 @@ class UserRating(Base):
__tablename__ = "user_rating"
id = None # type: ignore
raterId = Column(ForeignKey("user.id"), primary_key=True, index=True)
rater = Column(ForeignKey("user.id"), primary_key=True, index=True)
user = Column(ForeignKey("user.id"), primary_key=True, index=True)
value = Column(Integer)
@ -34,7 +34,7 @@ class UserRole(Base):
id = None # type: ignore
user = Column(ForeignKey("user.id"), primary_key=True, index=True)
roleId = Column(ForeignKey("role.id"), primary_key=True, index=True)
role = Column(ForeignKey("role.id"), primary_key=True, index=True)
class AuthorFollower(Base):
@ -104,9 +104,9 @@ class User(Base):
scope = {}
for role in self.roles:
for p in role.permissions:
if p.resourceId not in scope:
scope[p.resourceId] = set()
scope[p.resourceId].add(p.operationId)
if p.resource not in scope:
scope[p.resource] = set()
scope[p.resource].add(p.operation)
return scope

View File

@ -6,7 +6,7 @@ from base.orm import Base, local_session
class ViewedEntry(Base):
__tablename__ = "viewed"
viewerId = Column(ForeignKey("user.id"), index=True, default=1)
viewer = Column(ForeignKey("user.id"), index=True, default=1)
shout = Column(ForeignKey("shout.id"), index=True, default=1)
amount = Column(Integer, default=1)
createdAt = Column(

View File

@ -321,8 +321,8 @@ type Operation {
}
type Permission {
operationId: Int!
resourceId: Int!
operation: Int!
resource: Int!
}
type Role {

View File

@ -168,7 +168,7 @@ class ViewedStorage:
viewer = session.query(User).where(User.slug == viewer).one()
viewed = ViewedEntry.create(**{
"viewerId": viewer.id,
"viewer": viewer.id,
"shout": shout.id,
"amount": amount
})