Merge commit '6ffa251d6ad239d1ad2b95e784c3a7a21cbf50e8' into glitch-soc/merge-upstream

pull/2927/head
Claire 2025-01-03 12:34:47 +01:00
commit 68106f250c
140 changed files with 278 additions and 159 deletions

View File

@ -14,6 +14,11 @@
// If we do not want a package to be grouped with others, we need to set its groupName
// to `null` after any other rule set it to something.
dependencyDashboardHeader: 'This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more. Before approving any upgrade: read the description and comments in the [`renovate.json5` file](https://github.com/mastodon/mastodon/blob/main/.github/renovate.json5).',
constraints: {
// Mastodon should work on Ruby 3.4, but its test dependencies are currently uninstallable on Ruby 3.4.
// TODO: remove this once https://github.com/briandunn/flatware/issues/103 is fixed
ruby: '3.3',
},
postUpdateOptions: ['yarnDedupeHighest'],
packageRules: [
{

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true
source 'https://rubygems.org'
ruby '>= 3.2.0'
ruby '>= 3.2.0', '< 3.5'
gem 'propshaft'
gem 'puma', '~> 6.3'
@ -79,7 +79,7 @@ gem 'redis', '~> 4.5', require: ['redis', 'redis/connection/hiredis']
gem 'redis-namespace', '~> 1.10'
gem 'rqrcode', '~> 2.2'
gem 'ruby-progressbar', '~> 1.13'
gem 'sanitize', '~> 6.0'
gem 'sanitize', '~> 7.0'
gem 'scenic', '~> 1.7'
gem 'sidekiq', '~> 6.5'
gem 'sidekiq-bulk', '~> 0.2.0'
@ -183,7 +183,7 @@ group :development do
gem 'letter_opener_web', '~> 3.0'
# Security analysis CLI tools
gem 'brakeman', '~> 6.0', require: false
gem 'brakeman', '~> 7.0', require: false
gem 'bundler-audit', '~> 0.9', require: false
# Linter CLI for HAML files
@ -222,7 +222,7 @@ gem 'concurrent-ruby', require: false
gem 'connection_pool', require: false
gem 'xorcist', '~> 1.1'
gem 'net-http', '~> 0.5.0'
gem 'net-http', '~> 0.6.0'
gem 'rubyzip', '~> 2.3'
gem 'hcaptcha', '~> 7.1'

View File

@ -94,8 +94,8 @@ GEM
ast (2.4.2)
attr_required (1.0.2)
aws-eventstream (1.3.0)
aws-partitions (1.1025.0)
aws-sdk-core (3.214.0)
aws-partitions (1.1029.0)
aws-sdk-core (3.214.1)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
@ -126,7 +126,7 @@ GEM
blurhash (0.1.8)
bootsnap (1.18.4)
msgpack (~> 1.2)
brakeman (6.2.2)
brakeman (7.0.0)
racc
browser (6.2.0)
brpoplpush-redis_script (0.1.3)
@ -217,7 +217,7 @@ GEM
htmlentities (~> 4.3.3)
launchy (>= 2.1, < 4.0)
mail (~> 2.7)
erubi (1.13.0)
erubi (1.13.1)
et-orbi (1.2.11)
tzinfo
excon (0.112.0)
@ -234,7 +234,7 @@ GEM
net-http (>= 0.5.0)
fast_blank (1.0.1)
fastimage (2.3.1)
ffi (1.17.0)
ffi (1.17.1)
ffi-compiler (1.3.2)
ffi (>= 1.15.5)
rake
@ -390,7 +390,7 @@ GEM
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.23.1)
loofah (2.24.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
@ -413,9 +413,9 @@ GEM
msgpack (1.7.5)
multi_json (1.15.0)
mutex_m (0.3.0)
net-http (0.5.0)
net-http (0.6.0)
uri
net-imap (0.5.2)
net-imap (0.5.4)
date
net-protocol
net-ldap (0.19.0)
@ -426,10 +426,10 @@ GEM
net-smtp (0.5.0)
net-protocol
nio4r (2.7.4)
nokogiri (1.17.2)
nokogiri (1.18.1)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oj (3.16.8)
oj (3.16.9)
bigdecimal (>= 3.0)
ostruct (>= 0.2)
omniauth (2.1.2)
@ -608,7 +608,7 @@ GEM
rack
rack-session (1.0.2)
rack (< 3)
rack-test (2.1.0)
rack-test (2.2.0)
rack (>= 1.3)
rackup (1.0.1)
rack (< 3)
@ -749,9 +749,9 @@ GEM
fugit (~> 1.1, >= 1.11.1)
safety_net_attestation (0.4.0)
jwt (~> 2.0)
sanitize (6.1.3)
sanitize (7.0.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
nokogiri (>= 1.16.8)
scenic (1.8.0)
activerecord (>= 4.0.0)
railties (>= 4.0.0)
@ -811,7 +811,7 @@ GEM
climate_control
test-prof (1.4.3)
thor (1.3.2)
tilt (2.4.0)
tilt (2.5.0)
timeout (0.4.3)
tpm-key_attestation (0.12.1)
bindata (~> 2.4)
@ -891,7 +891,7 @@ DEPENDENCIES
binding_of_caller (~> 1.0)
blurhash (~> 0.1)
bootsnap (~> 1.18.0)
brakeman (~> 6.0)
brakeman (~> 7.0)
browser
bundler-audit (~> 0.9)
capybara (~> 3.39)
@ -948,7 +948,7 @@ DEPENDENCIES
memory_profiler
mime-types (~> 3.6.0)
mutex_m
net-http (~> 0.5.0)
net-http (~> 0.6.0)
net-ldap (~> 0.18)
nokogiri (~> 1.15)
oj (~> 3.14)
@ -1007,7 +1007,7 @@ DEPENDENCIES
ruby-progressbar (~> 1.13)
ruby-vips (~> 2.2)
rubyzip (~> 2.3)
sanitize (~> 6.0)
sanitize (~> 7.0)
scenic (~> 1.7)
selenium-webdriver
shoulda-matchers
@ -1037,4 +1037,4 @@ RUBY VERSION
ruby 3.3.6p108
BUNDLED WITH
2.6.1
2.6.2

View File

@ -384,6 +384,7 @@ class Status extends ImmutablePureComponent {
toggleHidden: this.handleHotkeyToggleHidden,
toggleSensitive: this.handleHotkeyToggleSensitive,
openMedia: this.handleHotkeyOpenMedia,
onTranslate: this.handleTranslate,
};
let media, statusAvatar, prepend, rebloggedByText;

View File

@ -66,6 +66,10 @@ class KeyboardShortcuts extends ImmutablePureComponent {
<td><kbd>enter</kbd>, <kbd>o</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.enter' defaultMessage='to open status' /></td>
</tr>
<tr>
<td><kbd>t</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.translate' defaultMessage='to translate a post' /></td>
</tr>
<tr>
<td><kbd>e</kbd></td>
<td><FormattedMessage id='keyboard_shortcuts.open_media' defaultMessage='to open media' /></td>

View File

@ -474,6 +474,10 @@ class Status extends ImmutablePureComponent {
this.handleToggleMediaVisibility();
};
handleHotkeyTranslate = () => {
this.handleTranslate(this.props.status);
};
handleMoveUp = id => {
const { status, ancestorsIds, descendantsIds } = this.props;
@ -650,6 +654,7 @@ class Status extends ImmutablePureComponent {
toggleHidden: this.handleHotkeyToggleHidden,
toggleSensitive: this.handleHotkeyToggleSensitive,
openMedia: this.handleHotkeyOpenMedia,
onTranslate: this.handleHotkeyTranslate,
};
return (

View File

@ -126,6 +126,7 @@ const keyMap = {
toggleHidden: 'x',
toggleSensitive: 'h',
openMedia: 'e',
onTranslate: 't',
};
class SwitchingColumnsArea extends PureComponent {

View File

@ -835,6 +835,7 @@
"status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
"status.redraft": "Slet og omformulér",
"status.remove_bookmark": "Fjern bogmærke",
"status.remove_favourite": "Fjern fra favoritter",
"status.replied_in_thread": "Svaret i tråd",
"status.replied_to": "Besvarede {name}",
"status.reply": "Besvar",

View File

@ -177,7 +177,7 @@
"compose_form.hashtag_warning": "Dieser Beitrag wird unter keinem Hashtag sichtbar sein, weil er nicht öffentlich ist. Nur öffentliche Beiträge können nach Hashtags durchsucht werden.",
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Andere können dir folgen und deine Beiträge sehen, die nur für Follower bestimmt sind.",
"compose_form.lock_disclaimer.lock": "geschützt",
"compose_form.placeholder": "Was gibts Neues?",
"compose_form.placeholder": "Was gibts Neues?",
"compose_form.poll.duration": "Umfragedauer",
"compose_form.poll.multiple": "Mehrfachauswahl",
"compose_form.poll.option_placeholder": "{number}. Auswahl",
@ -836,6 +836,7 @@
"status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird das Profil hier erscheinen.",
"status.redraft": "Löschen und neu erstellen",
"status.remove_bookmark": "Lesezeichen entfernen",
"status.remove_favourite": "Aus Favoriten entfernen",
"status.replied_in_thread": "Antwortete im Thread",
"status.replied_to": "Antwortete {name}",
"status.reply": "Antworten",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "Show/hide media",
"keyboard_shortcuts.toot": "Start a new post",
"keyboard_shortcuts.translate": "to translate a post",
"keyboard_shortcuts.unfocus": "Unfocus compose textarea/search",
"keyboard_shortcuts.up": "Move up in the list",
"lightbox.close": "Close",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun afiŝon. Kiam iu faras tion, ri aperos ĉi tie.",
"status.redraft": "Forigi kaj reskribi",
"status.remove_bookmark": "Forigi legosignon",
"status.remove_favourite": "Forigi el plej ŝatataj",
"status.replied_in_thread": "Respondis en fadeno",
"status.replied_to": "Respondis al {name}",
"status.reply": "Respondi",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.",
"status.redraft": "Eliminar mensaje original y editarlo",
"status.remove_bookmark": "Quitar marcador",
"status.remove_favourite": "Quitar de favoritos",
"status.replied_in_thread": "Respuesta en hilo",
"status.replied_to": "Respondió a {name}",
"status.reply": "Responder",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Nadie impulsó esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.",
"status.redraft": "Borrar y volver a borrador",
"status.remove_bookmark": "Eliminar marcador",
"status.remove_favourite": "Eliminar de favoritos",
"status.replied_in_thread": "Respondido en el hilo",
"status.replied_to": "Respondió a {name}",
"status.reply": "Responder",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Nadie ha impulsado esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.",
"status.redraft": "Borrar y volver a borrador",
"status.remove_bookmark": "Eliminar marcador",
"status.remove_favourite": "Eliminar de favoritos",
"status.replied_in_thread": "Respondió en el hilo",
"status.replied_to": "Respondió a {name}",
"status.reply": "Responder",

View File

@ -12,7 +12,7 @@
"about.powered_by": "Hajutatud sotsiaalmeedia, mille taga on {mastodon}",
"about.rules": "Serveri reeglid",
"account.account_note_header": "Isiklik märge",
"account.add_or_remove_from_list": "Lisa või Eemalda nimekirjadest",
"account.add_or_remove_from_list": "Lisa või Eemalda loeteludest",
"account.badges.bot": "Robot",
"account.badges.group": "Grupp",
"account.block": "Blokeeri @{name}",
@ -150,7 +150,7 @@
"column.follow_requests": "Jälgimistaotlused",
"column.home": "Kodu",
"column.list_members": "Halda loendi liikmeid",
"column.lists": "Nimekirjad",
"column.lists": "Loetelud",
"column.mutes": "Vaigistatud kasutajad",
"column.notifications": "Teated",
"column.pins": "Kinnitatud postitused",
@ -426,7 +426,7 @@
"intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}",
"intervals.full.minutes": "{number, plural, one {# minut} other {# minutit}}",
"keyboard_shortcuts.back": "Liigu tagasi",
"keyboard_shortcuts.blocked": "avamaks blokeeritud kasutajate nimistut",
"keyboard_shortcuts.blocked": "Ava blokeeritud kasutajate nimistu",
"keyboard_shortcuts.boost": "Jaga",
"keyboard_shortcuts.column": "Fookus veerule",
"keyboard_shortcuts.compose": "Fookus teksti koostamise alale",
@ -474,14 +474,27 @@
"lists.add_to_lists": "Lisa {name} loetellu",
"lists.create": "Loo",
"lists.create_a_list_to_organize": "Loo uus loetelu, et organiseerida oma avalehe lõime",
"lists.delete": "Kustuta nimekiri",
"lists.edit": "Muuda nimekirja",
"lists.create_list": "Loo loetelu",
"lists.delete": "Kustuta loetelu",
"lists.done": "Valmis",
"lists.edit": "Muuda loetelu",
"lists.exclusive": "Peida avalehelt liikmed",
"lists.exclusive_hint": "Kui keegi on selles loetelus, peida ta avalehe lõimest, vältimaks tema postituste kaks korda nägemist.",
"lists.find_users_to_add": "Leia kasutajaid, keda lisada",
"lists.list_members": "Loetelu liikmed",
"lists.list_members_count": "{count, plural, one {# liige} other {# liiget}}",
"lists.list_name": "Loetelu nimi",
"lists.new_list_name": "Loetelu uus nimi",
"lists.no_lists_yet": "Pole veel loetelusid.",
"lists.no_members_yet": "Pole veel liikmeid.",
"lists.no_results_found": "Ei leidnud tulemusi.",
"lists.remove_member": "Eemalda",
"lists.replies_policy.followed": "Igalt jälgitud kasutajalt",
"lists.replies_policy.list": "Listi liikmetelt",
"lists.replies_policy.list": "Loetelu liikmetelt",
"lists.replies_policy.none": "Mitte kelleltki",
"lists.save": "Salvesta",
"lists.search": "Otsi",
"lists.show_replies_to": "Kaasa ka loetelu liikmete vastused",
"load_pending": "{count, plural, one {# uus kirje} other {# uut kirjet}}",
"loading_indicator.label": "Laadimine…",
"media_gallery.hide": "Peida",
@ -511,7 +524,7 @@
"navigation_bar.follow_requests": "Jälgimistaotlused",
"navigation_bar.followed_tags": "Jälgitavad märksõnad",
"navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad",
"navigation_bar.lists": "Nimekirjad",
"navigation_bar.lists": "Loetelud",
"navigation_bar.logout": "Logi välja",
"navigation_bar.moderation": "Modereerimine",
"navigation_bar.mutes": "Vaigistatud kasutajad",
@ -636,7 +649,11 @@
"notifications_permission_banner.enable": "Luba töölaua märguanded",
"notifications_permission_banner.how_to_control": "Et saada teateid, ajal mil Mastodon pole avatud, luba töölauamärguanded. Saad täpselt määrata, mis tüüpi tegevused tekitavad märguandeid, kasutates peale teadaannete sisse lülitamist üleval olevat nuppu {icon}.",
"notifications_permission_banner.title": "Ära jää millestki ilma",
"onboarding.follows.back": "Tagasi",
"onboarding.follows.done": "Valmis",
"onboarding.follows.empty": "Kahjuks ei saa hetkel tulemusi näidata. Proovi kasutada otsingut või lehitse uurimise lehte, et leida inimesi, keda jälgida, või proovi hiljem uuesti.",
"onboarding.follows.search": "Otsi",
"onboarding.follows.title": "Jälgi inimesi, et alustada",
"onboarding.profile.discoverable": "Muuda mu profiil avastatavaks",
"onboarding.profile.discoverable_hint": "Kui nõustud enda avastamisega Mastodonis, võivad sinu postitused ilmuda otsingutulemustes ja trendides ning sinu profiili võidakse soovitada sinuga sarnaste huvidega inimestele.",
"onboarding.profile.display_name": "Näidatav nimi",

View File

@ -835,6 +835,7 @@
"status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä julkaisua. Kun joku tekee niin, tulee hän tähän näkyviin.",
"status.redraft": "Poista ja palauta muokattavaksi",
"status.remove_bookmark": "Poista kirjanmerkki",
"status.remove_favourite": "Poista suosikeista",
"status.replied_in_thread": "Vastasi ketjuun",
"status.replied_to": "Vastaus käyttäjälle {name}",
"status.reply": "Vastaa",

View File

@ -835,6 +835,7 @@
"status.reblogs.empty": "Eingin hevur stimbrað hendan postin enn. Tá onkur stimbrar postin, verður hann sjónligur her.",
"status.redraft": "Strika & ger nýggja kladdu",
"status.remove_bookmark": "Gloym",
"status.remove_favourite": "Strika í yndismerkjum",
"status.replied_in_thread": "Svaraði í tráðnum",
"status.replied_to": "Svaraði {name}",
"status.reply": "Svara",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Personne na encore boosté cette publication. Lorsque quelquun le fera, elle apparaîtra ici.",
"status.redraft": "Supprimer et réécrire",
"status.remove_bookmark": "Retirer des signets",
"status.remove_favourite": "Retirer des favoris",
"status.replied_in_thread": "A répondu dans un fil de discussion",
"status.replied_to": "A répondu à {name}",
"status.reply": "Répondre",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Personne na encore partagé ce message. Lorsque quelquun le fera, il apparaîtra ici.",
"status.redraft": "Supprimer et réécrire",
"status.remove_bookmark": "Retirer des marque-pages",
"status.remove_favourite": "Retirer des favoris",
"status.replied_in_thread": "A répondu dans un fil de discussion",
"status.replied_to": "En réponse à {name}",
"status.reply": "Répondre",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.",
"status.redraft": "Törlés és újraírás",
"status.remove_bookmark": "Könyvjelző eltávolítása",
"status.remove_favourite": "Eltávolítás a kedvencek közül",
"status.replied_in_thread": "Válaszolva a szálban",
"status.replied_to": "Megválaszolva {name} számára",
"status.reply": "Válasz",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Ancora nessuno ha rebloggato questo post. Quando qualcuno lo farà, apparirà qui.",
"status.redraft": "Elimina e riscrivi",
"status.remove_bookmark": "Rimuovi segnalibro",
"status.remove_favourite": "Rimuovi dai preferiti",
"status.replied_in_thread": "Ha risposto nella discussione",
"status.replied_to": "Risposta a {name}",
"status.reply": "Rispondi",

View File

@ -821,6 +821,7 @@
"status.reblogs.empty": "Šio įrašo dar niekas nepakėlė. Kai kas nors tai padarys, jie bus rodomi čia.",
"status.redraft": "Ištrinti ir parengti iš naujo",
"status.remove_bookmark": "Pašalinti žymę",
"status.remove_favourite": "Šalinti iš mėgstamų",
"status.replied_in_thread": "Atsakyta gijoje",
"status.replied_to": "Atsakyta į {name}",
"status.reply": "Atsakyti",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.",
"status.redraft": "Verwijderen en herschrijven",
"status.remove_bookmark": "Bladwijzer verwijderen",
"status.remove_favourite": "Verwijderen uit favorieten",
"status.replied_in_thread": "Reageerde in gesprek",
"status.replied_to": "Reageerde op {name}",
"status.reply": "Reageren",

View File

@ -11,6 +11,7 @@
"about.not_available": "Această informație nu a fost pusă la dispoziție pe acest server.",
"about.powered_by": "Media socială descentralizată furnizată de {mastodon}",
"about.rules": "Reguli server",
"account.account_note_header": "Notă personală",
"account.add_or_remove_from_list": "Adaugă sau elimină din liste",
"account.badges.bot": "Robot",
"account.badges.group": "Grup",
@ -29,11 +30,13 @@
"account.featured_tags.last_status_at": "Ultima postare pe {date}",
"account.featured_tags.last_status_never": "Fără postări",
"account.featured_tags.title": "Haștagurile recomandate de {name}",
"account.follow": "Abonează-te",
"account.follow": "Urmărește",
"account.follow_back": "Urmăreşte înapoi",
"account.followers": "Urmăritori",
"account.followers.empty": "Acest utilizator nu are încă urmăritori.",
"account.followers_counter": "{count, plural, one {{counter} urmăritor} few {{counter} urmăritori} other {{counter} urmăritori}}",
"account.following": "Urmăriți",
"account.following_counter": "{count, plural, one {{counter} urmărit} few {{counter} urmărit} other {{counter} urmărit}}",
"account.follows.empty": "Momentan acest utilizator nu are niciun abonament.",
"account.go_to_profile": "Mergi la profil",
"account.hide_reblogs": "Ascunde distribuirile de la @{name}",
@ -49,6 +52,7 @@
"account.mute_notifications_short": "Amuțește notificările",
"account.mute_short": "Ignoră",
"account.muted": "Pus pe silențios",
"account.mutual": "Mutual",
"account.no_bio": "Nicio descriere furnizată.",
"account.open_original_page": "Deschide pagina originală",
"account.posts": "Postări",
@ -58,12 +62,14 @@
"account.requested_follow": "{name} A cerut să vă urmărească",
"account.share": "Distribuie profilul lui @{name}",
"account.show_reblogs": "Afișează distribuirile de la @{name}",
"account.statuses_counter": "{count, plural, one {{counter} postare} few {{counter} postări} other {{counter} postări}}",
"account.unblock": "Deblochează pe @{name}",
"account.unblock_domain": "Deblochează domeniul {domain}",
"account.unblock_short": "Deblochează",
"account.unendorse": "Nu promova pe profil",
"account.unfollow": "Nu mai urmări",
"account.unmute": "Nu mai ignora pe @{name}",
"account.unmute_notifications_short": "Dezamuțire notificări",
"account.unmute_short": "Reafișare",
"account_note.placeholder": "Click to add a note",
"admin.dashboard.daily_retention": "Rata de retenţie a utilizatorului pe zi după înregistrare",
@ -71,12 +77,29 @@
"admin.dashboard.retention.average": "În medie",
"admin.dashboard.retention.cohort": "Înregistrări lunar",
"admin.dashboard.retention.cohort_size": "Utilizatori noi",
"admin.impact_report.instance_followers": "Urmăritori pe care utilizatorii noștri i-ar pierde",
"admin.impact_report.instance_follows": "Urmăritori pe care utilizatorii lor i-ar pierde",
"admin.impact_report.title": "Rezumatul impactului",
"alert.rate_limited.message": "Vă rugăm să reîncercați după {retry_time, time, medium}.",
"alert.rate_limited.title": "Debit limitat",
"alert.unexpected.message": "A apărut o eroare neașteptată.",
"alert.unexpected.title": "Ups!",
"alt_text_badge.title": "Text alternativ",
"announcement.announcement": "Anunț",
"annual_report.summary.archetype.lurker": "Pânditorul",
"annual_report.summary.archetype.oracle": "Oracolul",
"annual_report.summary.archetype.pollster": "Sondatorul",
"annual_report.summary.archetype.replier": "Fluturele social",
"annual_report.summary.followers.followers": "urmăritori",
"annual_report.summary.followers.total": "{count} total",
"annual_report.summary.here_it_is": "Iată rezumatul dvs. al anului {year}:",
"annual_report.summary.highlighted_post.by_favourites": "cea mai favorizată postare",
"annual_report.summary.highlighted_post.by_reblogs": "cea mai boostată postare",
"annual_report.summary.highlighted_post.by_replies": "postarea cu cele mai multe răspunsuri",
"annual_report.summary.most_used_app.most_used_app": "cea mai utilizată aplicație",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "cel mai utilizat hashtag",
"annual_report.summary.most_used_hashtag.none": "Niciunul",
"annual_report.summary.new_posts.new_posts": "postări noi",
"attachments_list.unprocessed": "(neprocesate)",
"audio.hide": "Ascunde audio",
"boost_modal.combo": "Poți apăsa {combo} pentru a sări peste asta data viitoare",

View File

@ -831,6 +831,7 @@
"status.reblogs.empty": "Këtë mesazh se ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.",
"status.redraft": "Fshijeni & rihartojeni",
"status.remove_bookmark": "Hiqe faqerojtësin",
"status.remove_favourite": "Hiqe nga të parapëlqyerat",
"status.replied_in_thread": "U përgjigj te rrjedha",
"status.replied_to": "Iu përgjigj {name}",
"status.reply": "Përgjigjuni",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "Henüz hiç kimse bu gönderiyi yeniden paylaşmadı. Herhangi bir kullanıcı yeniden paylaştığında burada görüntülenecek.",
"status.redraft": "Sil,Düzenle ve yeniden-paylaş",
"status.remove_bookmark": "Yer işaretini kaldır",
"status.remove_favourite": "Favorilerden kaldır",
"status.replied_in_thread": "Akışta yanıtlandı",
"status.replied_to": "{name} kullanıcısına yanıt verdi",
"status.reply": "Yanıtla",

View File

@ -802,6 +802,7 @@
"status.reblogs.empty": "Ніхто ще не поширив цей допис. Коли хтось це зроблять, вони будуть зображені тут.",
"status.redraft": "Видалити та виправити",
"status.remove_bookmark": "Видалити закладку",
"status.remove_favourite": "Видалити з улюблених",
"status.replied_in_thread": "Відповідь у потоці",
"status.replied_to": "Відповідь для {name}",
"status.reply": "Відповісти",

View File

@ -836,6 +836,7 @@
"status.reblogs.empty": "还没有人转嘟过此条嘟文。转嘟此嘟文的人会显示在这里。",
"status.redraft": "删除并重新编辑",
"status.remove_bookmark": "取消收藏",
"status.remove_favourite": "从喜欢列表中移除",
"status.replied_in_thread": "回复嘟文串",
"status.replied_to": "回复 {name}",
"status.reply": "回复",

View File

@ -835,7 +835,8 @@
"status.reblogs": "{count, plural, other {則轉嘟}}",
"status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。",
"status.redraft": "刪除並重新編輯",
"status.remove_bookmark": "移除書籤",
"status.remove_bookmark": "自書籤中移除",
"status.remove_favourite": "自最愛中移除",
"status.replied_in_thread": "於討論串中回覆",
"status.replied_to": "回覆 {name}",
"status.reply": "回覆",

View File

@ -39,6 +39,11 @@ et:
attributes:
data:
malformed: on vigasel kujul
list_account:
attributes:
account_id:
taken: on juba loetelus
must_be_following: peab olema jälgitav konto
status:
attributes:
reblog:

View File

@ -15,6 +15,11 @@ eu:
user/invite_request:
text: Arrazoia
errors:
attributes:
domain:
invalid: ez da domeinu izen baliogarria
messages:
invalid_domain_on_line: "%{value} ez da domeinu izen baliogarria"
models:
account:
attributes:

View File

@ -132,7 +132,7 @@ et:
filters: Filtrid
follow: Jälgitavad, Vaigistatud ja Blokeeritud
follows: Jälgimised
lists: Nimekirjad
lists: Loetelud
media: Lisatud meedia
mutes: Vaigistused
notifications: Teavitused
@ -176,7 +176,7 @@ et:
read:favourites: näha sinu lemmikuid
read:filters: näha su filtreid
read:follows: näha su jälgimisi
read:lists: näha su nimekirju
read:lists: näha su loetelusid
read:mutes: näha su vaigistusi
read:notifications: näha teateid
read:reports: näha teavitusi
@ -190,7 +190,7 @@ et:
write:favourites: lisada postitusi lemmikuks
write:filters: luua filtreid
write:follows: jälgida inimesi
write:lists: luua nimekirju
write:lists: luua loetelusid
write:media: üles laadida meediafaile
write:mutes: vaigista inimesi ja vestluseid
write:notifications: tühjendada teateid

View File

@ -335,7 +335,7 @@ et:
enabled_msg: Selle emotikoni lubamine õnnestus
image_hint: PNG või GIF suurusega kuni %{size}
list: Loend
listed: Nimekirjastatud
listed: Loetletud
new:
title: Lisa uus emotikon
no_emoji_selected: Emotikone ei muudetud, kuna ühtegi polnud valitud
@ -345,8 +345,8 @@ et:
shortcode_hint: Vähemalt 2 tähemärki, ainult tähted, numbrid ja alakriipsud
title: Emotikonid
uncategorized: Kategoriseerimata
unlist: Kirjendamata
unlisted: Kirjendamata
unlist: Loetlemata
unlisted: Loetlemata
update_failed_msg: Ei saanud seda emotikoni uuendada
updated_msg: Emotikoni uuendamine õnnestus!
upload: Lae üles
@ -828,12 +828,17 @@ et:
media:
title: Meedia
metadata: Metaandmed
no_history: Seda postitust pole muudetud
no_status_selected: Ühtegi postitust ei muudetud, sest ühtegi polnud valitud
open: Ava postitus
original_status: Algne postitus
reblogs: Jagamised
replied_to_html: Vastatud %{acct_link}
status_changed: Muudetud postitus
status_title: Postitajaks @%{name}
title: Postitus kontolt - @%{name}
trending: Populaarne
view_publicly: Nähtav avalikult
visibility: Nähtavus
with_media: Meediaga
strikes:
@ -910,6 +915,19 @@ et:
search: Otsi
title: Märksõnad
updated_msg: Sildi sätted edukalt uuendatud
terms_of_service:
back: Tagasi teenuse tingimustesse
changelog: Mis on muutunud
create: Kasuta enda oma
current: Praegune
draft: Mustand
generate: Kasuta malli
generates:
action: Genereeri
chance_to_review_html: "<strong>Loodud teenusetingimusi ei avaldata automaatselt.</strong> Sul on võimalus tulemused üle vaadata. Palun täida vajalikud andmed, et jätkata."
explanation_html: Esitatud teenusetingimuste näidis on mõeldud ainult teavitamise eesmärgil ja seda ei tohiks tõlgendada kui juriidilist nõuannet mis tahes küsimuses. Palun konsulteeri olukorra ja konkreetsete juriidiliste küsimuste osas oma õigusnõustajaga.
title: Teenuse tingimuste seadistamine
history: Ajalugu
title: Administreerimine
trends:
allow: Luba
@ -1275,7 +1293,7 @@ et:
bookmarks: Järjehoidjad
csv: CSV
domain_blocks: Domeeni blokeeringud
lists: Nimekirjad
lists: Loetelud
mutes: Oled vaigistanud
storage: Meedia hoidla
featured_tags:
@ -1776,7 +1794,7 @@ et:
private_long: Näevad ainult jälgijad
public: Avalik
public_long: Postitused on kõigile näha
unlisted: Kirjendamata
unlisted: Loetlemata
unlisted_long: Kõigile näha, kuid ei näidata avalikel ajajoontel
statuses_cleanup:
enabled: Vanade postituste automaatne kustutamine

View File

@ -128,6 +128,9 @@ et:
show_application: Sa saad sõltumata sellest vaadata, milline äpp su postituse postitas.
tag:
name: Saad muuta ainult tähtede suurtähelisust, näiteks selleks, et muuta seda loetavamaks
terms_of_service_generator:
dmca_address: USA operaatorite puhul kasuta DMCA määratud esindajate kataloogis registreeritud aadressi. Postkastide loetelu on saadaval otsese taotluse korral. Kasuta DMCA määratud esindaja postkastist loobumise taotlust, et saata e-kiri autoriõiguse ametile ja kirjeldada, et oled kodus asuv sisu moderaator, kes kardab kättemaksu või kättemaksu oma tegevuse eest ja vajab postkasti, et eemaldada oma kodune aadress avalikust nähtavusest.
jurisdiction: Nimeta riik, kus elab see, kes arveid maksab. Kui tegemist on äriühingu või muu üksusega, märgi riik, kus see on asutatud, ning vajaduse korral linn, piirkond, territoorium või osariik.
user:
chosen_languages: Keelte valimisel näidatakse avalikel ajajoontel ainult neis keeltes postitusi
role: Rollid määravad, millised õigused kasutajal on.

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::AccountActionsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -8,7 +8,7 @@ RSpec.describe Admin::AccountsController do
before { sign_in current_user, scope: :user }
describe 'GET #index' do
let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:current_user) { Fabricate(:admin_user) }
let(:params) do
{
origin: 'local',
@ -53,7 +53,7 @@ RSpec.describe Admin::AccountsController do
end
describe 'GET #show' do
let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:current_user) { Fabricate(:admin_user) }
describe 'account moderation notes' do
let(:account) { Fabricate(:account) }

View File

@ -16,7 +16,7 @@ RSpec.describe Admin::ActionLogsController do
describe 'GET #index' do
it 'returns 200' do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin'))
sign_in Fabricate(:admin_user)
get :index, params: { page: 1 }
expect(response).to have_http_status(200)

View File

@ -20,7 +20,7 @@ RSpec.describe Admin::BaseController do
it 'returns private cache control headers' do
routes.draw { get 'success' => 'admin/base#success' }
sign_in(Fabricate(:user, role: UserRole.find_by(name: 'Moderator')))
sign_in(Fabricate(:moderator_user))
get :success
expect(response.headers['Cache-Control']).to include('private, no-store')
@ -28,14 +28,14 @@ RSpec.describe Admin::BaseController do
it 'renders admin layout as a moderator' do
routes.draw { get 'success' => 'admin/base#success' }
sign_in(Fabricate(:user, role: UserRole.find_by(name: 'Moderator')))
sign_in(Fabricate(:moderator_user))
get :success
expect(response).to render_template layout: 'admin'
end
it 'renders admin layout as an admin' do
routes.draw { get 'success' => 'admin/base#success' }
sign_in(Fabricate(:user, role: UserRole.find_by(name: 'Admin')))
sign_in(Fabricate(:admin_user))
get :success
expect(response).to render_template layout: 'admin'
end

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::ChangeEmailsController do
render_views
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:admin) { Fabricate(:admin_user) }
before do
sign_in admin

View File

@ -6,7 +6,7 @@ RSpec.describe Admin::ConfirmationsController do
render_views
before do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
sign_in Fabricate(:admin_user), scope: :user
end
describe 'POST #create' do

View File

@ -6,7 +6,7 @@ RSpec.describe Admin::DashboardController do
render_views
describe 'GET #index' do
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Owner')) }
let(:user) { Fabricate(:owner_user) }
before do
stub_system_checks

View File

@ -16,7 +16,7 @@ RSpec.describe Admin::Disputes::AppealsController do
let(:appeal) { Fabricate(:appeal, strike: strike, account: target_account) }
describe 'GET #index' do
let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:current_user) { Fabricate(:admin_user) }
before { appeal }
@ -32,7 +32,7 @@ RSpec.describe Admin::Disputes::AppealsController do
describe 'POST #approve' do
subject { post :approve, params: { id: appeal.id } }
let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:current_user) { Fabricate(:admin_user) }
it 'redirects back to the strike page and notifies target account about approved appeal', :inline_jobs do
emails = capture_emails { subject }
@ -56,7 +56,7 @@ RSpec.describe Admin::Disputes::AppealsController do
describe 'POST #reject' do
subject { post :reject, params: { id: appeal.id } }
let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:current_user) { Fabricate(:admin_user) }
it 'redirects back to the strike page and notifies target account about rejected appeal', :inline_jobs do
emails = capture_emails { subject }

View File

@ -6,7 +6,7 @@ RSpec.describe Admin::DomainBlocksController do
render_views
before do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
sign_in Fabricate(:admin_user), scope: :user
end
describe 'GET #new' do

View File

@ -6,7 +6,7 @@ RSpec.describe Admin::EmailDomainBlocksController do
render_views
before do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
sign_in Fabricate(:admin_user), scope: :user
end
describe 'GET #index' do

View File

@ -6,7 +6,7 @@ RSpec.describe Admin::ExportDomainAllowsController do
render_views
before do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
sign_in Fabricate(:admin_user), scope: :user
end
describe 'GET #new' do

View File

@ -6,7 +6,7 @@ RSpec.describe Admin::ExportDomainBlocksController do
render_views
before do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
sign_in Fabricate(:admin_user), scope: :user
end
describe 'GET #new' do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::FollowRecommendationsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::InstancesController do
render_views
let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:current_user) { Fabricate(:admin_user) }
let!(:account_popular_main) { Fabricate(:account, domain: 'popular') }

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::RelationshipsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::Reports::ActionsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::ReportsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -7,7 +7,7 @@ RSpec.describe Admin::Settings::BrandingController do
describe 'When signed in as an admin' do
before do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
sign_in Fabricate(:admin_user), scope: :user
end
describe 'PUT #update' do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::SiteUploadsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::StatusesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
let(:account) { Fabricate(:account) }
let!(:status) { Fabricate(:status, account: account) }
let(:media_attached_status) { Fabricate(:status, account: account, sensitive: !sensitive) }

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::TermsOfService::DistributionsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
let(:terms_of_service) { Fabricate(:terms_of_service, notification_sent_at: nil) }
before do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::TermsOfService::DraftsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::TermsOfService::GeneratesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::TermsOfService::HistoriesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::TermsOfService::PreviewsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
let(:terms_of_service) { Fabricate(:terms_of_service, notification_sent_at: nil) }
before do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::TermsOfService::TestsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
let(:terms_of_service) { Fabricate(:terms_of_service, notification_sent_at: nil) }
before do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::TermsOfServiceController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::Trends::Links::PreviewCardProvidersController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::Trends::LinksController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::Trends::StatusesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::Trends::TagsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -9,7 +9,7 @@ RSpec.describe Admin::Users::TwoFactorAuthenticationsController do
let(:user) { Fabricate(:user) }
before do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
sign_in Fabricate(:admin_user), scope: :user
end
describe 'DELETE #destroy' do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::WarningPresetsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe Admin::Webhooks::SecretsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user

View File

@ -13,3 +13,15 @@ Fabricator(:user) do
current_sign_in_at { Time.zone.now }
agreement true
end
Fabricator(:admin_user, from: :user) do
role UserRole.find_by(name: 'Admin')
end
Fabricator(:moderator_user, from: :user) do
role UserRole.find_by(name: 'Moderator')
end
Fabricator(:owner_user, from: :user) do
role UserRole.find_by(name: 'Owner')
end

View File

@ -8,7 +8,7 @@ RSpec.describe Admin::AccountAction do
describe '#save!' do
subject { account_action.save! }
let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:account) { Fabricate(:admin_user).account }
let(:target_account) { Fabricate(:account) }
let(:type) { 'disable' }

