undo team gets deleted if user is last team member
remove logic behind deleting last team_member
This commit is contained in:
parent
d2608ae643
commit
8c1dcaea5f
|
@ -115,13 +115,13 @@ func (tm *TeamMember) CheckMembership(s *xorm.Session) (exists bool, err error)
|
||||||
return exists, err
|
return exists, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tm *TeamMember) GetMemberCount(s *xorm.Session) (memberCount int, err error) {
|
func (tm *TeamMember) GetMemberCount(s *xorm.Session) (memberCount int64, err error) {
|
||||||
members := []TeamMember{}
|
member := TeamMember{}
|
||||||
err = s.
|
memberCount, err = s.
|
||||||
Where("team_id = ?", tm.TeamID).
|
Where("team_id = ?", tm.TeamID).
|
||||||
Cols("user_id").
|
Cols("user_id").
|
||||||
Find(&members)
|
Count(&member)
|
||||||
return len(members), err
|
return memberCount, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update toggles a team member's admin status
|
// Update toggles a team member's admin status
|
||||||
|
|
|
@ -212,7 +212,8 @@ func HandleCallback(c echo.Context) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Could not proceed with group routine %v", err)
|
log.Errorf("Could not proceed with group routine %v", err)
|
||||||
}
|
}
|
||||||
errs = SignOutFromOrDeleteTeamsByID(s, u, utils.NotIn(oldOidcTeams, oidcTeams))
|
errs = SignOutFromTeamsByID(s, u, utils.NotIn(oldOidcTeams, oidcTeams))
|
||||||
|
log.Errorf("%v", errs)
|
||||||
for _, err := range errs {
|
for _, err := range errs {
|
||||||
log.Errorf("Found Error while signing out from teams %v", err)
|
log.Errorf("Found Error while signing out from teams %v", err)
|
||||||
}
|
}
|
||||||
|
@ -250,27 +251,23 @@ func AssignOrCreateUserToTeams(s *xorm.Session, u *user.User, teamData []models.
|
||||||
return oidcTeams, err
|
return oidcTeams, err
|
||||||
|
|
||||||
}
|
}
|
||||||
func SignOutFromOrDeleteTeamsByID(s *xorm.Session, u *user.User, teamIDs []int64) (errs []error) {
|
func SignOutFromTeamsByID(s *xorm.Session, u *user.User, teamIDs []int64) (errs []error) {
|
||||||
errs = []error{}
|
errs = []error{}
|
||||||
for _, teamID := range teamIDs {
|
for _, teamID := range teamIDs {
|
||||||
tm := models.TeamMember{TeamID: teamID, UserID: u.ID, Username: u.Username}
|
tm := models.TeamMember{TeamID: teamID, UserID: u.ID, Username: u.Username}
|
||||||
exists, _ := tm.CheckMembership(s)
|
exists, err := tm.CheckMembership(s)
|
||||||
memberCount, _ := tm.GetMemberCount(s)
|
if err != nil {
|
||||||
|
errs = append(errs, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
if !exists {
|
if !exists {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
err := tm.Delete(s, u)
|
err = tm.Delete(s, u)
|
||||||
// if you cannot delete the team_member
|
// if you cannot delete the team_member
|
||||||
if err != nil || memberCount <= 1 {
|
if err != nil {
|
||||||
team, err := models.GetTeamByID(s, teamID)
|
errs = append(errs, err)
|
||||||
if err != nil {
|
continue
|
||||||
errs = append(errs, err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
err = team.Delete(s, u)
|
|
||||||
if err != nil {
|
|
||||||
errs = append(errs, err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return errs
|
return errs
|
||||||
|
|
Loading…
Reference in New Issue
Block a user