mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-30 14:26:36 +08:00
62 lines
1.9 KiB
Go
62 lines
1.9 KiB
Go
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
// Package dao provides data access objects and caching for the auth domain plugin.
|
|
package dao
|
|
|
|
import (
|
|
"Wavelet/plugins/domain/auth/model/entity"
|
|
"context"
|
|
)
|
|
|
|
// ListAllAuthSources 获取全部认证源(含未启用),按 ID 升序
|
|
func (d *DAO) ListAllAuthSources(ctx context.Context) ([]entity.AuthSource, error) {
|
|
var sources []entity.AuthSource
|
|
if err := d.DB(ctx).Order("id ASC").Find(&sources).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return sources, nil
|
|
}
|
|
|
|
// GetAuthSourceByID 根据 ID 获取认证源
|
|
func (d *DAO) GetAuthSourceByID(ctx context.Context, id uint64) (*entity.AuthSource, error) {
|
|
var src entity.AuthSource
|
|
if err := d.DB(ctx).First(&src, id).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &src, nil
|
|
}
|
|
|
|
// GetAuthSourceByName 根据名称获取认证源
|
|
func (d *DAO) GetAuthSourceByName(ctx context.Context, name string) (*entity.AuthSource, error) {
|
|
var src entity.AuthSource
|
|
if err := d.DB(ctx).Where("name = ?", name).First(&src).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &src, nil
|
|
}
|
|
|
|
// ListActiveAuthSources 获取所有启用的认证源
|
|
func (d *DAO) ListActiveAuthSources(ctx context.Context) ([]entity.AuthSource, error) {
|
|
var sources []entity.AuthSource
|
|
if err := d.DB(ctx).Where("is_active = ?", true).Order("id ASC").Find(&sources).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return sources, nil
|
|
}
|
|
|
|
// CreateAuthSource 新建认证源记录
|
|
func (d *DAO) CreateAuthSource(ctx context.Context, source *entity.AuthSource) error {
|
|
return d.DB(ctx).Create(source).Error
|
|
}
|
|
|
|
// SaveAuthSource 全量保存认证源记录
|
|
func (d *DAO) SaveAuthSource(ctx context.Context, source *entity.AuthSource) error {
|
|
return d.DB(ctx).Save(source).Error
|
|
}
|
|
|
|
// DeleteAuthSource 删除认证源记录
|
|
func (d *DAO) DeleteAuthSource(ctx context.Context, source *entity.AuthSource) error {
|
|
return d.DB(ctx).Delete(source).Error
|
|
}
|