Working permissions (logic reused from other components), album and photo sidebars now fully functional. Will require some testing, and need to adjust for people pages.

This commit is contained in:
Peter - Ubuntu dual boot
2021-09-18 11:58:21 +01:00
parent 47692bfcf8
commit 4ee8040364
10 changed files with 287 additions and 111 deletions

View File

@@ -152,7 +152,7 @@ func (r *albumResolver) Thumbnail(ctx context.Context, obj *models.Album) (*mode
fmt.Print(obj.CoverID)
if obj.CoverID == -1 {
if obj.CoverID == 0 {
if err := r.Database.Raw(`
WITH recursive sub_albums AS (
SELECT * FROM albums AS root WHERE id = ?
@@ -265,7 +265,8 @@ func (r *albumResolver) Path(ctx context.Context, obj *models.Album) ([]*models.
return album_path, nil
}
func (r *mutationResolver) SetAlbumCoverID(ctx context.Context, albumID int, coverID *int) (*models.Album, error) {
// Takes album_id, resets album.cover_id to 0 (null)
func (r *mutationResolver) ResetAlbumCover(ctx context.Context, albumID int) (*models.Album, error) {
user := auth.UserFromContext(ctx)
if user == nil {
return nil, errors.New("unauthorized")
@@ -276,9 +277,41 @@ func (r *mutationResolver) SetAlbumCoverID(ctx context.Context, albumID int, cov
return nil, err
}
//
// var album models.Album
//
ownsAlbum, err := user.OwnsAlbum(r.Database, &album)
if err != nil {
return nil, err
}
if !ownsAlbum {
return nil, errors.New("forbidden")
}
if err := r.Database.Model(&album).Update("cover_id", 0).Error; err != nil {
return nil, err
}
return &album, nil
}
// Takes media.id, finds parent album, sets album.cover_id to media.id (must be a more efficient way of doing this, but it works)
func (r *mutationResolver) SetAlbumCover(ctx context.Context, coverID int) (*models.Album, error) {
user := auth.UserFromContext(ctx)
if user == nil {
return nil, errors.New("unauthorized")
}
var media models.Media
if err := r.Database.Find(&media, coverID).Error; err != nil {
return nil, err
}
var album models.Album
if err := r.Database.Find(&album, &media.AlbumID).Error; err != nil {
return nil, err
}
ownsAlbum, err := user.OwnsAlbum(r.Database, &album)
if err != nil {
return nil, err
@@ -292,16 +325,5 @@ func (r *mutationResolver) SetAlbumCoverID(ctx context.Context, albumID int, cov
return nil, err
}
// var faceGroup models.FaceGroup
// if err := db.Where("id = ?", faceGroupID).Find(&faceGroup).Error; err != nil {
// return nil, err
// }
//
// return &faceGroup, nil
//
// if err := r.Database.Model(faceGroup).Update("label", label).Error; err != nil {
// return nil, err
// }
return &album, nil
}