Skip to content

Commit

Permalink
Merge pull request #3895 from mathesar-foundation/filter_dbs
Browse files Browse the repository at this point in the history
Filter dbs for admin and standard mathesar users
  • Loading branch information
pavish authored Sep 30, 2024
2 parents b2e04e0 + cd4d8e7 commit 999de43
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions mathesar/rpc/databases/configured.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import TypedDict

from modernrpc.core import rpc_method
from modernrpc.core import rpc_method, REQUEST_KEY
from modernrpc.auth.basic import http_basic_auth_login_required

from mathesar.models.base import Database
Expand Down Expand Up @@ -44,10 +44,18 @@ def list_(*, server_id: int = None, **kwargs) -> list[ConfiguredDatabaseInfo]:
Returns:
A list of database details.
"""
if server_id is not None:
database_qs = Database.objects.filter(server__id=server_id)
user = kwargs.get(REQUEST_KEY).user
if user.is_superuser:
database_qs = Database.objects.filter(
server__id=server_id
) if server_id is not None else Database.objects.all()
else:
database_qs = Database.objects.all()
database_qs = Database.objects.filter(
server__id=server_id,
userdatabaserolemap__user=user
) if server_id is not None else Database.objects.filter(
userdatabaserolemap__user=user
)

return [ConfiguredDatabaseInfo.from_model(db_model) for db_model in database_qs]

Expand Down

0 comments on commit 999de43

Please sign in to comment.