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
|
||||
}
|
||||
|
||||
func (tm *TeamMember) GetMemberCount(s *xorm.Session) (memberCount int, err error) {
|
||||
members := []TeamMember{}
|
||||
err = s.
|
||||
func (tm *TeamMember) GetMemberCount(s *xorm.Session) (memberCount int64, err error) {
|
||||
member := TeamMember{}
|
||||
memberCount, err = s.
|
||||
Where("team_id = ?", tm.TeamID).
|
||||
Cols("user_id").
|
||||
Find(&members)
|
||||
return len(members), err
|
||||
Count(&member)
|
||||
return memberCount, err
|
||||
}
|
||||
|
||||
// Update toggles a team member's admin status
|
||||
|
|
|
@ -212,7 +212,8 @@ func HandleCallback(c echo.Context) error {
|
|||
if err != nil {
|
||||
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 {
|
||||
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
|
||||
|
||||
}
|
||||
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{}
|
||||
for _, teamID := range teamIDs {
|
||||
tm := models.TeamMember{TeamID: teamID, UserID: u.ID, Username: u.Username}
|
||||
exists, _ := tm.CheckMembership(s)
|
||||
memberCount, _ := tm.GetMemberCount(s)
|
||||
exists, err := tm.CheckMembership(s)
|
||||
if err != nil {
|
||||
errs = append(errs, err)
|
||||
continue
|
||||
}
|
||||
if !exists {
|
||||
continue
|
||||
}
|
||||
err := tm.Delete(s, u)
|
||||
err = tm.Delete(s, u)
|
||||
// if you cannot delete the team_member
|
||||
if err != nil || memberCount <= 1 {
|
||||
team, err := models.GetTeamByID(s, teamID)
|
||||
if err != nil {
|
||||
errs = append(errs, err)
|
||||
continue
|
||||
}
|
||||
err = team.Delete(s, u)
|
||||
if err != nil {
|
||||
errs = append(errs, err)
|
||||
}
|
||||
if err != nil {
|
||||
errs = append(errs, err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
return errs
|
||||
|
|
Loading…
Reference in New Issue