models

package
v0.0.0-...-f28940e Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckExpired

func CheckExpired(entry *Period) bool

有効期限切れかどうかを調べます。 期限切れの場合、trueが返る

func CountSSOServiceLogByClientId

func CountSSOServiceLogByClientId(ctx context.Context, db *database.Database, clientId string) (int, error)

func DeleteAccessTokenByAccessToken

func DeleteAccessTokenByAccessToken(ctx context.Context, db *database.Database, accessToken string) error

func DeleteAccessTokenByClientID

func DeleteAccessTokenByClientID(ctx context.Context, db *database.Database, clientID string) error

func DeleteAccessTokenByUserId

func DeleteAccessTokenByUserId(ctx context.Context, db *database.Database, userId string) error

func DeleteAccessTokenByUserIdAndClientId

func DeleteAccessTokenByUserIdAndClientId(ctx context.Context, db *database.Database, userId string, clientId string) error

func DeleteAccessTokenPeriod

func DeleteAccessTokenPeriod(ctx context.Context, db *database.Database) error

func DeleteAllLoginHistories

func DeleteAllLoginHistories(ctx context.Context, db *database.Database, userId string) error

ログインログを削除する

func DeleteBlockIP

func DeleteBlockIP(ctx context.Context, db *database.Database, ip string) error

func DeleteBlockMail

func DeleteBlockMail(ctx context.Context, db *database.Database, mail string) error

func DeleteCertificationByUserId

func DeleteCertificationByUserId(ctx context.Context, db *database.Database, userId string) error

func DeleteMailCertPeriod

func DeleteMailCertPeriod(ctx context.Context, db *database.Database) error

func DeleteMailCertification

func DeleteMailCertification(ctx context.Context, db *database.Database, mailToken string) error

削除

func DeleteOTPBuffer

func DeleteOTPBuffer(ctx context.Context, db *database.Database, id string) error

func DeleteOTPBufferPeriod

func DeleteOTPBufferPeriod(ctx context.Context, db *database.Database) error

func DeletePWForgetByToken

func DeletePWForgetByToken(ctx context.Context, db *database.Database, token string) error

func DeletePWForgetPeriod

func DeletePWForgetPeriod(ctx context.Context, db *database.Database) error

func DeleteRefreshByUserId

func DeleteRefreshByUserId(ctx context.Context, db *database.Database, userId string) error

func DeleteRefreshToken

func DeleteRefreshToken(ctx context.Context, db *database.Database, refreshToken string) error

func DeleteRefreshTokenPeriod

func DeleteRefreshTokenPeriod(ctx context.Context, db *database.Database) error

func DeleteRefreshTokenTX

func DeleteRefreshTokenTX(tx *database.Transaction, refreshToken string) error

func DeleteRoleByUserID

func DeleteRoleByUserID(ctx context.Context, db *database.Database, userId string) error

func DeleteSSORefreshTokenByClientId

func DeleteSSORefreshTokenByClientId(ctx context.Context, db *database.Database, clientId string) error

func DeleteSSORefreshTokenByRefreshToken

func DeleteSSORefreshTokenByRefreshToken(ctx context.Context, db *database.Database, refresh string) error

func DeleteSSORefreshTokenByUserId

func DeleteSSORefreshTokenByUserId(ctx context.Context, db *database.Database, userId string) error

func DeleteSSORefreshTokenByUserIdAndClientID

func DeleteSSORefreshTokenByUserIdAndClientID(ctx context.Context, db *database.Database, userId string, clientId string) error

func DeleteSSORefreshTokenPeriod

func DeleteSSORefreshTokenPeriod(ctx context.Context, db *database.Database) error

func DeleteSSOServiceByClientId

func DeleteSSOServiceByClientId(ctx context.Context, db *database.Database, clientId string) error

func DeleteSSOServiceLogByClientId

func DeleteSSOServiceLogByClientId(ctx context.Context, db *database.Database, clientId string) error

func DeleteSSOServiceLogByUserIDAndClientId

