-
Notifications
You must be signed in to change notification settings - Fork 0
/
tenant.go
82 lines (66 loc) · 2.55 KB
/
tenant.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
package handler
import (
"context"
"expvar"
"log/slog"
"time"
"github.com/polyscone/tofu/app/account"
"github.com/polyscone/tofu/app/system"
"github.com/polyscone/tofu/event"
"github.com/polyscone/tofu/session"
"github.com/polyscone/tofu/smtp"
)
type AccountReader interface {
account.Reader
FindRoleByName(ctx context.Context, name string) (*account.Role, error)
FindRoles(ctx context.Context, sortTopID string) ([]*account.Role, int, error)
FindRolesPageBySearch(ctx context.Context, page, size int, sortTopID string, sorts []string, search string) ([]*account.Role, int, error)
CountUsersByRoleID(ctx context.Context, roleID string) (int, error)
FindUsersPageBySearch(ctx context.Context, page, size int, sortTopID string, sorts []string, search string) ([]*account.User, int, error)
}
type SystemReader system.Reader
type WebReadWriter interface {
session.ReadWriter
AddEmailVerificationToken(ctx context.Context, email string, ttl time.Duration) (string, error)
FindEmailVerificationTokenEmail(ctx context.Context, token string) (string, error)
ConsumeEmailVerificationToken(ctx context.Context, token string) error
AddResetPasswordToken(ctx context.Context, email string, ttl time.Duration) (string, error)
FindResetPasswordTokenEmail(ctx context.Context, token string) (string, error)
ConsumeResetPasswordToken(ctx context.Context, token string) error
AddSignInMagicLinkToken(ctx context.Context, email string, ttl time.Duration) (string, error)
FindSignInMagicLinkTokenEmail(ctx context.Context, token string) (string, error)
ConsumeSignInMagicLinkToken(ctx context.Context, token string) error
AddTOTPResetVerifyToken(ctx context.Context, email string, ttl time.Duration) (string, error)
FindTOTPResetVerifyTokenEmail(ctx context.Context, token string) (string, error)
ConsumeTOTPResetVerifyToken(ctx context.Context, token string) error
AddResetTOTPToken(ctx context.Context, email string, ttl time.Duration) (string, error)
FindResetTOTPTokenEmail(ctx context.Context, token string) (string, error)
ConsumeResetTOTPToken(ctx context.Context, token string) error
}
type Svc struct {
Account *account.Service
System *system.Service
}
type Repo struct {
Account AccountReader
System SystemReader
Web WebReadWriter
}
type Tenant struct {
Key string
Kind string
Scheme string
Host string
Hosts map[string]string
Data string
Dev bool
Insecure bool
Proxies []string
Broker event.Broker
Email smtp.Mailer
Logger *slog.Logger
Metrics *expvar.Map
Svc Svc
Repo Repo
SuperRole *account.Role
}