Compare commits

...

2 Commits

Author SHA1 Message Date
pablodanswer
4836a74e1e nit 2024-11-13 11:23:45 -08:00
pablodanswer
f7514011ef lenient counting 2024-11-13 10:32:51 -08:00
2 changed files with 12 additions and 8 deletions

View File

@@ -12,7 +12,6 @@ from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select
from sqlalchemy.orm import Session
from danswer.auth.invited_users import get_invited_users
from danswer.auth.schemas import UserRole
from danswer.db.api_key import get_api_key_email_pattern
from danswer.db.engine import get_async_session
@@ -36,18 +35,20 @@ def get_default_admin_user_emails() -> list[str]:
return get_default_admin_user_emails_fn()
def get_total_users_count(db_session: Session) -> int:
def get_total_active_users_count(db_session: Session) -> int:
"""
Returns the total number of users in the system.
This is the sum of users and invited users.
"""
user_count = (
db_session.query(User)
.filter(~User.email.endswith(get_api_key_email_pattern())) # type: ignore
.filter(
~User.email.endswith(get_api_key_email_pattern()), # type: ignore
User.has_web_login is True, # type: ignore
)
.count()
)
invited_users = len(get_invited_users())
return user_count + invited_users
return user_count
async def get_user_count() -> int:

View File

@@ -38,7 +38,7 @@ from danswer.configs.app_configs import SUPER_USERS
from danswer.configs.app_configs import VALID_EMAIL_DOMAINS
from danswer.configs.constants import AuthType
from danswer.db.api_key import is_api_key_email_address
from danswer.db.auth import get_total_users_count
from danswer.db.auth import get_total_active_users_count
from danswer.db.engine import CURRENT_TENANT_ID_CONTEXTVAR
from danswer.db.engine import get_session
from danswer.db.models import AccessToken
@@ -228,7 +228,7 @@ def bulk_invite_users(
logger.info("Registering tenant users")
fetch_ee_implementation_or_noop(
"danswer.server.tenants.billing", "register_tenant_users", None
)(CURRENT_TENANT_ID_CONTEXTVAR.get(), get_total_users_count(db_session))
)(CURRENT_TENANT_ID_CONTEXTVAR.get(), get_total_active_users_count(db_session))
if ENABLE_EMAIL_INVITES:
try:
for email in all_emails:
@@ -268,7 +268,10 @@ def remove_invited_user(
if MULTI_TENANT:
fetch_ee_implementation_or_noop(
"danswer.server.tenants.billing", "register_tenant_users", None
)(CURRENT_TENANT_ID_CONTEXTVAR.get(), get_total_users_count(db_session))
)(
CURRENT_TENANT_ID_CONTEXTVAR.get(),
get_total_active_users_count(db_session),
)
except Exception:
logger.error(
"Request to update number of seats taken in control plane failed. "