func DeleteSSOServiceLogByUserIDAndClientId(ctx context.Context, db *database.Database, userId string, clientId string) error

func DeleteSSOServiceLogByUserId

func DeleteSSOServiceLogByUserId(ctx context.Context, db *database.Database, userId string) error

func DeleteSessionByUserId

func DeleteSessionByUserId(ctx context.Context, db *database.Database, userId string) error

func DeleteSessionToken

func DeleteSessionToken(ctx context.Context, db *database.Database, sessionToken string) error

func DeleteSessionTokenPeriod

func DeleteSessionTokenPeriod(ctx context.Context, db *database.Database) error

func DeleteSessionTokenTX

func DeleteSessionTokenTX(tx *database.Transaction, sessionToken string) error

func DeleteUserDataByUserID

func DeleteUserDataByUserID(ctx context.Context, db *database.Database, userId string) error

ユーザ情報を削除

Types

type Certification

type Certification struct {
	AccountCreateDate time.Time `datastore:"accountCreateDate" json:"account_create_date"`

	OnetimePasswordSecret  string   `datastore:"onetimePasswordSecret,omitempty" json:"onetime_password_secret"`
	OnetimePasswordBackups []string `datastore:"onetimePasswordBackups,omitempty" json:"onetime_password_backups"`

	UserMailPW
	UserId
}

認証テーブル OnetimePasswordSecret, OnetimePasswordBackupはOptional OTPはoptionalであるがアカウント登録時必須なため、実質admin userのログイン用

func GetCertificationByMail

func GetCertificationByMail(ctx context.Context, db *database.Database, mail string) (*Certification, error)

メールアドレスから対象の認証情報を取得します

func GetCertificationByUserID

func GetCertificationByUserID(ctx context.Context, db *database.Database, userId string) (*Certification, error)

ユーザIDから対象の認証情報を取得します

func (*Certification) Add

certificationに要素を追加する

type IPBlockList

type IPBlockList struct {
	IP string `datastore:"ip" json:"ip"`
}

IPアドレスのブロックリスト アカウント作成時、該当IPがブロックされていたら作成できない

func GetAllBlocIP

func GetAllBlocIP(ctx context.Context, db *database.Database) ([]IPBlockList, error)

func GetBlockListByIP

func GetBlockListByIP(ctx context.Context, db *database.Database, ip string) (*IPBlockList, error)

IPを指定して、ブラックリストを取得

func (*IPBlockList) Add

func (c *IPBlockList) Add(ctx context.Context, db *database.Database) error

IPのブラックリストを追加

type LoginHistory

type LoginHistory struct {
	AccessId  string    `datastore:"accessId" json:"access_id"`
	Date      time.Time `datastore:"date" json:"date"`
	IpAddress string    `datastore:"ipAddress" json:"ip_address"`
	UserAgent string    `datastore:"userAgent" json:"user_agent"`

	UserId
}

ログイン履歴(個別) IsSSOとSSOPublicKeyはOptional

func GetAllLoginHistory

func GetAllLoginHistory(ctx context.Context, db *database.Database, userId string, limit ...interface{}) ([]LoginHistory, error)

userIdを指定して、ログインログを取得する

func (*LoginHistory) Add

type MailBlockList

type MailBlockList struct {
	Mail string `datastore:"mail" json:"mail"`
}

メールアドレスのブロックリスト

func GetAllBlocMail

func GetAllBlocMail(ctx context.Context, db *database.Database) ([]MailBlockList, error)

func GetBlockListByMail

func GetBlockListByMail(ctx context.Context, db *database.Database, mail string) (*MailBlockList, error)

メールアドレスを指定して、ブロックリストを取得

func (*MailBlockList) Add

メールアドレスのブラックリストを追加

type MailCertification