View File

@ -8,7 +8,7 @@ RSpec.describe Form::AccountBatch do
describe '#save' do
subject { account_batch.save }
let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:account) { Fabricate(:admin_user).account }
let(:account_ids) { [] }
let(:query) { Account.none }

View File

@ -7,7 +7,7 @@ RSpec.describe Form::CustomEmojiBatch do
subject { described_class.new({ current_account: account }.merge(options)) }
let(:options) { {} }
let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:account) { Fabricate(:admin_user).account }
context 'with empty custom_emoji_ids' do
let(:options) { { custom_emoji_ids: [] } }

View File

@ -601,7 +601,7 @@ RSpec.describe User do
end
describe '.those_who_can' do
before { Fabricate(:user, role: UserRole.find_by(name: 'Moderator')) }
before { Fabricate(:moderator_user) }
context 'when there are not any user roles' do
before { UserRole.destroy_all }
@ -618,7 +618,7 @@ RSpec.describe User do
end
context 'when there are users with roles' do
let!(:admin_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let!(:admin_user) { Fabricate(:admin_user) }
it 'returns the users with the role' do
expect(described_class.those_who_can(:manage_blocks)).to eq([admin_user])

View File

@ -18,7 +18,7 @@ RSpec.describe Webhook do
subject { Fabricate.build :webhook, current_account: account }
context 'with account that has permissions' do
let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:account) { Fabricate(:admin_user).account }
it { is_expected.to allow_values(%w(account.created)).for(:events) }
end

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe AccountModerationNotePolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :create? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe AccountPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
let(:alice) { Fabricate(:account) }
@ -70,7 +70,7 @@ RSpec.describe AccountPolicy do
end
permissions :suspend?, :silence? do
let(:staff) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:staff) { Fabricate(:admin_user).account }
context 'when staff' do
context 'when record is staff' do
@ -94,7 +94,7 @@ RSpec.describe AccountPolicy do
end
permissions :memorialize? do
let(:other_admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:other_admin) { Fabricate(:admin_user).account }
context 'when admin' do
context 'when record is admin' do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe AccountWarningPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:account) { Fabricate(:account) }
permissions :show? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe AccountWarningPresetPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :create?, :update?, :destroy? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe Admin::StatusPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
let(:status) { Fabricate(:status, visibility: status_visibility) }
let(:status_visibility) { :public }

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe AnnouncementPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :create?, :update?, :destroy? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe AppealPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
let(:appeal) { Fabricate(:appeal) }

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe AuditLogPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:account) { Fabricate(:account) }
permissions :index? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe CanonicalEmailBlockPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :test?, :create?, :destroy? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe CustomEmojiPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :enable?, :disable? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe DashboardPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:account) { Fabricate(:account) }
permissions :index? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe DeliveryPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :clear_delivery_errors?, :restart_delivery?, :stop_delivery? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe DomainAllowPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :create?, :destroy? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe DomainBlockPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :create?, :destroy?, :update? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe EmailDomainBlockPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :create?, :destroy? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe FollowRecommendationPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :show?, :suppress?, :unsuppress? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe InstancePolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :destroy? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe InvitePolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:user).account }
permissions :index? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe IpBlockPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :create?, :update?, :destroy? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe PreviewCardPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :review? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe PreviewCardProviderPolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :review? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe RelayPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :update? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe ReportNotePolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :create? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe ReportPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :update?, :index?, :show? do

View File

@ -4,7 +4,7 @@ require 'rails_helper'
RSpec.describe RulePolicy do
let(:policy) { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :index?, :create?, :update?, :destroy? do

View File

@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe SettingsPolicy do
subject { described_class }
let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:admin) { Fabricate(:admin_user).account }
let(:john) { Fabricate(:account) }
permissions :update?, :show?, :destroy? do

Some files were not shown because too many files have changed in this diff Show More