Skip to content

Commit e72fb99

Browse files
authored
Merge pull request #257 from Real-Dev-Squad/356/fix-role-assignment
fix: update user role assignment during team creation
2 parents 78078ab + 91cb3a6 commit e72fb99

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

todo/services/team_service.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from todo.repositories.team_creation_invite_code_repository import TeamCreationInviteCodeRepository
88
from todo.repositories.team_repository import TeamRepository, UserTeamDetailsRepository
99
from todo.constants.messages import AppMessages
10+
from todo.constants.role import RoleName
1011
from todo.utils.invite_code_utils import generate_invite_code
1112
from typing import List
1213
from todo.models.audit_log import AuditLogModel
@@ -108,14 +109,19 @@ def create_team(cls, dto: CreateTeamDTO, created_by_user_id: str) -> CreateTeamR
108109

109110
team_id_str = str(created_team.id)
110111

111-
cls._assign_user_role(created_by_user_id, team_id_str, "owner")
112+
cls._assign_user_role(created_by_user_id, team_id_str, RoleName.MEMBER.value)
113+
cls._assign_user_role(created_by_user_id, team_id_str, RoleName.ADMIN.value)
114+
cls._assign_user_role(created_by_user_id, team_id_str, RoleName.OWNER.value)
115+
116+
users_with_roles = {created_by_user_id}
112117

113118
for member_id in member_ids:
114-
if member_id != created_by_user_id:
115-
cls._assign_user_role(member_id, team_id_str, "member")
119+
if member_id not in users_with_roles:
120+
cls._assign_user_role(member_id, team_id_str, RoleName.MEMBER.value)
121+
users_with_roles.add(member_id)
116122

117-
if dto.poc_id and dto.poc_id != created_by_user_id:
118-
cls._assign_user_role(dto.poc_id, team_id_str, "owner")
123+
if dto.poc_id and dto.poc_id not in users_with_roles:
124+
cls._assign_user_role(dto.poc_id, team_id_str, RoleName.MEMBER.value)
119125

120126
# Audit log for team creation
121127
AuditLogRepository.create(
@@ -284,7 +290,7 @@ def join_team_by_invite_code(cls, invite_code: str, user_id: str) -> TeamDTO:
284290
UserTeamDetailsRepository.create(user_team)
285291

286292
# NEW: Assign default member role using new role system
287-
cls._assign_user_role(user_id, str(team.id), "member")
293+
cls._assign_user_role(user_id, str(team.id), RoleName.MEMBER.value)
288294

289295
# Audit log for team join
290296
AuditLogRepository.create(
@@ -444,7 +450,7 @@ def add_team_members(cls, team_id: str, member_ids: List[str], added_by_user_id:
444450

445451
# NEW: Assign default member roles using new role system
446452
for member_id in member_ids:
447-
cls._assign_user_role(member_id, team_id, "member")
453+
cls._assign_user_role(member_id, team_id, RoleName.MEMBER.value)
448454

449455
# Audit log for team member addition
450456
for member_id in member_ids:

0 commit comments

Comments
 (0)