Skip to content

Commit 24306d1

Browse files
committed
Fix comments and docstrings
1 parent ea840a6 commit 24306d1

2 files changed

Lines changed: 8 additions & 20 deletions

File tree

src/dstack/_internal/server/security/permissions.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,10 @@ async def __call__(
101101

102102
class ProjectMemberOrPublicAccess:
103103
"""
104-
Allows access to project details for:
105-
1. Project members (existing behavior)
106-
2. Any authenticated user if the project is public
104+
Allows access to project for:
105+
- Global admins
106+
- Project members
107+
- Any authenticated user if the project is public
107108
"""
108109

109110
async def __call__(
@@ -121,20 +122,16 @@ async def __call__(
121122
if project is None:
122123
raise error_not_found()
123124

124-
# Global admins always have access
125125
if user.global_role == GlobalRole.ADMIN:
126126
return user, project
127127

128-
# Check if user is a project member
129128
project_role = get_user_project_role(user=user, project=project)
130129
if project_role is not None:
131130
return user, project
132131

133-
# If not a member, check if project is public
134132
if project.is_public:
135133
return user, project
136134

137-
# Neither member nor public project
138135
raise error_forbidden()
139136

140137

src/dstack/_internal/server/services/projects.py

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ async def list_user_projects(
5555
) -> List[Project]:
5656
"""
5757
Returns projects where the user is a member.
58-
For backward compatibility - use list_user_accessible_projects for public project discovery.
5958
"""
6059
if user.global_role == GlobalRole.ADMIN:
6160
projects = await list_project_models(session=session)
@@ -82,7 +81,7 @@ async def list_user_accessible_projects(
8281
projects = await list_project_models(session=session)
8382
else:
8483
member_projects = await list_user_project_models(session=session, user=user)
85-
public_projects = await _list_public_non_member_project_models(session=session, user=user)
84+
public_projects = await list_public_non_member_project_models(session=session, user=user)
8685
projects = member_projects + public_projects
8786

8887
projects = sorted(projects, key=lambda p: p.created_at)
@@ -264,15 +263,7 @@ async def list_user_project_models(
264263
include_members: bool = False,
265264
) -> List[ProjectModel]:
266265
"""
267-
Get projects for a user where they are a member.
268-
269-
Args:
270-
session: Database session
271-
user: User model
272-
include_members: Whether to join and load project members
273-
274-
Returns:
275-
List of ProjectModel instances where user is a member
266+
List project models for a user where they are a member.
276267
"""
277268
options = []
278269
if include_members:
@@ -289,12 +280,12 @@ async def list_user_project_models(
289280
return list(res.scalars().unique().all())
290281

291282

292-
async def _list_public_non_member_project_models(
283+
async def list_public_non_member_project_models(
293284
session: AsyncSession,
294285
user: UserModel,
295286
) -> List[ProjectModel]:
296287
"""
297-
Get public projects where user is NOT a member.
288+
List public project models where user is NOT a member.
298289
"""
299290
res = await session.execute(
300291
select(ProjectModel).where(

0 commit comments

Comments
 (0)