Skip to content

Commit

Permalink
remove and add delta
Browse files Browse the repository at this point in the history
  • Loading branch information
jczhong84 committed Feb 23, 2023
1 parent d61080b commit 4d0703a
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 18 deletions.
15 changes: 3 additions & 12 deletions querybook/server/const/metastore.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ class DataTable(NamedTuple):
location: str = None

# Json arrays of partitions
partitions: list = []
earliest_partitions: list = None
latest_partitions: list = None
partitions: list[str] = []
earliest_partitions: list[str] = None
latest_partitions: list[str] = None

# Store the raw info here
raw_description: str = None
Expand All @@ -83,15 +83,6 @@ class DataColumn(NamedTuple):
tags: list[DataTag] = []


class UserGroup(NamedTuple):
name: str
display_name: str
description: str
email: str
# list of user names
members: list[str]


class DataTableWarningSeverity(Enum):
WARNING = 0
ERROR = 1
Expand Down
10 changes: 10 additions & 0 deletions querybook/server/const/user.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from typing import NamedTuple


class UserGroup(NamedTuple):
name: str
display_name: str
description: str
email: str
# list of user names
members: list[str]
25 changes: 19 additions & 6 deletions querybook/server/logic/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from app.db import with_session
from const.elasticsearch import ElasticsearchItem
from const.metastore import UserGroup
from const.user import UserGroup
from const.user_roles import UserRoleType
from lib.config import get_config_value
from lib.logger import get_logger
Expand Down Expand Up @@ -167,17 +167,30 @@ def create_or_update_user_group(user_group: UserGroup, commit=True, session=None
session=session,
)

# get new member user ids by name
new_group_members = (
# get current existing member user ids
existing_group_members = (
session.query(UserGroupMember).filter(UserGroupMember.gid == group.id).all()
)
existing_group_member_ids = [m.uid for m in existing_group_members]

# get the latest member user ids by name
group_members = (
session.query(User).filter(User.username.in_(user_group.members)).all()
)
group_member_ids = [m.id for m in group_members]

# delete old group members
session.query(UserGroupMember).filter(UserGroupMember.gid == group.id).delete()
# delete group members not in the group anymore
session.query(UserGroupMember).filter(UserGroupMember.gid == group.id).filter(
UserGroupMember.uid.notin_(group_member_ids)
).delete()

# add new group members
session.add_all(
[UserGroupMember(gid=group.id, uid=user.id) for user in new_group_members]
[
UserGroupMember(gid=group.id, uid=user_id)
for user_id in group_member_ids
if user_id not in existing_group_member_ids
]
)

if commit:
Expand Down

0 comments on commit 4d0703a

Please sign in to comment.