feat: associate dataset sources with owners
This commit is contained in:
@@ -40,6 +40,8 @@ func TestDatasetAPIConnectsSourcesItemsAndSyncTasks(t *testing.T) {
|
||||
require.Empty(t, source.IconURL)
|
||||
var storedSource models.SaDatasetSource
|
||||
require.NoError(t, database.Where("identity = ?", source.ID).First(&storedSource).Error)
|
||||
require.Equal(t, owner.ID, storedSource.OwnerID)
|
||||
require.Equal(t, owner.Identity, storedSource.OwnerIdentity)
|
||||
require.Equal(t, owner.ID, storedSource.CreatedBy)
|
||||
require.Equal(t, owner.Identity, storedSource.CreatedByIdentity)
|
||||
|
||||
@@ -102,6 +104,25 @@ func TestDatasetAPIConnectsSourcesItemsAndSyncTasks(t *testing.T) {
|
||||
require.Zero(t, cronCount)
|
||||
}
|
||||
|
||||
func TestDatasetSourceAuthorizationUsesOwner(t *testing.T) {
|
||||
database := newDatasetTestDatabase(t)
|
||||
owner := createDatasetTestUser(t, database, "owner@example.com")
|
||||
creator := createDatasetTestUser(t, database, "creator@example.com")
|
||||
source := models.SaDatasetSource{
|
||||
OwnerID: owner.ID, CreatedBy: creator.ID,
|
||||
Name: "Owned feed", Kind: "rss", URL: "https://example.com/feed", Enabled: true,
|
||||
}
|
||||
require.NoError(t, database.Create(&source).Error)
|
||||
|
||||
ownerSources, err := NewService(database).ListSources(owner.ID)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, ownerSources, 1)
|
||||
|
||||
creatorSources, err := NewService(database).ListSources(creator.ID)
|
||||
require.NoError(t, err)
|
||||
require.Empty(t, creatorSources)
|
||||
}
|
||||
|
||||
func newDatasetTestDatabase(t *testing.T) *gorm.DB {
|
||||
t.Helper()
|
||||
database, err := gorm.Open(sqlite.Open(fmt.Sprintf("file:%s?mode=memory&cache=shared", t.Name())), &gorm.Config{})
|
||||
|
||||
Reference in New Issue
Block a user