This commit is contained in:
parent
2377d816df
commit
5c0e60ae9c
|
@ -159,35 +159,6 @@ func FindAllOidcTeamIDsForUser(s *xorm.Session, userID int64) (ts []int64, err e
|
||||||
return ts, nil
|
return ts, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTeamByOidcIDAndName gets teams where oidc_id and name match parameters
|
|
||||||
// For oidc team creation oidcID and Name need to be set
|
|
||||||
func GetTeamByOidcIDAndName(s *xorm.Session, oidcID string, teamName string) (team Team, err error) {
|
|
||||||
has, err := s.
|
|
||||||
Table("teams").
|
|
||||||
Where("oidc_id = ? AND name = ?", oidcID, teamName).
|
|
||||||
Asc("id").
|
|
||||||
Limit(1).
|
|
||||||
Get(&team)
|
|
||||||
if !has || err != nil {
|
|
||||||
return team, ErrOIDCTeamDoesNotExist{teamName, oidcID}
|
|
||||||
}
|
|
||||||
return team, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func FindAllOidcTeamIDsForUser(s *xorm.Session, userID int64) (ts []int64, err error) {
|
|
||||||
err = s.
|
|
||||||
Table("team_members").
|
|
||||||
Where("user_id = ? ", userID).
|
|
||||||
Join("RIGHT", "teams", "teams.id = team_members.team_id").
|
|
||||||
Where("teams.oidc_id != ? AND teams.oidc_id IS NOT NULL", "").
|
|
||||||
Cols("teams.id").
|
|
||||||
Find(&ts)
|
|
||||||
if ts == nil || err != nil {
|
|
||||||
return ts, ErrOIDCTeamsDoNotExistForUser{userID}
|
|
||||||
}
|
|
||||||
return ts, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func addMoreInfoToTeams(s *xorm.Session, teams []*Team) (err error) {
|
func addMoreInfoToTeams(s *xorm.Session, teams []*Team) (err error) {
|
||||||
|
|
||||||
if len(teams) == 0 {
|
if len(teams) == 0 {
|
||||||
|
|
|
@ -228,34 +228,6 @@ func HandleCallback(c echo.Context) error {
|
||||||
return auth.NewUserAuthTokenResponse(u, c, false)
|
return auth.NewUserAuthTokenResponse(u, c, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func AssignOrCreateUserToTeams(s *xorm.Session, u *user.User, teamData []models.OIDCTeamData) (oidcTeams []int64, err error) {
|
|
||||||
if len(teamData) > 0 {
|
|
||||||
// check if we have seen these teams before.
|
|
||||||
// find or create Teams and assign user as teammember.
|
|
||||||
teams, err := GetOrCreateTeamsByOIDCAndNames(s, teamData, u)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("Error verifying team for %v, got %v. Error: %v", u.Name, teams, err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
//find old teams for user through oidc
|
|
||||||
oldOidcTeams, err := models.FindAllOidcTeamIDsForUser(s, u.ID)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("No Oidc Teams found for user %v", err)
|
|
||||||
}
|
|
||||||
oidcTeams, err := AssignOrCreateUserToTeams(s, u, teamData)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("Could not proceed with group routine %v", err)
|
|
||||||
}
|
|
||||||
errs = RemoveUserFromTeamsByIds(s, u, utils.NotIn(oldOidcTeams, oidcTeams))
|
|
||||||
for _, err := range errs {
|
|
||||||
log.Errorf("Found Error while signing out from teams %v", err)
|
|
||||||
}
|
|
||||||
oidcTeams = append(oidcTeams, team.ID)
|
|
||||||
}
|
|
||||||
return oidcTeams, err
|
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
func AssignOrCreateUserToTeams(s *xorm.Session, u *user.User, teamData []models.OIDCTeamData) (oidcTeams []int64, err error) {
|
func AssignOrCreateUserToTeams(s *xorm.Session, u *user.User, teamData []models.OIDCTeamData) (oidcTeams []int64, err error) {
|
||||||
if len(teamData) == 0 {
|
if len(teamData) == 0 {
|
||||||
return
|
return
|
||||||
|
@ -280,14 +252,7 @@ func AssignOrCreateUserToTeams(s *xorm.Session, u *user.User, teamData []models.
|
||||||
}
|
}
|
||||||
return oidcTeams, err
|
return oidcTeams, err
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
=======
|
|
||||||
>>>>>>> 169b668c... remove left over function GetMemberCount, rename function SignOut to RemoveFrom
|
|
||||||
=======
|
|
||||||
}
|
|
||||||
|
|
||||||
>>>>>>> 3fdbd53b... work on openid to just start group workflow when teamData is available
|
|
||||||
func RemoveUserFromTeamsByIds(s *xorm.Session, u *user.User, teamIDs []int64) (errs []error) {
|
func RemoveUserFromTeamsByIds(s *xorm.Session, u *user.User, teamIDs []int64) (errs []error) {
|
||||||
errs = []error{}
|
errs = []error{}
|
||||||
for _, teamID := range teamIDs {
|
for _, teamID := range teamIDs {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user