Merge pull request #2927 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 6ffa251d6a
			
			
This commit is contained in:
		
						commit
						84303b8b8e
					
				|  | @ -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: [ | ||||
|     { | ||||
|  |  | |||
							
								
								
									
										8
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										8
									
								
								Gemfile
								
								
								
								
							|  | @ -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' | ||||
|  |  | |||
							
								
								
									
										36
									
								
								Gemfile.lock
								
								
								
								
							
							
						
						
									
										36
									
								
								Gemfile.lock
								
								
								
								
							|  | @ -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 | ||||
|  |  | |||
|  | @ -473,6 +473,7 @@ class Status extends ImmutablePureComponent { | |||
|       bookmark: this.handleHotkeyBookmark, | ||||
|       toggleSensitive: this.handleHotkeyToggleSensitive, | ||||
|       openMedia: this.handleHotkeyOpenMedia, | ||||
|       onTranslate: this.handleTranslate, | ||||
|     }; | ||||
| 
 | ||||
|     let prepend, rebloggedByText; | ||||
|  |  | |||
|  | @ -70,6 +70,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> | ||||
|  |  | |||
|  | @ -485,6 +485,10 @@ class Status extends ImmutablePureComponent { | |||
|     this.props.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`); | ||||
|   }; | ||||
| 
 | ||||
|   handleHotkeyTranslate = () => { | ||||
|     this.handleTranslate(this.props.status); | ||||
|   }; | ||||
| 
 | ||||
|   handleMoveUp = id => { | ||||
|     const { status, ancestorsIds, descendantsIds } = this.props; | ||||
| 
 | ||||
|  | @ -677,6 +681,7 @@ class Status extends ImmutablePureComponent { | |||
|       toggleHidden: this.handleToggleHidden, | ||||
|       toggleSensitive: this.handleHotkeyToggleSensitive, | ||||
|       openMedia: this.handleHotkeyOpenMedia, | ||||
|       onTranslate: this.handleHotkeyTranslate, | ||||
|     }; | ||||
| 
 | ||||
|     return ( | ||||
|  |  | |||
|  | @ -136,6 +136,7 @@ const keyMap = { | |||
|   bookmark: 'd', | ||||
|   toggleSensitive: 'h', | ||||
|   openMedia: 'e', | ||||
|   onTranslate: 't', | ||||
| }; | ||||
| 
 | ||||
| class SwitchingColumnsArea extends PureComponent { | ||||
|  |  | |||
|  | @ -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; | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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 ( | ||||
|  |  | |||
|  | @ -126,6 +126,7 @@ const keyMap = { | |||
|   toggleHidden: 'x', | ||||
|   toggleSensitive: 'h', | ||||
|   openMedia: 'e', | ||||
|   onTranslate: 't', | ||||
| }; | ||||
| 
 | ||||
| class SwitchingColumnsArea extends PureComponent { | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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 gibt’s 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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -836,6 +836,7 @@ | |||
|   "status.reblogs.empty": "Personne n’a encore boosté cette publication. Lorsque quelqu’un 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", | ||||
|  |  | |||
|  | @ -836,6 +836,7 @@ | |||
|   "status.reblogs.empty": "Personne n’a encore partagé ce message. Lorsque quelqu’un 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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -831,6 +831,7 @@ | |||
|   "status.reblogs.empty": "Këtë mesazh s’e 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", | ||||
|  |  | |||
|  | @ -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", | ||||
|  |  | |||
|  | @ -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": "Відповісти", | ||||
|  |  | |||
|  | @ -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": "回复", | ||||
|  |  | |||
|  | @ -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": "回覆", | ||||
|  |  | |||
|  | @ -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: | ||||
|  |  | |||
|  | @ -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: | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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) } | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 } | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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') } | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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) } | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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' } | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 } | ||||
| 
 | ||||
|  |  | |||
|  | @ -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: [] } } | ||||
|  |  | |||
|  | @ -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]) | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 } | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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) } | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue