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:
Claire
2023-05-08 19:05:55 +02:00
429 changed files with 6138 additions and 3323 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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