diff options
| author | Frederick Muriuki Muriithi | 2026-05-01 11:01:12 -0500 |
|---|---|---|
| committer | Frederick Muriuki Muriithi | 2026-05-01 11:01:12 -0500 |
| commit | 3443869f9a6435ee37f20c983a32e3e94d7290cd (patch) | |
| tree | 69166af413df65088a578bacd61d451da7be0c2e /gn_auth/auth/authorisation | |
| parent | 15c417b4c69343a0e085d0fd1c41d98ec81a1011 (diff) | |
| download | gn-auth-3443869f9a6435ee37f20c983a32e3e94d7290cd.tar.gz | |
Ensure ALL users with access to the resource are actually listed.
Diffstat (limited to 'gn_auth/auth/authorisation')
| -rw-r--r-- | gn_auth/auth/authorisation/resources/views.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gn_auth/auth/authorisation/resources/views.py b/gn_auth/auth/authorisation/resources/views.py index ab44795..f7f2ee3 100644 --- a/gn_auth/auth/authorisation/resources/views.py +++ b/gn_auth/auth/authorisation/resources/views.py @@ -274,9 +274,11 @@ def resource_users(resource_id: UUID): **users_n_roles, user_id: { "user": user, - "user_group": Group( - UUID(row["group_id"]), row["group_name"], - json.loads(row["group_metadata"])), + "user_group": ( + Group(UUID(row["group_id"]), + row["group_name"], + json.loads(row["group_metadata"])) + if bool(row["group_id"]) else False) , "roles": users_n_roles.get( user_id, {}).get("roles", tuple()) + (role,) } @@ -284,7 +286,7 @@ def resource_users(resource_id: UUID): cursor.execute( "SELECT g.*, u.*, r.* " "FROM groups AS g INNER JOIN group_users AS gu " - "ON g.group_id=gu.group_id INNER JOIN users AS u " + "ON g.group_id=gu.group_id RIGHT JOIN users AS u " "ON gu.user_id=u.user_id INNER JOIN user_roles AS ur " "ON u.user_id=ur.user_id INNER JOIN roles AS r " "ON ur.role_id=r.role_id " @@ -297,7 +299,8 @@ def resource_users(resource_id: UUID): results = ( { "user": asdict(row["user"]), - "user_group": asdict(row["user_group"]), + "user_group": ( + asdict(row["user_group"]) if row["user_group"] else False), "roles": tuple(asdict(role) for role in row["roles"]) } for row in ( user_row for user_id, user_row |
