user

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrCertMismatch = errors.New("certificate mismatch")
View Source
var ErrInvalidToken = errors.New("invalid token")
View Source
var ErrNoUsername = errors.New("user has no username")

Functions

This section is empty.

Types

type CertificateHash

type CertificateHash string

func HashCertificate

func HashCertificate(cert *x509.Certificate) CertificateHash

type Manager

type Manager struct {
	Store    ez3.EZ3
	TestMode bool // enables an alternate client cert parsing path
}

func (*Manager) AuthorizeGeminiUser

func (m *Manager) AuthorizeGeminiUser(r *gemini.Request) (UserInfo, error)

func (*Manager) AuthorizeWebDAVUser

func (m *Manager) AuthorizeWebDAVUser(r *http.Request) (bool, User, error)

func (*Manager) ChangePassword

func (m *Manager) ChangePassword(user User) error

func (*Manager) Create

func (m *Manager) Create(args NewArgs) (User, error)

func (*Manager) Delete

func (m *Manager) Delete(ch CertificateHash) error

func (*Manager) Get

func (m *Manager) Get(ch CertificateHash) (User, bool, error)

func (*Manager) Set

func (m *Manager) Set(user User) error

func (*Manager) Verify

func (m *Manager) Verify(user User, token string) error

type NewArgs

type NewArgs struct {
	CertificateHash
	Email    string
	Username string
}

type User

type User struct {
	Created           time.Time       `json:"created"`
	CertificateHash   CertificateHash `json:"certificate_hash"`
	Email             string          `json:"email"`
	EmailVerified     bool            `json:"email_verified"`
	VerificationToken string          `json:"verification_token"`
	Name              string          `json:"name"`
	WebDAVPassword    string          `json:"webdav_password"`
}

func (*User) Deserialize

func (u *User) Deserialize(data []byte) error

func (User) PublicURL

func (u User) PublicURL() string

func (*User) Serialize

func (u *User) Serialize() ([]byte, error)

type UserInfo

type UserInfo struct {
	HasCertificate  bool
	CertificateHash CertificateHash
	HasUser         bool
	User            User
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL