/
auth_driver.go
86 lines (70 loc) · 1.92 KB
/
auth_driver.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package test
import (
"context"
"testing"
"time"
"github.com/ovh/cds/sdk"
)
var _ sdk.AuthDriver = new(authDriver)
type authDriver struct {
t *testing.T
driver sdk.Driver
}
// NewDriver returns a new ldap auth driver.
func NewDriver(t *testing.T) sdk.AuthDriver {
var d = authDriver{t, NewTestDriver()}
return d
}
func (d authDriver) GetManifest() sdk.AuthDriverManifest {
return sdk.AuthDriverManifest{
Type: sdk.ConsumerTest,
SignupDisabled: false,
}
}
func (d authDriver) GetSessionDuration() time.Duration {
return time.Hour * 24 * 30 // 1 month session
}
func (d authDriver) GetDriver() sdk.Driver {
return d.driver
}
func (d authDriver) GetUserInfo(ctx context.Context, req sdk.AuthConsumerSigninRequest) (sdk.AuthDriverUserInfo, error) {
var u sdk.AuthDriverUserInfo
var username = req.String("username")
u.ExternalID = username
u.Username = username
u.Email = username + "@planet-express.futurama"
switch username {
case "fry":
u.Fullname = "Philip J. Fry"
case "philip.fry":
u.Fullname = "Philip J. Fry"
u.Email = "fry@planet-express.futurama"
case "leela":
u.Fullname = "Turanga Leela"
case "bender":
u.Fullname = "Bender Bending Rodriguez"
case "farnsworth":
u.Fullname = "Professor Hubert J. Farnsworth"
case "amy":
u.Fullname = "Amy Wong"
case "zoidberg":
u.Fullname = "Dr. John A. Zoidberg"
default:
return u, sdk.WithStack(sdk.ErrUnauthorized)
}
return u, nil
}
func NewTestDriver() sdk.Driver {
return &TestDriver{}
}
type TestDriver struct {
}
func (t TestDriver) GetUserInfoFromDriver(ctx context.Context, req sdk.AuthConsumerSigninRequest) (sdk.AuthDriverUserInfo, error) {
return sdk.AuthDriverUserInfo{}, nil
}
func (t TestDriver) CheckSigninRequest(req sdk.AuthConsumerSigninRequest) error {
if bind, ok := req["username"]; !ok || bind == "" {
return sdk.NewErrorFrom(sdk.ErrWrongRequest, "missing or invalid bind term for ldap signin")
}
return nil
}