aboutsummaryrefslogtreecommitdiffstats
path: root/models/auth/webauthn.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/auth/webauthn.go')
-rw-r--r--models/auth/webauthn.go56
1 files changed, 12 insertions, 44 deletions
diff --git a/models/auth/webauthn.go b/models/auth/webauthn.go
index db5dd7eea5..d12713bd37 100644
--- a/models/auth/webauthn.go
+++ b/models/auth/webauthn.go
@@ -67,11 +67,7 @@ func (cred WebAuthnCredential) TableName() string {
}
// UpdateSignCount will update the database value of SignCount
-func (cred *WebAuthnCredential) UpdateSignCount() error {
- return cred.updateSignCount(db.DefaultContext)
-}
-
-func (cred *WebAuthnCredential) updateSignCount(ctx context.Context) error {
+func (cred *WebAuthnCredential) UpdateSignCount(ctx context.Context) error {
_, err := db.GetEngine(ctx).ID(cred.ID).Cols("sign_count").Update(cred)
return err
}
@@ -113,30 +109,18 @@ func (list WebAuthnCredentialList) ToCredentials() []webauthn.Credential {
}
// GetWebAuthnCredentialsByUID returns all WebAuthn credentials of the given user
-func GetWebAuthnCredentialsByUID(uid int64) (WebAuthnCredentialList, error) {
- return getWebAuthnCredentialsByUID(db.DefaultContext, uid)
-}
-
-func getWebAuthnCredentialsByUID(ctx context.Context, uid int64) (WebAuthnCredentialList, error) {
+func GetWebAuthnCredentialsByUID(ctx context.Context, uid int64) (WebAuthnCredentialList, error) {
creds := make(WebAuthnCredentialList, 0)
return creds, db.GetEngine(ctx).Where("user_id = ?", uid).Find(&creds)
}
// ExistsWebAuthnCredentialsForUID returns if the given user has credentials
-func ExistsWebAuthnCredentialsForUID(uid int64) (bool, error) {
- return existsWebAuthnCredentialsByUID(db.DefaultContext, uid)
-}
-
-func existsWebAuthnCredentialsByUID(ctx context.Context, uid int64) (bool, error) {
+func ExistsWebAuthnCredentialsForUID(ctx context.Context, uid int64) (bool, error) {
return db.GetEngine(ctx).Where("user_id = ?", uid).Exist(&WebAuthnCredential{})
}
// GetWebAuthnCredentialByName returns WebAuthn credential by id
-func GetWebAuthnCredentialByName(uid int64, name string) (*WebAuthnCredential, error) {
- return getWebAuthnCredentialByName(db.DefaultContext, uid, name)
-}
-
-func getWebAuthnCredentialByName(ctx context.Context, uid int64, name string) (*WebAuthnCredential, error) {
+func GetWebAuthnCredentialByName(ctx context.Context, uid int64, name string) (*WebAuthnCredential, error) {
cred := new(WebAuthnCredential)
if found, err := db.GetEngine(ctx).Where("user_id = ? AND lower_name = ?", uid, strings.ToLower(name)).Get(cred); err != nil {
return nil, err
@@ -147,11 +131,7 @@ func getWebAuthnCredentialByName(ctx context.Context, uid int64, name string) (*
}
// GetWebAuthnCredentialByID returns WebAuthn credential by id
-func GetWebAuthnCredentialByID(id int64) (*WebAuthnCredential, error) {
- return getWebAuthnCredentialByID(db.DefaultContext, id)
-}
-
-func getWebAuthnCredentialByID(ctx context.Context, id int64) (*WebAuthnCredential, error) {
+func GetWebAuthnCredentialByID(ctx context.Context, id int64) (*WebAuthnCredential, error) {
cred := new(WebAuthnCredential)
if found, err := db.GetEngine(ctx).ID(id).Get(cred); err != nil {
return nil, err
@@ -162,16 +142,12 @@ func getWebAuthnCredentialByID(ctx context.Context, id int64) (*WebAuthnCredenti
}
// HasWebAuthnRegistrationsByUID returns whether a given user has WebAuthn registrations
-func HasWebAuthnRegistrationsByUID(uid int64) (bool, error) {
- return db.GetEngine(db.DefaultContext).Where("user_id = ?", uid).Exist(&WebAuthnCredential{})
+func HasWebAuthnRegistrationsByUID(ctx context.Context, uid int64) (bool, error) {
+ return db.GetEngine(ctx).Where("user_id = ?", uid).Exist(&WebAuthnCredential{})
}
// GetWebAuthnCredentialByCredID returns WebAuthn credential by credential ID
-func GetWebAuthnCredentialByCredID(userID int64, credID []byte) (*WebAuthnCredential, error) {
- return getWebAuthnCredentialByCredID(db.DefaultContext, userID, credID)
-}
-
-func getWebAuthnCredentialByCredID(ctx context.Context, userID int64, credID []byte) (*WebAuthnCredential, error) {
+func GetWebAuthnCredentialByCredID(ctx context.Context, userID int64, credID []byte) (*WebAuthnCredential, error) {
cred := new(WebAuthnCredential)
if found, err := db.GetEngine(ctx).Where("user_id = ? AND credential_id = ?", userID, credID).Get(cred); err != nil {
return nil, err
@@ -182,11 +158,7 @@ func getWebAuthnCredentialByCredID(ctx context.Context, userID int64, credID []b
}
// CreateCredential will create a new WebAuthnCredential from the given Credential
-func CreateCredential(userID int64, name string, cred *webauthn.Credential) (*WebAuthnCredential, error) {
- return createCredential(db.DefaultContext, userID, name, cred)
-}
-
-func createCredential(ctx context.Context, userID int64, name string, cred *webauthn.Credential) (*WebAuthnCredential, error) {
+func CreateCredential(ctx context.Context, userID int64, name string, cred *webauthn.Credential) (*WebAuthnCredential, error) {
c := &WebAuthnCredential{
UserID: userID,
Name: name,
@@ -205,18 +177,14 @@ func createCredential(ctx context.Context, userID int64, name string, cred *weba
}
// DeleteCredential will delete WebAuthnCredential
-func DeleteCredential(id, userID int64) (bool, error) {
- return deleteCredential(db.DefaultContext, id, userID)
-}
-
-func deleteCredential(ctx context.Context, id, userID int64) (bool, error) {
+func DeleteCredential(ctx context.Context, id, userID int64) (bool, error) {
had, err := db.GetEngine(ctx).ID(id).Where("user_id = ?", userID).Delete(&WebAuthnCredential{})
return had > 0, err
}
// WebAuthnCredentials implementns the webauthn.User interface
-func WebAuthnCredentials(userID int64) ([]webauthn.Credential, error) {
- dbCreds, err := GetWebAuthnCredentialsByUID(userID)
+func WebAuthnCredentials(ctx context.Context, userID int64) ([]webauthn.Credential, error) {
+ dbCreds, err := GetWebAuthnCredentialsByUID(ctx, userID)
if err != nil {
return nil, err
}