type MailCertification struct {
	MailToken      string `datastore:"mailToken" json:"mail_token"`
	ClientToken    string `datastore:"clientToken" json:"client_token"`
	OpenNewWindow  bool   `datastore:"openNewWindow" json:"open_new_window"`
	Verify         bool   `datastore:"verify" json:"verify"`
	ChangeMailMode bool   `datastore:"changeMailMode" json:"change_mail_mode"`

	Period

	Mail string `datastore:"mail" json:"mail"`

	UserId string `datastore:"userId,omitempty" json:"user_id"` // Option
}

メールアドレス認証用テーブル

func GetMailCertificationByClientToken

func GetMailCertificationByClientToken(ctx context.Context, db *database.Database, clientToken string) (*MailCertification, error)

ClientMailTokenで取得します

func GetMailCertificationByMailToken

func GetMailCertificationByMailToken(ctx context.Context, db *database.Database, mailToken string) (*MailCertification, error)

MailTokenで取得します

func (*MailCertification) Add

mailCertificationに要素を追加する

type OnetimePasswordBuffer

type OnetimePasswordBuffer struct {
	Id string `datastore:"id" json:"id"`

	PublicKey string `datastore:"onetimePublicKey,omitempty" json:"onetime_public_key"`
	SecretKey string `datastore:"onetimeSecretKey" json:"onetime_secret_key"`

	IsLogin bool `datastore:"isLogin" json:"is_login"`

	FailedCount int `datastore:"failedCount" json:"failed_count"`

	Period
	UserId
}

ワンタイムパスワード設定 & ログイン時一時保存用

  • パスワード設定 OPTのトークンを発行した際に、そのトークンで生成したコードとこのidを送ることでOTPを設定できる。
  • ログイン時 ログイン後、OTPが設定されている場合、このテーブルに格納し、Idをcookieに格納する。 その後、OTPを入力してもらい検証することでログインする。

func GetOTPBufferByID

func GetOTPBufferByID(ctx context.Context, db *database.Database, id string) (*OnetimePasswordBuffer, error)

func (*OnetimePasswordBuffer) Add

type PWForget

type PWForget struct {
	ForgetToken string `datastore:"forgetToken" json:"forget_token"`
	Mail        string `datastore:"mail" json:"mail"`

	Period
}

パスワード忘れによる再登録用テーブル

func GetPWForgetByMail

func GetPWForgetByMail(ctx context.Context, db *database.Database, mail string) ([]PWForget, error)

func GetPWForgetByToken

func GetPWForgetByToken(ctx context.Context, db *database.Database, token string) (*PWForget, error)

func (*PWForget) Add

func (c *PWForget) Add(ctx context.Context, db *database.Database) error

type Period

type Period struct {
	CreateDate   time.Time `datastore:"createDate" json:"create_date"`
	PeriodMinute int       `datastore:"periodMinute,omitempty" json:"period_minute"`
	PeriodHour   int       `datastore:"periodHour,omitempty" json:"period_hour"`
	PeriodDay    int       `datastore:"periodDay,omitempty" json:"period_day"`
}

パスコード再設定や、ワンタイムパスワード入力、ユーザ登録などのテーブルにおいて制限時間を設ける

PeriodMinuteとPeriodHourはどちらか

type RefreshInfo

type RefreshInfo struct {
	RefreshToken string `datastore:"refreshToken" json:"refresh_token"`
	SessionToken string `datastore:"sessionToken" json:"session_token"`

	AccessID string `datastore:"accessId" json:"access_id"`

	Period
	UserId
}

CateiruSSOのリフレッシュトークン

func GetRefreshToken

func GetRefreshToken(ctx context.Context, db *database.Database, refreshToken string) (*RefreshInfo, error)

func GetRefreshTokenBySessionToken

func GetRefreshTokenBySessionToken(ctx context.Context, db *database.Database, sessionToken string) (*RefreshInfo, error)

func GetRefreshTokenByUserId

func GetRefreshTokenByUserId(ctx context.Context, db *database.Database, userId string) ([]RefreshInfo, error)

func GetRefreshTokenTX

func GetRefreshTokenTX(tx *database.Transaction, refreshToken string) (*RefreshInfo, error)

func (*RefreshInfo) Add

func (c *RefreshInfo) Add(ctx context.Context, db *database.Database) error

func (*RefreshInfo) AddTX

func (c *RefreshInfo) AddTX(tx *database.Transaction) error

type Role

type Role struct {
	Role []string `datastore:"role" json:"role"`

	UserId
}

ユーザの権限

func GetRoleByUserID

func GetRoleByUserID(ctx context.Context, db *database.Database, userId string) (*Role, error)

func (*Role) Add

func (c *Role) Add(ctx context.Context, db *database.Database) error

type SSOAccessToken

type SSOAccessToken struct {
	SSOAccessToken  string `datastore:"ssoAccessToken" json:"sso_access_token"`
	SSORefreshToken string `datastore:"ssoRefreshToken" json:"sso_refresh_token"`

	ClientID string `datastore:"clientId" json:"client_id"`

	RedirectURI string `datastore:"redirectURI" json:"redirect_uri"`

	Create time.Time `datastore:"create" json:"create"`

	Period
	UserId
}

func GetAccessTokenByAccessToken

func GetAccessTokenByAccessToken(ctx context.Context, db *database.Database, token string) (*SSOAccessToken, error)

func (*SSOAccessToken) Add

type SSOLogins

type SSOLogins struct {
	SSORefreshTokens []string `datastore:"ssoRefreshTokens" json:"sso_refresh_tokens"`

	UserId
}

ログインしているSSO

type SSORefreshToken

type SSORefreshToken struct {
	SSOAccessToken  string `datastore:"ssoAccessToken" json:"sso_access_token"`
	SSORefreshToken string `datastore:"ssoRefreshToken" json:"sso_refresh_token"`

	ClientID string `datastore:"clientId" json:"client_id"`

	RedirectURI string `datastore:"redirectURI" json:"redirect_uri"`

	Period
	UserId
}

SSOのリフレッシュトークン

func GetSSORefreshTokenByRefreshToken

func GetSSORefreshTokenByRefreshToken(ctx context.Context, db *database.Database, refresToken string) (*SSORefreshToken, error)

func (*SSORefreshToken) Add

type SSOService

type SSOService struct {
	ClientID string `datastore:"clientId" json:"client_id"`

	TokenSecret string `datastore:"tokenSecret" json:"token_secret"`

	Name        string `datastore:"name" json:"name"`
	ServiceIcon string `datastore:"serviceIcon" json:"service_icon"`

	FromUrl []string `datastore:"fromUrl" json:"from_url"`
	ToUrl   []string `datastore:"toUrl" json:"to_url"`

	AllowRoles []string `datastore:"allowRoles,omitempty" json:"allow_roles"`

	UserId
}

SSO情報 SessionTokenPeriod, RefreshTokenPeriodはOptional

func GetSSOServiceByClientId

func GetSSOServiceByClientId(ctx context.Context, db *database.Database, clientId string) (*SSOService, error)

func GetSSOServiceByUserID

func GetSSOServiceByUserID(ctx context.Context, db *database.Database, userID string) ([]SSOService, error)

func (*SSOService) Add

func (c *SSOService) Add(ctx context.Context, db *database.Database) error

type SSOServiceLog

type SSOServiceLog struct {
	LogId      string    `datastore:"logId" json:"log_id"`
	AcceptDate time.Time `datastore:"acceptDate" json:"accept_date"`
	ClientID   string    `datastore:"clientId" json:"client_id"`

	UserId
}

func GetSSOServiceLogsByClientId

func GetSSOServiceLogsByClientId(ctx context.Context, db *database.Database, clientId string) ([]SSOServiceLog, error)

func GetSSOServiceLogsByUserId

func GetSSOServiceLogsByUserId(ctx context.Context, db *database.Database, userId string) ([]SSOServiceLog, error)

func (*SSOServiceLog) Add

type SessionInfo

type SessionInfo struct {
	SessionToken string `datastore:"sessionToken" json:"session_token"`

	AccessID string `datastore:"accessId" json:"access_id"`

	Period
	UserId
}

