From db1f1423bb1439eb6a94af077f0137a5dcce607a Mon Sep 17 00:00:00 2001 From: viehlieb Date: Fri, 27 Jan 2023 13:31:43 +0100 Subject: [PATCH] add OidcIDto teams --- pkg/models/team_members.go | 15 +++++---------- pkg/models/teams.go | 3 +++ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/pkg/models/team_members.go b/pkg/models/team_members.go index bbcc06673..39e12c33b 100644 --- a/pkg/models/team_members.go +++ b/pkg/models/team_members.go @@ -18,7 +18,6 @@ package models import ( "code.vikunja.io/api/pkg/events" - "code.vikunja.io/api/pkg/log" user2 "code.vikunja.io/api/pkg/user" "code.vikunja.io/web" "xorm.io/xorm" @@ -55,7 +54,7 @@ func (tm *TeamMember) Create(s *xorm.Session, a web.Auth) (err error) { // Check if that user is already part of the team exists, err := s. - Where("team_id = ? AND user_name = ?", tm.TeamID, tm.UserID). + Where("team_id = ? AND user_id = ?", tm.TeamID, tm.UserID). Get(&TeamMember{}) if err != nil { return @@ -110,23 +109,19 @@ func (tm *TeamMember) Delete(s *xorm.Session, a web.Auth) (err error) { return } -func (tm *TeamMember) CheckMembership(s *xorm.Session) (err error) { +func (tm *TeamMember) CheckMembership(s *xorm.Session) (exists bool, err error) { member, err := user2.GetUserByUsername(s, tm.Username) if err != nil { return } tm.UserID = member.ID - exists, err := s. + exists, err = s. Where("team_id = ? AND user_id = ?", tm.TeamID, tm.UserID). Get(&TeamMember{}) - if err != nil { + if exists { return } - if exists { - log.Errorf("Team member already exists %v", ErrUserIsMemberOfTeam{tm.UserID, tm.UserID}) - return ErrUserIsMemberOfTeam{tm.UserID, tm.UserID} - } - return + return exists, ErrUserIsMemberOfTeam{tm.UserID, tm.UserID} } // Update toggles a team member's admin status diff --git a/pkg/models/teams.go b/pkg/models/teams.go index 2a13b0a66..a21fe8d79 100644 --- a/pkg/models/teams.go +++ b/pkg/models/teams.go @@ -20,6 +20,7 @@ import ( "time" "code.vikunja.io/api/pkg/db" + "code.vikunja.io/api/pkg/log" "code.vikunja.io/api/pkg/events" "code.vikunja.io/api/pkg/user" @@ -38,6 +39,8 @@ type Team struct { // The team's description. Description string `xorm:"longtext null" json:"description"` CreatedByID int64 `xorm:"bigint not null INDEX" json:"-"` + // The team's oidc id delivered by the oidc provider + OidcID string `xorm:"varchar(250) null" maxLength:"250" json:"oidc_id"` // The user who created this team. CreatedBy *user.User `xorm:"-" json:"created_by"`