forked from kevadesu/forgejo
Search federatedUser instead of loginName
This commit is contained in:
parent
e44be72251
commit
66bc7a9a0c
4 changed files with 46 additions and 52 deletions
|
@ -22,3 +22,29 @@ func CreateFederationUser(ctx context.Context, user *FederatedUser) error {
|
|||
_, err := db.GetEngine(ctx).Insert(user)
|
||||
return err
|
||||
}
|
||||
|
||||
func FindFederatedUser(ctx context.Context, externalID string,
|
||||
federationHostID int64) (*User, *FederatedUser, error) {
|
||||
federatedUser := new(FederatedUser)
|
||||
user := new(User)
|
||||
has, err := db.GetEngine(ctx).Where("external_id=? and federation_host_id=?", externalID, federationHostID).Get(federatedUser)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
} else if !has {
|
||||
return nil, nil, nil
|
||||
}
|
||||
has, err = db.GetEngine(ctx).ID(federatedUser.UserID).Get(user)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
} else if !has {
|
||||
return nil, nil, fmt.Errorf("User %v for federated user is missing.", federatedUser.UserID)
|
||||
}
|
||||
|
||||
if res, err := validation.IsValid(*user); !res {
|
||||
return nil, nil, fmt.Errorf("FederatedUser is not valid: %v", err)
|
||||
}
|
||||
if res, err := validation.IsValid(*federatedUser); !res {
|
||||
return nil, nil, fmt.Errorf("FederatedUser is not valid: %v", err)
|
||||
}
|
||||
return user, federatedUser, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue