1
0
forked from baron/baron-sso

ReBAC 고도화 및 애플리케이션 관리 시스템 통합 구현

This commit is contained in:
2026-02-04 15:01:13 +09:00
parent 066ea86f46
commit 7e09764ad9
21 changed files with 1532 additions and 62 deletions

View File

@@ -0,0 +1,61 @@
package repository
import (
"baron-sso-backend/internal/domain"
"context"
"gorm.io/gorm"
)
type RelyingPartyRepository interface {
Create(ctx context.Context, rp *domain.RelyingParty) error
Update(ctx context.Context, rp *domain.RelyingParty) error
Delete(ctx context.Context, clientID string) error
FindByID(ctx context.Context, clientID string) (*domain.RelyingParty, error)
ListByTenantID(ctx context.Context, tenantID string) ([]domain.RelyingParty, error)
ListAll(ctx context.Context) ([]domain.RelyingParty, error)
}
func (r *relyingPartyRepository) ListAll(ctx context.Context) ([]domain.RelyingParty, error) {
var rps []domain.RelyingParty
if err := r.db.WithContext(ctx).Find(&rps).Error; err != nil {
return nil, err
}
return rps, nil
}
type relyingPartyRepository struct {
db *gorm.DB
}
func NewRelyingPartyRepository(db *gorm.DB) RelyingPartyRepository {
return &relyingPartyRepository{db: db}
}
func (r *relyingPartyRepository) Create(ctx context.Context, rp *domain.RelyingParty) error {
return r.db.WithContext(ctx).Create(rp).Error
}
func (r *relyingPartyRepository) Update(ctx context.Context, rp *domain.RelyingParty) error {
return r.db.WithContext(ctx).Save(rp).Error
}
func (r *relyingPartyRepository) Delete(ctx context.Context, clientID string) error {
return r.db.WithContext(ctx).Delete(&domain.RelyingParty{}, "client_id = ?", clientID).Error
}
func (r *relyingPartyRepository) FindByID(ctx context.Context, clientID string) (*domain.RelyingParty, error) {
var rp domain.RelyingParty
if err := r.db.WithContext(ctx).First(&rp, "client_id = ?", clientID).Error; err != nil {
return nil, err
}
return &rp, nil
}
func (r *relyingPartyRepository) ListByTenantID(ctx context.Context, tenantID string) ([]domain.RelyingParty, error) {
var rps []domain.RelyingParty
if err := r.db.WithContext(ctx).Where("tenant_id = ?", tenantID).Find(&rps).Error; err != nil {
return nil, err
}
return rps, nil
}