create default user; minor fixes
This commit is contained in:
@@ -14,6 +14,7 @@ __all__ = ["User", "Role", "Community", "Operation", "Permission", "Message", "S
|
||||
Base.metadata.create_all(engine)
|
||||
Operation.init_table()
|
||||
Resource.init_table()
|
||||
User.init_table()
|
||||
Community.init_table()
|
||||
Role.init_table()
|
||||
|
||||
|
@@ -33,7 +33,7 @@ class Base(declarative_base()):
|
||||
@classmethod
|
||||
def create(cls: Generic[T], **kwargs) -> Generic[T]:
|
||||
instance = cls(**kwargs)
|
||||
return instance.save(session)
|
||||
return instance.save()
|
||||
|
||||
def save(self) -> Generic[T]:
|
||||
with local_session() as session:
|
||||
|
@@ -18,14 +18,11 @@ class Community(Base):
|
||||
def init_table():
|
||||
with local_session() as session:
|
||||
default = session.query(Community).filter(Community.slug == "default").first()
|
||||
if default:
|
||||
Community.default_community = default
|
||||
return
|
||||
|
||||
default = Community.create(
|
||||
name = "default",
|
||||
slug = "default",
|
||||
createdBy = 0
|
||||
)
|
||||
if not default:
|
||||
default = Community.create(
|
||||
name = "default",
|
||||
slug = "default",
|
||||
createdBy = 0 #TODO: use default user
|
||||
)
|
||||
|
||||
Community.default_community = default
|
||||
|
17
orm/user.py
17
orm/user.py
@@ -4,9 +4,8 @@ from datetime import datetime
|
||||
from sqlalchemy import Table, Column, Integer, String, ForeignKey, Boolean, DateTime, JSON as JSONType
|
||||
from sqlalchemy.orm import relationship, selectinload
|
||||
|
||||
from orm import RoleStorage
|
||||
from orm.base import Base, local_session
|
||||
from orm.rbac import Role
|
||||
from orm.rbac import Role, RoleStorage
|
||||
from orm.topic import Topic
|
||||
|
||||
import asyncio
|
||||
@@ -62,6 +61,20 @@ class User(Base):
|
||||
roles = relationship(lambda: Role, secondary=UserRole.__tablename__)
|
||||
topics = relationship(lambda: Topic, secondary=UserTopics)
|
||||
old_id: str = Column(String, nullable = True)
|
||||
|
||||
@staticmethod
|
||||
def init_table():
|
||||
with local_session() as session:
|
||||
default = session.query(User).filter(User.slug == "default").first()
|
||||
if not default:
|
||||
default = User.create(
|
||||
id = 0,
|
||||
email = "discours@discours.io",
|
||||
username = "discours",
|
||||
slug = "default"
|
||||
)
|
||||
|
||||
User.default_user = default
|
||||
|
||||
async def get_permission(self):
|
||||
scope = {}
|
||||
|
Reference in New Issue
Block a user