Allow admin to change asciicast's visibility

element
Marcin Kulik 9 years ago
parent 84acecfdc0
commit bd4240587c

@ -39,7 +39,7 @@ class AsciicastPolicy < ApplicationPolicy
def change_visibility?
return false unless user
record.owner?(user)
user.admin?
end
end

@ -13,7 +13,7 @@ describe AsciicastPolicy do
let(:user) { stub_model(User, admin?: true) }
it "includes form fields + featured" do
expect(subject).to eq([:title, :description, :theme_name, :snapshot_at, :featured])
expect(subject).to eq([:title, :description, :theme_name, :snapshot_at, :featured, :private])
end
end
@ -28,7 +28,7 @@ describe AsciicastPolicy do
let(:asciicast) { Asciicast.new(user: user) }
it "doesn't include featured but includes private" do
expect(subject).to eq([:title, :description, :theme_name, :snapshot_at, :private])
expect(subject).to eq([:title, :description, :theme_name, :snapshot_at])
end
end
end
@ -90,24 +90,4 @@ describe AsciicastPolicy do
end
end
permissions :change_visibility? do
let(:asciicast) { Asciicast.new }
it "denies access if user is nil" do
expect(subject).not_to permit(nil, asciicast)
end
it "grants access if user is owner of the asciicast" do
user = stub_model(User)
asciicast.user = user
expect(subject).to permit(user, asciicast)
end
it "denies access if user isn't owner of the asciicast" do
user = stub_model(User)
asciicast.user = stub_model(User)
expect(subject).not_to permit(user, asciicast)
end
end
end

Loading…
Cancel
Save