Properly add new user as owner
when scanning albums already owned by other users
This commit is contained in:
parent
a4f5d26197
commit
404f1898c2
|
@ -23,7 +23,7 @@ func CleanupMedia(db *gorm.DB, albumId int, albumMedia []*models.Media) []error
|
|||
|
||||
// Select media from database that was not found on hard disk
|
||||
if len(albumMedia) > 0 {
|
||||
query.Where("NOT id IN ?", albumMediaIds)
|
||||
query.Where("NOT id IN (?)", albumMediaIds)
|
||||
}
|
||||
|
||||
if err := query.Find(&mediaList).Error; err != nil {
|
||||
|
@ -45,7 +45,7 @@ func CleanupMedia(db *gorm.DB, albumId int, albumMedia []*models.Media) []error
|
|||
}
|
||||
|
||||
if len(mediaIDs) > 0 {
|
||||
if err := db.Where("id IN ?", mediaIDs).Delete(models.Media{}).Error; err != nil {
|
||||
if err := db.Where("id IN (?)", mediaIDs).Delete(models.Media{}).Error; err != nil {
|
||||
deleteErrors = append(deleteErrors, errors.Wrap(err, "delete old media from database"))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ func findAlbumsForUser(db *gorm.DB, user *models.User, album_cache *AlbumScanner
|
|||
}
|
||||
|
||||
var userRootAlbums []*models.Album
|
||||
if err := db.Where("id IN (?)", userAlbumIDs).Where("parent_album_id IS NULL").Find(&userRootAlbums).Error; err != nil {
|
||||
if err := db.Where("id IN (?)", userAlbumIDs).Where("parent_album_id IS NULL OR parent_album_id NOT IN (?)", userAlbumIDs).Find(&userRootAlbums).Error; err != nil {
|
||||
return nil, []error{err}
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ func findAlbumsForUser(db *gorm.DB, user *models.User, album_cache *AlbumScanner
|
|||
if albumParent != nil {
|
||||
albumParentID = &albumParent.ID
|
||||
|
||||
if err := db.Model(&albumParent).Association("Owners").Find(&parentOwners); err != nil {
|
||||
if err := tx.Model(&albumParent).Association("Owners").Find(&parentOwners); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -114,6 +114,20 @@ func findAlbumsForUser(db *gorm.DB, user *models.User, album_cache *AlbumScanner
|
|||
}
|
||||
} else {
|
||||
album = &albumResult[0]
|
||||
|
||||
// Add user as an owner of the album if not already
|
||||
var userAlbumOwner []models.User
|
||||
if err := tx.Model(&album).Association("Owners").Find(&userAlbumOwner, "user_albums.user_id = ?", user.ID); err != nil {
|
||||
return err
|
||||
}
|
||||
if len(userAlbumOwner) == 0 {
|
||||
newUser := models.User{}
|
||||
newUser.ID = user.ID
|
||||
if err := tx.Model(&album).Association("Owners").Append(&newUser); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
userAlbums = append(userAlbums, album)
|
||||
|
|
Loading…
Reference in New Issue