| @@ -21,67 +21,67 @@ module ProjectOperable | |||
| end | |||
| def add_member!(user_id, role_name='Developer') | |||
| if self.owner.is_a?(Organization) | |||
| case role_name | |||
| when 'Manager' | |||
| # 构建相应的团队 | |||
| team = self.owner.teams.admin.take | |||
| if team.nil? | |||
| team = Team.build(self.user_id, 'admin', '管理员', '', 'admin', false, false) | |||
| gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| end | |||
| # 设置项目在团队中的访问权限 | |||
| team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # 新增对应的团队成员 | |||
| team_user = TeamUser.build(self.user_id, user_id, team.id) | |||
| $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # 确保组织成员中有该用户 | |||
| OrganizationUser.build(self.user_id, user_id) | |||
| when 'Developer' | |||
| # 构建相应的团队 | |||
| team = self.owner.teams.write.take | |||
| if team.nil? | |||
| team = Team.build(self.user_id, 'developer', '开发者', '', 'write', false, false) | |||
| gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| end | |||
| # 设置项目在团队中的访问权限 | |||
| team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # 新增对应的团队成员 | |||
| team_user = TeamUser.build(self.user_id, user_id, team.id) | |||
| $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # 确保组织成员中有该用户 | |||
| OrganizationUser.build(self.user_id, user_id) | |||
| when 'Reporter' | |||
| # 构建相应的团队 | |||
| team = self.owner.teams.read.take | |||
| if team.nil? | |||
| team = Team.build(self.user_id, 'reporter', '报告者', '', 'read', false, false) | |||
| gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| end | |||
| # 设置项目在团队中的访问权限 | |||
| team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # 新增对应的团队成员 | |||
| team_user = TeamUser.build(self.user_id, user_id, team.id) | |||
| $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # 确保组织成员中有该用户 | |||
| OrganizationUser.build(self.user_id, user_id) | |||
| end | |||
| end | |||
| # if self.owner.is_a?(Organization) | |||
| # case role_name | |||
| # when 'Manager' | |||
| # # 构建相应的团队 | |||
| # team = self.owner.teams.admin.take | |||
| # if team.nil? | |||
| # team = Team.build(self.user_id, 'admin', '管理员', '', 'admin', false, false) | |||
| # gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| # team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| # end | |||
| # | |||
| # # 设置项目在团队中的访问权限 | |||
| # team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| # tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # | |||
| # # 新增对应的团队成员 | |||
| # team_user = TeamUser.build(self.user_id, user_id, team.id) | |||
| # $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # | |||
| # # 确保组织成员中有该用户 | |||
| # OrganizationUser.build(self.user_id, user_id) | |||
| # when 'Developer' | |||
| # # 构建相应的团队 | |||
| # team = self.owner.teams.write.take | |||
| # if team.nil? | |||
| # team = Team.build(self.user_id, 'developer', '开发者', '', 'write', false, false) | |||
| # gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| # team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| # end | |||
| # | |||
| # # 设置项目在团队中的访问权限 | |||
| # team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| # tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # | |||
| # # 新增对应的团队成员 | |||
| # team_user = TeamUser.build(self.user_id, user_id, team.id) | |||
| # $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # | |||
| # # 确保组织成员中有该用户 | |||
| # OrganizationUser.build(self.user_id, user_id) | |||
| # when 'Reporter' | |||
| # # 构建相应的团队 | |||
| # team = self.owner.teams.read.take | |||
| # if team.nil? | |||
| # team = Team.build(self.user_id, 'reporter', '报告者', '', 'read', false, false) | |||
| # gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| # team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| # end | |||
| # | |||
| # # 设置项目在团队中的访问权限 | |||
| # team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| # tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # | |||
| # # 新增对应的团队成员 | |||
| # team_user = TeamUser.build(self.user_id, user_id, team.id) | |||
| # $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # | |||
| # # 确保组织成员中有该用户 | |||
| # OrganizationUser.build(self.user_id, user_id) | |||
| # end | |||
| # end | |||
| member = members.create!(user_id: user_id, team_user_id: team_user&.id) | |||
| set_developer_role(member, role_name) | |||
| end | |||
| @@ -116,71 +116,71 @@ module ProjectOperable | |||
| def change_member_role!(user_id, role) | |||
| member = self.member(user_id) | |||
| # 所有者为组织,并且该用户属于组织成员 | |||
| if self.owner.is_a?(Organization) && member.team_user.present? | |||
| case role&.name | |||
| when 'Manager' | |||
| # 构建相应的团队 | |||
| team = self.owner.teams.admin.take | |||
| if team.nil? | |||
| team = Team.build(self.user_id, 'admin', '管理员', '', 'admin', false, false) | |||
| gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| end | |||
| # 设置项目在团队中的访问权限 | |||
| team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # 更改对应的团队成员 | |||
| team_user = member.team_user | |||
| $gitea_client.delete_teams_members_by_id_username(team_user.team.gtid, team_user.user&.login) rescue nil # 移除旧的 | |||
| $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| team_user.update_attributes!({team_id: team.id}) unless team.team_users.exists?(user_id: member.user_id) | |||
| # 确保组织成员中有该用户 | |||
| OrganizationUser.build(self.user_id, user_id) | |||
| when 'Developer' | |||
| # 构建相应的团队 | |||
| team = self.owner.teams.write.take | |||
| if team.nil? | |||
| team = Team.build(self.user_id, 'developer', '开发者', '', 'write', false, false) | |||
| gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| end | |||
| # 设置项目在团队中的访问权限 | |||
| team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # 更改对应的团队成员 | |||
| team_user = member.team_user | |||
| $gitea_client.delete_teams_members_by_id_username(team_user.team.gtid, team_user.user&.login) rescue nil # 移除旧的 | |||
| $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| team_user.update_attributes!({team_id: team.id}) unless team.team_users.exists?(user_id: member.user_id) | |||
| OrganizationUser.build(self.user_id, user_id) | |||
| when 'Reporter' | |||
| # 构建相应的团队 | |||
| team = self.owner.teams.read.take | |||
| if team.nil? | |||
| team = Team.build(self.user_id, 'reporter', '报告者', '', 'read', false, false) | |||
| gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| end | |||
| # 设置项目在团队中的访问权限 | |||
| team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # 更改对应的团队成员 | |||
| team_user = member.team_user | |||
| $gitea_client.delete_teams_members_by_id_username(team_user.team.gtid, team_user.user&.login) rescue nil # 移除旧的 | |||
| $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| team_user.update_attributes!({team_id: team.id}) unless team.team_users.exists?(user_id: member.user_id) | |||
| # 确保组织成员中有该用户 | |||
| OrganizationUser.build(self.user_id, user_id) | |||
| end | |||
| end | |||
| # if self.owner.is_a?(Organization) && member.team_user.present? | |||
| # case role&.name | |||
| # when 'Manager' | |||
| # # 构建相应的团队 | |||
| # team = self.owner.teams.admin.take | |||
| # if team.nil? | |||
| # team = Team.build(self.user_id, 'admin', '管理员', '', 'admin', false, false) | |||
| # gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| # team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| # end | |||
| # | |||
| # # 设置项目在团队中的访问权限 | |||
| # team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| # tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # | |||
| # # 更改对应的团队成员 | |||
| # team_user = member.team_user | |||
| # $gitea_client.delete_teams_members_by_id_username(team_user.team.gtid, team_user.user&.login) rescue nil # 移除旧的 | |||
| # $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # team_user.update_attributes!({team_id: team.id}) unless team.team_users.exists?(user_id: member.user_id) | |||
| # | |||
| # # 确保组织成员中有该用户 | |||
| # OrganizationUser.build(self.user_id, user_id) | |||
| # when 'Developer' | |||
| # # 构建相应的团队 | |||
| # team = self.owner.teams.write.take | |||
| # if team.nil? | |||
| # team = Team.build(self.user_id, 'developer', '开发者', '', 'write', false, false) | |||
| # gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| # team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| # end | |||
| # # 设置项目在团队中的访问权限 | |||
| # team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| # $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # | |||
| # # 更改对应的团队成员 | |||
| # team_user = member.team_user | |||
| # $gitea_client.delete_teams_members_by_id_username(team_user.team.gtid, team_user.user&.login) rescue nil # 移除旧的 | |||
| # $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # team_user.update_attributes!({team_id: team.id}) unless team.team_users.exists?(user_id: member.user_id) | |||
| # | |||
| # OrganizationUser.build(self.user_id, user_id) | |||
| # when 'Reporter' | |||
| # # 构建相应的团队 | |||
| # team = self.owner.teams.read.take | |||
| # if team.nil? | |||
| # team = Team.build(self.user_id, 'reporter', '报告者', '', 'read', false, false) | |||
| # gteam = $gitea_client.post_orgs_teams_by_org(self.owner.login, {body: team.to_gitea_hash.to_json}) rescue nil | |||
| # team.update_attributes!({gtid: gteam["id"]}) unless gteam.nil? | |||
| # end | |||
| # | |||
| # # 设置项目在团队中的访问权限 | |||
| # team_project = TeamProject.build(self.user_id, team.id, self.id) | |||
| # tp_result = $gitea_client.put_teams_repos_by_id_org_repo(team.gtid, self.owner.login, self.identifier) rescue nil | |||
| # | |||
| # # 更改对应的团队成员 | |||
| # team_user = member.team_user | |||
| # $gitea_client.delete_teams_members_by_id_username(team_user.team.gtid, team_user.user&.login) rescue nil # 移除旧的 | |||
| # $gitea_client.put_teams_members_by_id_username(team&.gtid, team_user.user&.login) rescue nil # 新增新的 | |||
| # team_user.update_attributes!({team_id: team.id}) unless team.team_users.exists?(user_id: member.user_id) | |||
| # | |||
| # # 确保组织成员中有该用户 | |||
| # OrganizationUser.build(self.user_id, user_id) | |||
| # end | |||
| # end | |||
| member.member_roles.last.update_attributes!(role: role) | |||
| end | |||