CateiruSSOのセッション情報

func GetSessionToken

func GetSessionToken(ctx context.Context, db *database.Database, sessionToken string) (*SessionInfo, error)

func GetSessionTokenByUserId

func GetSessionTokenByUserId(ctx context.Context, db *database.Database, userId string) ([]SessionInfo, error)

func GetSessionTokenTX

func GetSessionTokenTX(tx *database.Transaction, sessionToken string) (*SessionInfo, error)

func (*SessionInfo) Add

func (c *SessionInfo) Add(ctx context.Context, db *database.Database) error

func (*SessionInfo) AddTX

func (c *SessionInfo) AddTX(tx *database.Transaction) error

type TryCreateAccountLog

type TryCreateAccountLog struct {
	LogId      string    `datastore:"logId" json:"log_id"`
	IP         string    `datastore:"ip" json:"ip"`
	TryDate    time.Time `datastore:"tryDate" json:"try_date"`
	TargetMail string    `datastore:"targetMail" json:"target_mail"`
}

アカウント作成時のログ 悪意のあるユーザにスパムメールを送られた場合、このログからIPをブロックします

func GetAllTryCreateAccountLog

func GetAllTryCreateAccountLog(ctx context.Context, db *database.Database) ([]TryCreateAccountLog, error)

func GetTryCreateAccountLogByIP

func GetTryCreateAccountLogByIP(ctx context.Context, db *database.Database, ip string) ([]TryCreateAccountLog, error)

IPアドレスで、アカウント作成ログを取得する

func GetTryCreateAccountLogByMail

func GetTryCreateAccountLogByMail(ctx context.Context, db *database.Database, mail string) ([]TryCreateAccountLog, error)

メールアドレスで、アカウント作成ログを取得する 身に覚えがない登録メールが送信されたという問い合わせが来た場合に、これを使用して送信したIPアドレスを取得する

func (*TryCreateAccountLog) Add

要素をDatastoreに追加

type User

type User struct {
	FirstName         string `datastore:"firstName" json:"first_name"`
	LastName          string `datastore:"lastName" json:"last_name"`
	UserName          string `datastore:"userName" json:"user_name"`
	UserNameFormatted string `datastore:"userNameFormatted" json:"user_name_formatted"`

	Mail string `datastore:"mail" json:"mail"`

	Theme     string `datastore:"theme" json:"theme"`
	AvatarUrl string `datastore:"avatarUrl" json:"avatar_url"`

	Role []string `datastore:"role" json:"role"`

	UserId
}

ユーザの情報

func GetAllUsers

func GetAllUsers(ctx context.Context, db *database.Database) ([]User, error)

func GetUserDataByUserID

func GetUserDataByUserID(ctx context.Context, db *database.Database, userId string) (*User, error)

func GetUserDataByUserName

func GetUserDataByUserName(ctx context.Context, db *database.Database, userName string) (*User, error)

func GetUserDataTXByUserID

func GetUserDataTXByUserID(db *database.Transaction, userId string) (*User, error)

TX modeで取得

func (*User) Add

func (c *User) Add(ctx context.Context, db *database.Database) error

func (*User) AddTX

func (c *User) AddTX(db *database.Transaction) error

type UserId

type UserId struct {
	UserId string `datastore:"userId" json:"user_id"`
}

ユーザIDのkv

type UserMailPW

type UserMailPW struct {
	Mail     string `datastore:"mail" json:"mail"`
	Password []byte `datastore:"password" json:"password"`
	Salt     []byte `datastore:"salt" json:"salt"`
}

メールアドレスとパスワード パスワードはハッシュ化する必要がある

type WorkerLog

type WorkerLog struct {
	RunId   string    `datastore:"runId" json:"run_id"`
	Status  int       `datastore:"status" json:"status"`
	Message string    `datastore:"message" json:"message"`
	RunDate time.Time `datastore:"runDate" json:"run_date"`
}

Workerのログ

Jump to

Keyboard shortcuts

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