github.com/ngocphuongnb/tetua@v0.0.7-alpha/app/mock/auth.go (about)

     1  package mock
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/ngocphuongnb/tetua/app/entities"
     7  	"github.com/ngocphuongnb/tetua/app/server"
     8  	"golang.org/x/oauth2"
     9  )
    10  
    11  type AuthProvider struct {
    12  	config *oauth2.Config
    13  }
    14  
    15  var RootUser = &entities.User{
    16  	ID:               1,
    17  	Username:         "mockrootuser",
    18  	Email:            "mockrootuser@mock-service.local",
    19  	Provider:         "mock",
    20  	ProviderID:       "1",
    21  	ProviderUsername: "mockrootuser",
    22  	RoleIDs:          []int{1},
    23  	Roles:            []*entities.Role{{ID: 1}},
    24  }
    25  
    26  var NormalUser2 = &entities.User{
    27  	ID:               2,
    28  	Username:         "mocknormaluser2",
    29  	Email:            "mocknormaluser2@mock-service.local",
    30  	Provider:         "mock",
    31  	ProviderID:       "2",
    32  	ProviderUsername: "mocknormaluser2",
    33  	RoleIDs:          []int{2},
    34  	Roles:            []*entities.Role{{ID: 2}},
    35  	Active:           true,
    36  }
    37  
    38  var NormalUser3 = &entities.User{
    39  	ID:               3,
    40  	Username:         "mocknormaluser3",
    41  	Email:            "mocknormaluser3@mock-service.local",
    42  	Provider:         "mock",
    43  	ProviderID:       "3",
    44  	ProviderUsername: "mockuser",
    45  	RoleIDs:          []int{2},
    46  	Roles:            []*entities.Role{{ID: 2}},
    47  	Active:           true,
    48  }
    49  
    50  func NewAuth(cfg map[string]string) server.AuthProvider {
    51  	return &AuthProvider{
    52  		config: &oauth2.Config{},
    53  	}
    54  }
    55  
    56  func (g *AuthProvider) Name() string {
    57  	return "mock"
    58  }
    59  
    60  func (g *AuthProvider) Login(c server.Context) error {
    61  	return c.Redirect("https://auth.mock-service.local/auth")
    62  }
    63  
    64  func (g *AuthProvider) Callback(c server.Context) (u *entities.User, err error) {
    65  	if c.Query("code") == "" {
    66  		return nil, fmt.Errorf("code is empty")
    67  	}
    68  
    69  	return NormalUser2, nil
    70  }