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 }