Merge commit 'f877aa9d70d0d600961989b8e97c0e0ce3ac1db6' into glitch-soc/merge-upstream
Conflicts: - `.github/dependabot.yml`: Upstream made changes, but we had removed it. Discarded upstream changes. - `.rubocop_todo.yml`: Upstream regenerated the file, we had some glitch-soc-specific ignores. - `app/models/account_statuses_filter.rb`: Minor upstream code style change where glitch-soc had slightly different code due to handling of local-only posts. Updated to match upstream's code style. - `app/models/status.rb`: Upstream moved ActiveRecord callback definitions, glitch-soc had an extra one. Moved the definitions as upstream did. - `app/services/backup_service.rb`: Upstream rewrote a lot of the backup service, glitch-soc had changes because of exporting local-only posts. Took upstream changes and added back code to deal with local-only posts. - `config/routes.rb`: Upstream split the file into different files, while glitch-soc had a few extra routes. Extra routes added to `config/routes/settings.rb`, `config/routes/api.rb` and `config/routes/admin.rb` - `db/schema.rb`: Upstream has new migrations, while glitch-soc had an extra migration. Updated the expected serial number to match upstream's. - `lib/mastodon/version.rb`: Upstream added support to set version tags from environment variables, while glitch-soc has an extra `+glitch` tag. Changed the code to support upstream's feature but prepending a `+glitch`. - `spec/lib/activitypub/activity/create_spec.rb`: Minor code style change upstream, while glitch-soc has extra tests due to `directMessage` handling. Applied upstream's changes while keeping glitch-soc's extra tests. - `spec/models/concerns/account_interactions_spec.rb`: Minor code style change upstream, while glitch-soc has extra tests. Applied upstream's changes while keeping glitch-soc's extra tests.
This commit is contained in:
@ -9,13 +9,13 @@ RSpec.describe AccountModerationNotePolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :create? do
|
||||
context 'staff' do
|
||||
context 'when staff' do
|
||||
it 'grants to create' do
|
||||
expect(subject).to permit(admin, AccountModerationNotePolicy)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not staff' do
|
||||
context 'when not staff' do
|
||||
it 'denies to create' do
|
||||
expect(subject).to_not permit(john, AccountModerationNotePolicy)
|
||||
end
|
||||
@ -29,19 +29,19 @@ RSpec.describe AccountModerationNotePolicy do
|
||||
target_account: Fabricate(:account))
|
||||
end
|
||||
|
||||
context 'admin' do
|
||||
context 'when admin' do
|
||||
it 'grants to destroy' do
|
||||
expect(subject).to permit(admin, account_moderation_note)
|
||||
end
|
||||
end
|
||||
|
||||
context 'owner' do
|
||||
context 'when owner' do
|
||||
it 'grants to destroy' do
|
||||
expect(subject).to permit(john, account_moderation_note)
|
||||
end
|
||||
end
|
||||
|
||||
context 'neither admin nor owner' do
|
||||
context 'when neither admin nor owner' do
|
||||
let(:kevin) { Fabricate(:account) }
|
||||
|
||||
it 'denies to destroy' do
|
||||
|
@ -10,13 +10,13 @@ RSpec.describe AccountPolicy do
|
||||
let(:alice) { Fabricate(:account) }
|
||||
|
||||
permissions :index? do
|
||||
context 'staff' do
|
||||
context 'when staff' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not staff' do
|
||||
context 'when not staff' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john)
|
||||
end
|
||||
@ -24,13 +24,13 @@ RSpec.describe AccountPolicy do
|
||||
end
|
||||
|
||||
permissions :show?, :unsilence?, :unsensitive?, :remove_avatar?, :remove_header? do
|
||||
context 'staff' do
|
||||
context 'when staff' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, alice)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not staff' do
|
||||
context 'when not staff' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, alice)
|
||||
end
|
||||
@ -42,13 +42,13 @@ RSpec.describe AccountPolicy do
|
||||
alice.suspend!
|
||||
end
|
||||
|
||||
context 'staff' do
|
||||
context 'when staff' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, alice)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not staff' do
|
||||
context 'when not staff' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, alice)
|
||||
end
|
||||
@ -56,13 +56,13 @@ RSpec.describe AccountPolicy do
|
||||
end
|
||||
|
||||
permissions :redownload? do
|
||||
context 'admin' do
|
||||
context 'when admin' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin' do
|
||||
context 'when not admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john)
|
||||
end
|
||||
@ -72,21 +72,21 @@ RSpec.describe AccountPolicy do
|
||||
permissions :suspend?, :silence? do
|
||||
let(:staff) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
|
||||
|
||||
context 'staff' do
|
||||
context 'record is staff' do
|
||||
context 'when staff' do
|
||||
context 'when record is staff' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(admin, staff)
|
||||
end
|
||||
end
|
||||
|
||||
context 'record is not staff' do
|
||||
context 'when record is not staff' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, john)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'not staff' do
|
||||
context 'when not staff' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Account)
|
||||
end
|
||||
@ -96,21 +96,21 @@ RSpec.describe AccountPolicy do
|
||||
permissions :memorialize? do
|
||||
let(:other_admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
|
||||
|
||||
context 'admin' do
|
||||
context 'record is admin' do
|
||||
context 'when admin' do
|
||||
context 'when record is admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(admin, other_admin)
|
||||
end
|
||||
end
|
||||
|
||||
context 'record is not admin' do
|
||||
context 'when record is not admin' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, john)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin' do
|
||||
context 'when not admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Account)
|
||||
end
|
||||
@ -118,13 +118,13 @@ RSpec.describe AccountPolicy do
|
||||
end
|
||||
|
||||
permissions :review? do
|
||||
context 'admin' do
|
||||
context 'when admin' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin' do
|
||||
context 'when not admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john)
|
||||
end
|
||||
@ -132,7 +132,7 @@ RSpec.describe AccountPolicy do
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
context 'admin' do
|
||||
context 'when admin' do
|
||||
context 'with a temporarily suspended account' do
|
||||
before { allow(alice).to receive(:suspended_temporarily?).and_return(true) }
|
||||
|
||||
@ -150,7 +150,7 @@ RSpec.describe AccountPolicy do
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin' do
|
||||
context 'when not admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, alice)
|
||||
end
|
||||
|
@ -8,20 +8,20 @@ RSpec.describe BackupPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :create? do
|
||||
context 'not user_signed_in?' do
|
||||
context 'when not user_signed_in?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(nil, Backup)
|
||||
end
|
||||
end
|
||||
|
||||
context 'user_signed_in?' do
|
||||
context 'no backups' do
|
||||
context 'when user_signed_in?' do
|
||||
context 'with no backups' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(john, Backup)
|
||||
end
|
||||
end
|
||||
|
||||
context 'backups are too old' do
|
||||
context 'when backups are too old' do
|
||||
it 'permits' do
|
||||
travel(-8.days) do
|
||||
Fabricate(:backup, user: john.user)
|
||||
@ -31,7 +31,7 @@ RSpec.describe BackupPolicy do
|
||||
end
|
||||
end
|
||||
|
||||
context 'backups are newer' do
|
||||
context 'when backups are newer' do
|
||||
it 'denies' do
|
||||
travel(-3.days) do
|
||||
Fabricate(:backup, user: john.user)
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe CustomEmojiPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :index?, :enable?, :disable? do
|
||||
context 'staff' do
|
||||
context 'when staff' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, CustomEmoji)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not staff' do
|
||||
context 'when not staff' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, CustomEmoji)
|
||||
end
|
||||
@ -23,13 +23,13 @@ RSpec.describe CustomEmojiPolicy do
|
||||
end
|
||||
|
||||
permissions :create?, :update?, :copy?, :destroy? do
|
||||
context 'admin' do
|
||||
context 'when admin' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, CustomEmoji)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin' do
|
||||
context 'when not admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, CustomEmoji)
|
||||
end
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe DomainBlockPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :index?, :show?, :create?, :destroy? do
|
||||
context 'admin' do
|
||||
context 'when admin' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, DomainBlock)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin' do
|
||||
context 'when not admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, DomainBlock)
|
||||
end
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe EmailDomainBlockPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :index?, :show?, :create?, :destroy? do
|
||||
context 'admin' do
|
||||
context 'when admin' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, EmailDomainBlock)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin' do
|
||||
context 'when not admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, EmailDomainBlock)
|
||||
end
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe InstancePolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :index?, :show?, :destroy? do
|
||||
context 'admin' do
|
||||
context 'when admin' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, Instance)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin' do
|
||||
context 'when not admin' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Instance)
|
||||
end
|
||||
|
@ -9,7 +9,7 @@ RSpec.describe InvitePolicy do
|
||||
let(:john) { Fabricate(:user).account }
|
||||
|
||||
permissions :index? do
|
||||
context 'staff?' do
|
||||
context 'when staff?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, Invite)
|
||||
end
|
||||
@ -17,7 +17,7 @@ RSpec.describe InvitePolicy do
|
||||
end
|
||||
|
||||
permissions :create? do
|
||||
context 'has privilege' do
|
||||
context 'with privilege' do
|
||||
before do
|
||||
UserRole.everyone.update(permissions: UserRole::FLAGS[:invite_users])
|
||||
end
|
||||
@ -27,7 +27,7 @@ RSpec.describe InvitePolicy do
|
||||
end
|
||||
end
|
||||
|
||||
context 'does not have privilege' do
|
||||
context 'when does not have privilege' do
|
||||
before do
|
||||
UserRole.everyone.update(permissions: UserRole::Flags::NONE)
|
||||
end
|
||||
@ -39,13 +39,13 @@ RSpec.describe InvitePolicy do
|
||||
end
|
||||
|
||||
permissions :deactivate_all? do
|
||||
context 'admin?' do
|
||||
context 'when admin?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, Invite)
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin?' do
|
||||
context 'when not admin?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Invite)
|
||||
end
|
||||
@ -53,20 +53,20 @@ RSpec.describe InvitePolicy do
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
context 'owner?' do
|
||||
context 'when owner?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(john, Fabricate(:invite, user: john.user))
|
||||
end
|
||||
end
|
||||
|
||||
context 'not owner?' do
|
||||
context 'admin?' do
|
||||
context 'when not owner?' do
|
||||
context 'when admin?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, Fabricate(:invite))
|
||||
end
|
||||
end
|
||||
|
||||
context 'not admin?' do
|
||||
context 'when not admin?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Fabricate(:invite))
|
||||
end
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe RelayPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :update? do
|
||||
context 'admin?' do
|
||||
context 'when admin?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, Relay)
|
||||
end
|
||||
end
|
||||
|
||||
context '!admin?' do
|
||||
context 'with !admin?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Relay)
|
||||
end
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe ReportNotePolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :create? do
|
||||
context 'staff?' do
|
||||
context 'when staff?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, ReportNote)
|
||||
end
|
||||
end
|
||||
|
||||
context '!staff?' do
|
||||
context 'with !staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, ReportNote)
|
||||
end
|
||||
@ -23,22 +23,22 @@ RSpec.describe ReportNotePolicy do
|
||||
end
|
||||
|
||||
permissions :destroy? do
|
||||
context 'admin?' do
|
||||
context 'when admin?' do
|
||||
it 'permit' do
|
||||
report_note = Fabricate(:report_note, account: john)
|
||||
expect(subject).to permit(admin, report_note)
|
||||
end
|
||||
end
|
||||
|
||||
context 'admin?' do
|
||||
context 'owner?' do
|
||||
context 'when admin?' do
|
||||
context 'when owner?' do
|
||||
it 'permit' do
|
||||
report_note = Fabricate(:report_note, account: john)
|
||||
expect(subject).to permit(john, report_note)
|
||||
end
|
||||
end
|
||||
|
||||
context '!owner?' do
|
||||
context 'with !owner?' do
|
||||
it 'denies' do
|
||||
report_note = Fabricate(:report_note)
|
||||
expect(subject).to_not permit(john, report_note)
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe ReportPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :update?, :index?, :show? do
|
||||
context 'staff?' do
|
||||
context 'when staff?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, Report)
|
||||
end
|
||||
end
|
||||
|
||||
context '!staff?' do
|
||||
context 'with !staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Report)
|
||||
end
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe SettingsPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :update?, :show?, :destroy? do
|
||||
context 'admin?' do
|
||||
context 'when admin?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, Settings)
|
||||
end
|
||||
end
|
||||
|
||||
context '!admin?' do
|
||||
context 'with !admin?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Settings)
|
||||
end
|
||||
|
@ -9,13 +9,13 @@ RSpec.describe TagPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :index?, :show?, :update?, :review? do
|
||||
context 'staff?' do
|
||||
context 'when staff?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, Tag)
|
||||
end
|
||||
end
|
||||
|
||||
context '!staff?' do
|
||||
context 'with !staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, Tag)
|
||||
end
|
||||
|
@ -9,21 +9,21 @@ RSpec.describe UserPolicy do
|
||||
let(:john) { Fabricate(:account) }
|
||||
|
||||
permissions :reset_password?, :change_email? do
|
||||
context 'staff?' do
|
||||
context '!record.staff?' do
|
||||
context 'when staff?' do
|
||||
context 'with !record.staff?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, john.user)
|
||||
end
|
||||
end
|
||||
|
||||
context 'record.staff?' do
|
||||
context 'when record.staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(admin, admin.user)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context '!staff?' do
|
||||
context 'with !staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, User)
|
||||
end
|
||||
@ -31,21 +31,21 @@ RSpec.describe UserPolicy do
|
||||
end
|
||||
|
||||
permissions :disable_2fa? do
|
||||
context 'admin?' do
|
||||
context '!record.staff?' do
|
||||
context 'when admin?' do
|
||||
context 'with !record.staff?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, john.user)
|
||||
end
|
||||
end
|
||||
|
||||
context 'record.staff?' do
|
||||
context 'when record.staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(admin, admin.user)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context '!admin?' do
|
||||
context 'with !admin?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, User)
|
||||
end
|
||||
@ -53,15 +53,15 @@ RSpec.describe UserPolicy do
|
||||
end
|
||||
|
||||
permissions :confirm? do
|
||||
context 'staff?' do
|
||||
context '!record.confirmed?' do
|
||||
context 'when staff?' do
|
||||
context 'with !record.confirmed?' do
|
||||
it 'permits' do
|
||||
john.user.update(confirmed_at: nil)
|
||||
expect(subject).to permit(admin, john.user)
|
||||
end
|
||||
end
|
||||
|
||||
context 'record.confirmed?' do
|
||||
context 'when record.confirmed?' do
|
||||
it 'denies' do
|
||||
john.user.confirm!
|
||||
expect(subject).to_not permit(admin, john.user)
|
||||
@ -69,7 +69,7 @@ RSpec.describe UserPolicy do
|
||||
end
|
||||
end
|
||||
|
||||
context '!staff?' do
|
||||
context 'with !staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, User)
|
||||
end
|
||||
@ -77,13 +77,13 @@ RSpec.describe UserPolicy do
|
||||
end
|
||||
|
||||
permissions :enable? do
|
||||
context 'staff?' do
|
||||
context 'when staff?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, User)
|
||||
end
|
||||
end
|
||||
|
||||
context '!staff?' do
|
||||
context 'with !staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, User)
|
||||
end
|
||||
@ -91,21 +91,21 @@ RSpec.describe UserPolicy do
|
||||
end
|
||||
|
||||
permissions :disable? do
|
||||
context 'staff?' do
|
||||
context '!record.admin?' do
|
||||
context 'when staff?' do
|
||||
context 'with !record.admin?' do
|
||||
it 'permits' do
|
||||
expect(subject).to permit(admin, john.user)
|
||||
end
|
||||
end
|
||||
|
||||
context 'record.admin?' do
|
||||
context 'when record.admin?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(admin, admin.user)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context '!staff?' do
|
||||
context 'with !staff?' do
|
||||
it 'denies' do
|
||||
expect(subject).to_not permit(john, User)
|
||||
end
|
||||
|
Reference in New Issue
Block a user