* Adds collective_noun and collective_noun_disabled back to SiteConfig model
* Adds a script that appends collective_noun conditionally and matching spec
* Adds a conditional to determine if collective_noun should be appended
* Refactors data_update script logic to be cleaner
* Refactors spec to use method stubs
* Adds a comment to the SiteConfig model about collective_noun fields
* Adds an additional check to the scripts return statement
* Removes collective_noun and collective_noun_disabled from app
* Config Generalization: replaces community_qualified_name with community_name
- Generalizes SiteConfig after the removal of collective_noun field
- Updates copy where necessary to be readable with community_name
- Makes the community_name SiteConfig description more explicit
- Adds flexibility for Admins by removing appended "community"
* Adds a data_update script to remove collective_noun and collective_noun_disabled
* Removes appended community from stories_controller.rb
* Removes unnecessary quotation marks around SiteConfig.community_name.to_s
* Makes SiteConfig community_name description more explicit
* Removes topic from #email_from and replaces arg with _
* Removes argument from #email_from (facepalm)
* Reverts changes to application_mailer and notify_mailer_spec
* Removes default "Community" topic from application_mailer and makes topic optional
* Refactors #prepopulate_new_form to resolve Code Climate failures
* Refactors #email_from even further by use of a ternary operator per review suggestion
* Simplifies the data_update script used to remove collective_noun per review request
* Adds a data_update script to append community to community_name
* Updates data_update script to correctly append Community to community_name
* Removes RemoveCollectiveNounFromConfig and updates other script
* Removes superfluous false from data_update script
* Updates data_update script to be more idiomatic
* Allow any admin to publish welcome thread
* Update app/models/article.rb
Co-authored-by: rhymes <rhymes@hey.com>
* Fix specs by making user for welcome thread an admin
* revert spec changes and update code to include either admin, super_admin, or site mascot
* add specs for scope
* Modify tests and include mascot user
* Fix test
Co-authored-by: rhymes <rhymes@hey.com>
Co-authored-by: mstruve <mollylbs@gmail.com>
* Add gem omniauth-apple
* Integrate omniauth-apple
* Integrate callback
* Add fields
* Add tests, fix bugs and make it all work
* Show only enabled providers for the current user
* Add default profile image for Apple
* Remove localhost patch
* Bring over the changed Apple username if the user changes it
* More specs fixed
* Incorporate feedback from PR
* Fix specs
* Simplify code and fix spec
* Fix Broadcast generators to take into account the new provider
* Fix spec
* Generate a truly unique apple_username
* Fix user specs
* Add omniauth-apple-0.0.2 to vendor cache
* Fix merge conflict and spec
* Update VCR fastly sloan cassette
* Revert "Generate a truly unique apple_username"
This reverts commit 2462875575b0bbd6b3c1d56b25afcd3189671608.
* Fix user specs
* Fix specs
* Fix specs
* Hide Connect Apple button behind a feature flag
* Revert "Hide Connect Apple button behind a feature flag"
This reverts commit 105bde0373389a4eb9b6e948f60734c7e0e99cba.
* Fix line lengths
* Fix spec
* ES tag
* CSRF bypass for Apple callback
* custom user_nickname in Apple provider with small tweaks + omniauth-apple bump
* Fixes username specs
* Makes Apple users default image Users::ProfileImageGenerator
* Fallback to mascot_image_url in test environment to avoid breaking Travis
* Fixes Apple CSRF error + makes default nickname more readable
* Trigger Travis
* Better devise config
* Apple SiteConfig entires in /admin/config
* Fixing specs
* Adds beta_access? to Authentication::Providers::Provider
* Fixes specs
* Codeclimate double quote fix in Gemfile
* Fixes /admin/config allowed params & adds feature flag for provider beta_access?
* Remove Enfile & adds temporary docs
* Adds custom apple auth provider settings
* Fix authenticator spec
* Fix configs spec (use last instead of first to avoid apple special case)
* Remove dangling fields from /admin/config
* updates feature flag
* More test fixes
* Hide config behind feature flag too
* omniauth-apple bump
* Takes care of edge case fallback
* Reverse apple_username update
* Adds auth_time to info hash in apple omniauth mock
* Switch to next instead of nesting for feature flag
* Fixes CVE-2015-9284
* Fixes specs after auth providers initiatior refactor from GET to POST
* Spec fixes
* More spec fixes
* Fix Rails codebase reference link
Co-authored-by: rhymes <rhymesete@gmail.com>
Co-authored-by: rhymes <rhymes@hey.com>
* Fix html variant image prefix logic
* Update app/models/html_variant.rb
Co-authored-by: Mac Siri <mac@dev.to>
* Update spec/models/html_variant_spec.rb
Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
* Use helper to simplify url code and update spec
* Provide Imgproxy default endpoint
Co-authored-by: Mac Siri <mac@dev.to>
Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
Co-authored-by: Mac Siri <krairit.siri@gmail.com>
* Display gdpr delete requests for deleted users in admin
* Added a test for destroy a gdpr request
* Reorganized gdpr requests menu
* Update schema version
* Added a link to the flash notice after user delete by admin
* Fix namespace for tests
* Aligh schema.rb with master
* Added a missing newline
* Removed unused partial
* Fix typo
Co-authored-by: Michael Kohl <me@citizen428.net>
* Replaced string with symbols for AR
Co-authored-by: Michael Kohl <me@citizen428.net>
* Added an AuditLog record on gdpr delete confirmation
* Make email and user_id required in Users::GdprDeleteRequest
* Checked out package.json from master
* Fix Gdpr => GDPR
* Added missing space
* Remove unneeded freeze
Co-authored-by: Michael Kohl <me@citizen428.net>
* Adds a lower() query to the DB in Stories#show
* Restructure spec
* bypass article callbacks in order to test edge case
* Fixes spec
* Change the approach to unsure downcase path in Article model
* Move .downcase call to set_caches before_save callback
* Adds data update script for fixing offending Article paths
* Moves model tests to correct block
* Apply suggestions from code review
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
* Render left sidebar attributes on profile
* Display header profile fields
* Make changes to protect DEV data
* Don't render DEV header fields twice
* Wrap profile UI changes in a FeatureFlag
* Add spec to test mulitple display areas
* Use select over reject
Co-authored-by: Michael Kohl <me@citizen428.net>
* Move comment for documentation generators
* Update dev profile fields csv data
Co-authored-by: Michael Kohl <me@citizen428.net>
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
* Feature 🚀 : Ability to delete messages in chat channels
- Sending message ID to frontend
- Deleting Message
- Use pusher to delete message realtime
* Minor Bug 🐞: Show message action only for current user
- User can delete or edit their own messages
* Test cases added
* Bug 🐞: Update message id for receiver
Message id was not sent to receiver by pusher
* Refactoring🛠: Message controller refactoring
* Test Cases📝 : Specs for Delete message added
* Feature 🚀 : Ability to edit messages
* Test Cases📝 : Specs for Edit message added
* Merge conflict resolved
* UI completed for Create Channel
* API for create channel & invitations
* 🚀 Combining Backend and Frontend
* Test cases added
* UI completed for Create Channel
* API for create channel & invitations
* 🚀 Combining Backend and Frontend
* Test cases added
* fix suggestions
* add test cases
* replace mod_relations_admin to tag_moderator
* fix test cases
* refactor and fix code climate issues
* Update app/controllers/chat_channel_memberships_controller.rb
Co-authored-by: Michael Kohl <me@citizen428.net>
* fix suggestions
* renaming the methods
* Update app/javascript/chat/chat.jsx
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Update app/javascript/chat/components/createChatModal.jsx
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* add jsDoc and add validation
* add PR suggestions
* renmae the file name to PascalCase
* add styled component
* refactor channel button component
* fix specs
* fix code smell issues
* fix file name issue
* handle error message
* add jsDoc
* Update app/controllers/chat_channels_controller.rb
Co-authored-by: Michael Kohl <me@citizen428.net>
* refactor chat_channel_helpers
* update old hash to new hash
* Update app/javascript/chat/components/ChannelButton.jsx
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Update app/views/chat_channels/index.html.erb
Co-authored-by: Michael Kohl <me@citizen428.net>
* fix syntax error
* Update app/views/chat_channels/index.html.erb
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Policies changed
* The Disable Button issue 🐞
* Fixing Disabled button Issue 🐞
* New group doesn't show up 🐞
Co-authored-by: Narender Singh <narender2031@gmail.com>
Co-authored-by: Michael Kohl <me@citizen428.net>
Co-authored-by: Nick Taylor <nick@iamdeveloper.com>
* Use ErrorsController to render error pages
* Hide GitHub bug report prompt from anything other than dev.to and forem.dev
* Update service worker to use 404 and 500
* Other fixes
* Add validation for payment_pointer and clean its space before save
* Add test for payment_pointer
* fix payment pointer regexp
* fix test
* Remove space with strip
Co-authored-by: Jacob Herrington <jacobherringtondeveloper@gmail.com>
* Remove redundant test
* Refactor clean_payment_pointer to strip_payment_pointer
- Move callback from before_save to before_validation
* Refactor PAYMENT_POINTER_REGEXP
* style: remove last comment in regexp
* fix typo
Co-authored-by: Jacob Herrington <jacobherringtondeveloper@gmail.com>
* Prepare to drop profile columns from user
* Update code and factory
* Also remove unused constant
* Move validation from user to profile
* Remove Profiles::ExtractData service object
* Add more comments
* Simplify sameAs attribute generation
* Obey me machine, I am your master
* Fix condition order in guard clause
* Temporarily disable callback
* Fix specs
* Reduce usage of Profile#refresh_attributes!
* Remove leftover comment
* Handle social media links differently
* More spec fixes
* Fix specs for admin profile fields controller
* Fix specs after merge
* Fix remaining specs
* Update user show request spec
* Add comment for follow_hiring_tag
* Only save profile when user is valid
* Fix seeds.rb for profile fields
* Switch from before_save to after_save
* Undo unrelated formattin change
* Update spec/fixtures/files/profile_fields.csv
Co-authored-by: Molly Struve <mollylbs@gmail.com>
* Remove data update script and spec
* Fix spec
* Fix typo in comment
* Fix typo in comment
* Move article resave logic to service object
* Move profile field creation to before(:suite)
* Refactor error handling in Profiles::Update
* Fix Profiles::Update specs and refactor
* Temporarily disable spec
* Add ProfileValidator
* Clean up
* Move DB ready check into app/lib
* Refresh attributes after importing from CSV
* Fix specs
* Remove unused file
* A girl has no name. A profile neither.
* Fix specs
* Add responds_to? check
* Spec fix
* Add name to user fields in profile settings page
Co-authored-by: Molly Struve <mollylbs@gmail.com>
* Add podcast_appearances joined table (forem#82)
* Add podcast appearances keys unique constraint and creator property (forem#82)
* Add podcast_appearance role validation forem(#82)
* Add spec test for podcast_appearances model (forem#82)
* Small refactoring - place podcast appearance association by alphabetical order
* Adapt m2m association to pass rspec test (forem#82)
* Rename podcast appearance model to podcast episode appearance and remove fk indexing
* Rename podcast appearance model to podcast episode appearance and remove fk indexing
* Rename podcast episode appearance models and spec models. Update podcast episode and user spec tests (forem#82)
* Rename podcast episode appearances composite index to follow Rails naming pattern (forem#82)
* Remove ddl_transaction disabling and conurrent index adding from appearance migration
* Add role validation in model spec (forem#82)
* Implement changes
* display "Suspended" if user role.name is banned
* Correct equality symbol
Co-authored-by: Michael Kohl <me@citizen428.net>
Co-authored-by: Michael Kohl <me@citizen428.net>
* Add explanatory comment to how RssReaderFetchUserWorker works
* Add Feeds::ImportWorker worker
* Enable Feeds::Import for single user feed fetching behind a feature flag
* Add Feeds::ValidateUrl service
* Add feature flag to user's validate feed URL feature
* Remove todo notices
* Add feature flag to fetch_all_rss task
* Add feature flag to RssReaderWorker
* Bring back short-circuit for Articles::RssReaderWorker
* Extract Feeds::CheckMediumReplyItem service
* Extract Feeds::CheckItemPreviouslyImported
* Clarified comment on Feeds::CheckItemMediumReply (thanks @maestromac)
* Refactor a bit to be more Rubeyeyey
* Allow authors to restrict which emails can sign up
* Add form and tests
* Check for email presence in allowed email flow
* Fix test domains
* Fix codeclimate issue