|
|
@@ -25,7 +25,7 @@ func init() {
|
|
|
func CreateTeam(cmd *m.CreateTeamCommand) error {
|
|
|
return inTransaction(func(sess *DBSession) error {
|
|
|
|
|
|
- if isNameTaken, err := isTeamNameTaken(cmd.Name, 0, sess); err != nil {
|
|
|
+ if isNameTaken, err := isTeamNameTaken(cmd.OrgId, cmd.Name, 0, sess); err != nil {
|
|
|
return err
|
|
|
} else if isNameTaken {
|
|
|
return m.ErrTeamNameTaken
|
|
|
@@ -50,7 +50,7 @@ func CreateTeam(cmd *m.CreateTeamCommand) error {
|
|
|
func UpdateTeam(cmd *m.UpdateTeamCommand) error {
|
|
|
return inTransaction(func(sess *DBSession) error {
|
|
|
|
|
|
- if isNameTaken, err := isTeamNameTaken(cmd.Name, cmd.Id, sess); err != nil {
|
|
|
+ if isNameTaken, err := isTeamNameTaken(cmd.OrgId, cmd.Name, cmd.Id, sess); err != nil {
|
|
|
return err
|
|
|
} else if isNameTaken {
|
|
|
return m.ErrTeamNameTaken
|
|
|
@@ -80,20 +80,20 @@ func UpdateTeam(cmd *m.UpdateTeamCommand) error {
|
|
|
|
|
|
func DeleteTeam(cmd *m.DeleteTeamCommand) error {
|
|
|
return inTransaction(func(sess *DBSession) error {
|
|
|
- if res, err := sess.Query("SELECT 1 from team WHERE id=?", cmd.Id); err != nil {
|
|
|
+ if res, err := sess.Query("SELECT 1 from team WHERE org_id=? and id=?", cmd.OrgId, cmd.Id); err != nil {
|
|
|
return err
|
|
|
} else if len(res) != 1 {
|
|
|
return m.ErrTeamNotFound
|
|
|
}
|
|
|
|
|
|
deletes := []string{
|
|
|
- "DELETE FROM team_member WHERE team_id = ?",
|
|
|
- "DELETE FROM team WHERE id = ?",
|
|
|
- "DELETE FROM dashboard_acl WHERE team_id = ?",
|
|
|
+ "DELETE FROM team_member WHERE org_id=? and team_id = ?",
|
|
|
+ "DELETE FROM team WHERE org_id=? and id = ?",
|
|
|
+ "DELETE FROM dashboard_acl WHERE org_id=? and team_id = ?",
|
|
|
}
|
|
|
|
|
|
for _, sql := range deletes {
|
|
|
- _, err := sess.Exec(sql, cmd.Id)
|
|
|
+ _, err := sess.Exec(sql, cmd.OrgId, cmd.Id)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -102,9 +102,9 @@ func DeleteTeam(cmd *m.DeleteTeamCommand) error {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-func isTeamNameTaken(name string, existingId int64, sess *DBSession) (bool, error) {
|
|
|
+func isTeamNameTaken(orgId int64, name string, existingId int64, sess *DBSession) (bool, error) {
|
|
|
var team m.Team
|
|
|
- exists, err := sess.Where("name=?", name).Get(&team)
|
|
|
+ exists, err := sess.Where("org_id=? and name=?", orgId, name).Get(&team)
|
|
|
|
|
|
if err != nil {
|
|
|
return false, nil
|
|
|
@@ -128,6 +128,7 @@ func SearchTeams(query *m.SearchTeamsQuery) error {
|
|
|
|
|
|
sql.WriteString(`select
|
|
|
team.id as id,
|
|
|
+ team.org_id,
|
|
|
team.name as name,
|
|
|
team.email as email,
|
|
|
(select count(*) from team_member where team_member.team_id = team.id) as member_count
|
|
|
@@ -176,7 +177,7 @@ func SearchTeams(query *m.SearchTeamsQuery) error {
|
|
|
|
|
|
func GetTeamById(query *m.GetTeamByIdQuery) error {
|
|
|
var team m.Team
|
|
|
- exists, err := x.Id(query.Id).Get(&team)
|
|
|
+ exists, err := x.Where("org_id=? and id=?", query.OrgId, query.Id).Get(&team)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -194,7 +195,7 @@ func GetTeamsByUser(query *m.GetTeamsByUserQuery) error {
|
|
|
|
|
|
sess := x.Table("team")
|
|
|
sess.Join("INNER", "team_member", "team.id=team_member.team_id")
|
|
|
- sess.Where("team_member.user_id=?", query.UserId)
|
|
|
+ sess.Where("team.org_id=? and team_member.user_id=?", query.OrgId, query.UserId)
|
|
|
|
|
|
err := sess.Find(&query.Result)
|
|
|
if err != nil {
|
|
|
@@ -206,13 +207,13 @@ func GetTeamsByUser(query *m.GetTeamsByUserQuery) error {
|
|
|
|
|
|
func AddTeamMember(cmd *m.AddTeamMemberCommand) error {
|
|
|
return inTransaction(func(sess *DBSession) error {
|
|
|
- if res, err := sess.Query("SELECT 1 from team_member WHERE team_id=? and user_id=?", cmd.TeamId, cmd.UserId); err != nil {
|
|
|
+ if res, err := sess.Query("SELECT 1 from team_member WHERE org_id=? and team_id=? and user_id=?", cmd.OrgId, cmd.TeamId, cmd.UserId); err != nil {
|
|
|
return err
|
|
|
} else if len(res) == 1 {
|
|
|
return m.ErrTeamMemberAlreadyAdded
|
|
|
}
|
|
|
|
|
|
- if res, err := sess.Query("SELECT 1 from team WHERE id=?", cmd.TeamId); err != nil {
|
|
|
+ if res, err := sess.Query("SELECT 1 from team WHERE org_id=? and id=?", cmd.OrgId, cmd.TeamId); err != nil {
|
|
|
return err
|
|
|
} else if len(res) != 1 {
|
|
|
return m.ErrTeamNotFound
|
|
|
@@ -233,8 +234,8 @@ func AddTeamMember(cmd *m.AddTeamMemberCommand) error {
|
|
|
|
|
|
func RemoveTeamMember(cmd *m.RemoveTeamMemberCommand) error {
|
|
|
return inTransaction(func(sess *DBSession) error {
|
|
|
- var rawSql = "DELETE FROM team_member WHERE team_id=? and user_id=?"
|
|
|
- _, err := sess.Exec(rawSql, cmd.TeamId, cmd.UserId)
|
|
|
+ var rawSql = "DELETE FROM team_member WHERE org_id=? and team_id=? and user_id=?"
|
|
|
+ _, err := sess.Exec(rawSql, cmd.OrgId, cmd.TeamId, cmd.UserId)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -247,7 +248,7 @@ func GetTeamMembers(query *m.GetTeamMembersQuery) error {
|
|
|
query.Result = make([]*m.TeamMemberDTO, 0)
|
|
|
sess := x.Table("team_member")
|
|
|
sess.Join("INNER", "user", fmt.Sprintf("team_member.user_id=%s.id", x.Dialect().Quote("user")))
|
|
|
- sess.Where("team_member.team_id=?", query.TeamId)
|
|
|
+ sess.Where("team_member.org_id=? and team_member.team_id=?", query.OrgId, query.TeamId)
|
|
|
sess.Cols("user.org_id", "team_member.team_id", "team_member.user_id", "user.email", "user.login")
|
|
|
sess.Asc("user.login", "user.email")
|
|
|
|