|
7 | 7 | from todo.repositories.team_creation_invite_code_repository import TeamCreationInviteCodeRepository
|
8 | 8 | from todo.repositories.team_repository import TeamRepository, UserTeamDetailsRepository
|
9 | 9 | from todo.constants.messages import AppMessages
|
| 10 | +from todo.constants.role import RoleName |
10 | 11 | from todo.utils.invite_code_utils import generate_invite_code
|
11 | 12 | from typing import List
|
12 | 13 | from todo.models.audit_log import AuditLogModel
|
@@ -108,16 +109,19 @@ def create_team(cls, dto: CreateTeamDTO, created_by_user_id: str) -> CreateTeamR
|
108 | 109 |
|
109 | 110 | team_id_str = str(created_team.id)
|
110 | 111 |
|
111 |
| - cls._assign_user_role(created_by_user_id, team_id_str, "member") |
112 |
| - cls._assign_user_role(created_by_user_id, team_id_str, "admin") |
113 |
| - 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} |
114 | 117 |
|
115 | 118 | for member_id in member_ids:
|
116 |
| - if member_id != created_by_user_id: |
117 |
| - 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) |
118 | 122 |
|
119 |
| - if dto.poc_id and dto.poc_id != created_by_user_id: |
120 |
| - cls._assign_user_role(dto.poc_id, team_id_str, "member") |
| 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) |
121 | 125 |
|
122 | 126 | # Audit log for team creation
|
123 | 127 | AuditLogRepository.create(
|
@@ -286,7 +290,7 @@ def join_team_by_invite_code(cls, invite_code: str, user_id: str) -> TeamDTO:
|
286 | 290 | UserTeamDetailsRepository.create(user_team)
|
287 | 291 |
|
288 | 292 | # NEW: Assign default member role using new role system
|
289 |
| - cls._assign_user_role(user_id, str(team.id), "member") |
| 293 | + cls._assign_user_role(user_id, str(team.id), RoleName.MEMBER.value) |
290 | 294 |
|
291 | 295 | # Audit log for team join
|
292 | 296 | AuditLogRepository.create(
|
@@ -446,7 +450,7 @@ def add_team_members(cls, team_id: str, member_ids: List[str], added_by_user_id:
|
446 | 450 |
|
447 | 451 | # NEW: Assign default member roles using new role system
|
448 | 452 | for member_id in member_ids:
|
449 |
| - cls._assign_user_role(member_id, team_id, "member") |
| 453 | + cls._assign_user_role(member_id, team_id, RoleName.MEMBER.value) |
450 | 454 |
|
451 | 455 | # Audit log for team member addition
|
452 | 456 | for member_id in member_ids:
|
|
0 commit comments