Merge pull request #697 from CREDO23/implement-surfsense-docs-mentions

[Feat] Capture Google profile data, add user profile settings & document mentions picker improvements
This commit is contained in:
Rohan Verma 2026-01-14 13:19:10 -08:00 committed by GitHub
commit f3f52170a0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 1054 additions and 613 deletions

View file

@ -413,8 +413,17 @@ class NewChatMessage(BaseModel, TimestampMixin):
index=True,
)
# Relationship
# Track who sent this message (for shared chats)
author_id = Column(
UUID(as_uuid=True),
ForeignKey("user.id", ondelete="SET NULL"),
nullable=True,
index=True,
)
# Relationships
thread = relationship("NewChatThread", back_populates="messages")
author = relationship("User")
class Document(BaseModel, TimestampMixin):
@ -876,6 +885,10 @@ if config.AUTH_TYPE == "GOOGLE":
)
pages_used = Column(Integer, nullable=False, default=0, server_default="0")
# User profile from OAuth
display_name = Column(String, nullable=True)
avatar_url = Column(String, nullable=True)
else:
class User(SQLAlchemyBaseUserTableUUID, Base):
@ -909,6 +922,10 @@ else:
)
pages_used = Column(Integer, nullable=False, default=0, server_default="0")
# User profile (can be set manually for non-OAuth users)
display_name = Column(String, nullable=True)
avatar_url = Column(String, nullable=True)
engine = create_async_engine(DATABASE_URL)
async_session_maker = async_sessionmaker(engine, expire_on_commit=False)