Skip to content

Commit e470e59

Browse files
committed
updated everything to reflect changes
1 parent 8ddbe00 commit e470e59

File tree

7 files changed

+43
-22
lines changed

7 files changed

+43
-22
lines changed

app/models/photo.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,10 @@ class Photo < ApplicationRecord
2121
joins(:comments).distinct
2222
}
2323

24-
scope :publicly_visible, lambda {
25-
joins(:photo_album).where(photo_albums: { visibility: 'everybody' })
26-
}
27-
2824
scope :alumni_visible, lambda { |start_date, end_date|
2925
joins(:photo_album)
3026
.where(photo_albums: { visibility: 'alumni' })
31-
.or(photo_albums: { visibility: 'everybody' })
27+
.or(photo_albums: { visibility: 'public' })
3228
.or(where.not(photo_albums: { date: nil}).where(photo_albums: { date: start_date..end_date}))
3329
.or(where(photo_albums: { date: nil }).where(photo_albums: { created_at: start_date..end_date}))
3430
}

app/models/photo_album.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ class PhotoAlbum < ApplicationRecord
77
belongs_to :group, optional: true
88

99
validates :title, presence: true
10-
validates :visibility, inclusion: { in: %w[everybody alumni members] }
10+
validates :visibility, inclusion: { in: %w[public alumni members] }
1111

1212
scope :publicly_visible, lambda {
13-
joins(:photo_album).where(photo_albums: { visibility: 'everybody' })
13+
joins(:photo_album).where(photo_albums: { visibility: 'public' })
1414
}
1515
scope :alumni_visible, lambda { |start_date, end_date|
1616
joins(:photo_album)
1717
.where(photo_albums: { visibility: 'alumni' })
18-
.or(photo_albums: { visibility: 'everybody' })
18+
.or(photo_albums: { visibility: 'public' })
1919
.or(where.not(date: nil).where(date: start_date..end_date))
2020
.or(where(date: nil).where(created_at: start_date..end_date))
2121
}

app/models/photo_comment.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,10 @@ class PhotoComment < ApplicationRecord
66

77
validates :content, presence: true, length: { minimum: 1, maximum: 500 }
88

9-
scope :publicly_visible, lambda {
10-
joins(:photo_album).where(photo_albums: { visibility: 'everybody' })
11-
}
12-
139
scope :alumni_visible, lambda { |start_date, end_date|
1410
joins(:photo_album)
1511
.where(photo_albums: { visibility: 'alumni' })
16-
.or(photo_albums: { visibility: 'everybody' })
12+
.or(photo_albums: { visibility: 'public' })
1713
.or(where.not(photo_albums: { date: nil}).where(photo_albums: { date: start_date..end_date}))
1814
.or(where(photo_albums: { date: nil }).where(photo_albums: { created_at: start_date..end_date}))
1915
}

app/policies/photo_album_policy.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def resolve # rubocop:disable Metrics/AbcSize
55
membership = user.memberships.joins(:group).where(groups: { name: 'Leden' }).first
66
return scope.publicly_visible if membership.nil?
77

8-
scope.posted_between_or_publicly_visible(
8+
scope.alumni_visible(
99
membership.start_date&.advance(months: -18),
1010
membership.end_date&.advance(months: 6)
1111
)

app/policies/photo_comment_policy.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
class PhotoCommentPolicy < ApplicationPolicy
22
class Scope < ApplicationPolicy::Scope
3-
def resolve
3+
def resolve # rubocop:disable Metrics/AbcSize
44
if user_can_read?
5-
scope
6-
else
7-
scope.publicly_visible
5+
membership = user.memberships.joins(:group).where(groups: { name: 'Leden' }).first
6+
return if membership.nil?
7+
8+
scope.alumni_visible(
9+
membership.start_date&.advance(months: -18),
10+
membership.end_date&.advance(months: 6)
11+
)
812
end
913
end
1014
end

app/policies/photo_policy.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
class PhotoPolicy < ApplicationPolicy
22
class Scope < ApplicationPolicy::Scope
3-
def resolve
3+
def resolve # rubocop:disable Metrics/AbcSize
44
if user_can_read?
5-
scope
6-
else
7-
scope.publicly_visible
5+
membership = user.memberships.joins(:group).where(groups: { name: 'Leden' }).first
6+
return if membership.nil?
7+
8+
scope.alumni_visible(
9+
membership.start_date&.advance(months: -18),
10+
membership.end_date&.advance(months: 6)
11+
)
812
end
913
end
1014
end
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class AlumniVisibility < ActiveRecord::Migration[7.0]
2+
def up
3+
add_column :photo_albums, :visibility, :string, default: 'members'
4+
5+
photoAlbums.find_each do |record|
6+
record.update!(visibility: record.publicly_visible ? 'public' : 'members')
7+
end
8+
9+
remove_column :photo_albums, :publicly_visible
10+
end
11+
12+
def down
13+
add_column :photo_albums, :publicly_visible, :boolean, default: false
14+
15+
photoAlbums.find_each do |record|
16+
record.update!(publicly_visible: record.visibility == 'public')
17+
end
18+
19+
remove_column :photo_albums, :visibility
20+
end
21+
end

0 commit comments

Comments
 (0)