docbrown/spec/services
Jeremy Friesen a40efc6bbd
Refactoring questions asked of user (#15762)
* Refactoring questions asked of user

In this pull request, I'm extracting and normalizing role-based
questions asked of the user.

Prior to this commit, our codebase has asked two very similar questions
of our user model:

- `user.has_role?(:admin)`
- `user.admin?`

In asking `has_role?(:admin)` we are relying on implementation details
of the rolify gem.  In addition, the `has_role?` question asked
throughout controllers or views means that it's harder to create
hieararchies of permissions.

In favoring `user.admin?` as our question, we can use that indirection
as an opportunity to discuss and decide "Should someone with the
`:super_admin` role be `user.admin? == true`?"

The details of this commit is to do three primary things:

1. Ask the `has_role?` questions in "one place" in the code (e.g. the
   `Authorizer` module)
2. Extract the role based questions that are on the `User` model and
   provde backwards compatable delegation.
3. Structure the code so that it's harder to accidentally call
   `user.has_role?` (e.g., make `User#has_role?` and `User#has_any_role?`
   private).

This is related to #15624 and the updates are informed by discussion in
PR #15691.  This commit supplants #15691.

* Refactoring the liquid tag policy tests

* Fixing typo

* Bump for travis
2021-12-21 12:45:12 -05:00
..
articles Spelling (#15702) 2021-12-07 06:59:10 -07:00
audit Remove Audit::Event::Util (#8704) 2020-06-16 12:50:53 -04:00
authentication Spelling (#15702) 2021-12-07 06:59:10 -07:00
badges Skip badge awards for spam accounts (#15344) 2021-11-10 10:48:01 -06:00
broadcasts/welcome_notification Forem passport (cont) (#14759) 2021-09-30 06:47:45 -06:00
color Spelling (#15702) 2021-12-07 06:59:10 -07:00
credits Refactoring user_controller separating some classes to service (#10384) 2020-10-05 10:41:59 +02:00
discover Add Forem Discover registration worker and service (#14865) 2021-10-01 10:27:31 -04:00
edge_cache ✂✂✂ Remove events (#15062) 2021-10-15 09:31:08 -04:00
exporter Create Settings::SMTP (#13943) 2021-06-14 10:29:43 -04:00
fastly_config Abstract DatadogStatsClient to ForemStatsClient (#12304) 2021-01-27 11:25:44 -05:00
feeds Use the rss item's url when handling relative image links (#15497) 2021-12-09 14:08:54 -06:00
follows Move app/labor/follow_checker.rb to service (#11613) 2020-12-01 14:14:36 +07:00
giphy Adjust type tags for RSpec (#4864) 2019-11-20 13:01:30 -05:00
github Don't use "not_to raise_error" with specific class (#10602) 2020-10-05 17:29:01 +02:00
homepage Serialize tag flares correctly in Homepage::ArticleSerializer (#13537) 2021-04-27 16:07:05 +02:00
html Remove line break after linking username mentions (#15788) 2021-12-16 10:39:07 -06:00
images Fix rotation of images uploaded from iPhones (#15010) 2021-10-11 15:17:14 -04:00
loggers Move LogWorkerQueueStats from labor to services (#11642) 2020-11-30 09:31:15 +07:00
mailchimp Handle GibbonError when Mailchimp api key was not set (#14695) 2021-09-13 10:30:35 -05:00
markdown_processor Disable dash replacement filter in markdown fixer (#15839) 2021-12-20 15:39:55 -06:00
mentions Issue #9077 has already been resolved, added specs (#15342) 2021-11-17 11:27:50 +02:00
moderator Refactoring questions asked of user (#15762) 2021-12-21 12:45:12 -05:00
notification_subscriptions Add Article post_commit when user_id changes with specs (#15132) 2021-10-25 10:53:21 +07:00
notifications Mobile mention notifications (#15780) 2021-12-16 11:06:54 -06:00
organizations Organizations delete optimizations and refactoring (#13610) 2021-05-11 12:14:55 +03:00
payments Validate payment info present before attempting to process (#15629) 2021-12-03 13:09:23 -06:00
podcasts Spelling (#15702) 2021-12-07 06:59:10 -07:00
profile_fields Remove check_box type from profile fields (#14832) 2021-09-30 13:27:39 -04:00
push_notifications Fix Rpush app when creating Android notification (#15529) 2021-11-30 10:05:40 +05:30
re_captcha Spelling (#15702) 2021-12-07 06:59:10 -07:00
search Ensuring reading list excludes unpublished articles (#15490) 2021-11-24 13:22:26 -05:00
secrets
settings/authentication Disable all providers when providers_to_enable param is blank (#15260) 2021-11-02 21:20:26 -04:00
slack Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
spam Refactoring Spam Handler (#15412) 2021-11-30 12:45:12 -05:00
tag_moderators ✂✂✂ Remove Connect (#14734) 2021-11-18 08:21:00 -06:00
twitter_client Rename SiteConfig to Settings::General (#13573) 2021-05-21 14:45:37 +02:00
user_subscriptions Update CODEOWNERS and team names in TODO comments (#9460) 2020-07-24 12:17:20 +07:00
users Automatically create user profile if it's missing (#15787) 2021-12-15 14:03:51 -05:00
webhook [deploy] Rubocop: fix violations of Layout/LineLength (#9197) 2020-07-08 08:36:36 -05:00
analytics_service_spec.rb Add counts for number of views when showing referrers (#14600) 2021-08-27 08:03:43 -05:00
article_with_video_creation_service_spec.rb Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
bulk_sql_delete_spec.rb Routine rubocop fixes (#10237) 2020-09-08 12:06:47 -04:00
email_digest_article_collector_spec.rb Don't include "anti-followed" tags in email digest (#14782) 2021-09-30 10:44:38 +07:00
email_digest_spec.rb Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121) 2021-07-08 09:31:34 -05:00
feature_flag_spec.rb Replace calls to Flipper with FeatureFlag (#11386) 2020-11-12 14:15:33 +01:00
flare_tag_spec.rb [deploy] Optimization: Dont Use Redis For Flare Tag IDs, Load Them On Boot (#8987) 2020-06-30 09:48:08 -05:00
medium_article_retrieval_service_spec.rb Nokogiri::HTML should receive the body, not the response object (#5297) 2019-12-31 08:46:49 -05:00
rate_limit_checker_spec.rb Pin posts to feed (#13807) 2021-06-04 10:54:53 +02:00
tag_adjustment_creation_service_spec.rb nothing to see here....except maybe reverting a push to master (#8308) 2020-06-05 20:34:21 -05:00
tag_adjustment_update_service_spec.rb nothing to see here....except maybe reverting a push to master (#8308) 2020-06-05 20:34:21 -05:00