* Change models and related files
* Update controllers and specs
* More renaming
* Seek and destroy, I mean search and replace
* Round up the stragglers
* Ground control to Major Travis...
* More fixes
* PR feedback
* Various fixes
* Rename view
* Fix list query builder
* Unify request specs
* Fix some API spec errors
* Fix remaining API specs
* Make spec conform to API
* Fix leftover problems
* Fix JS tests
* Fix column name in select
* Fix API specs
* Fix search specs
* Paging Mr. Travis
* Use Devise registry to list available providers
* Cleanups following Devise+Omniauth docs
* More cleanups
* Use helpers
* More cleanups
* Oops, forgot to remove these specs
* add optional fields to user
- this provides the back-end implementation for #2365
* fix mistakes in schema.rb
* renamed OptionalField to userOptionalField
* rename field column in user_optional_fields to label
* add uniqueness validation on user_optional_field labels
* scope flag uniqueness to user_id
* add indexing on label in user_optional_fields
* add optional fields to user
- this provides the back-end implementation for #2365
* fix mistakes in schema.rb
* add index on user_id for user_optional_fields
* Remove duplicate model
* Fix schema
* Re-add past indexes
* Remove old index
* Remove another old index
* add `null:false` to columns in optional fields
* add `null: false` to the migration
- Updated test to account for the null constraint
* add null:false to user_id on user_optional_tables
Co-authored-by: rhymes <rhymesete@gmail.com>
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
* Add Authentication providers
* Making strides on refactoring
* New usr from Twitter
* Existing Twitter user
* Existing user Github
* Test skip_confirmation!
* Refactor a bit and add simplecov groups
* Test user already logged in
* Rename to Authentication::Authenticator
* Refactor to a common class
* Add existing user test for twitter login
* Refactor global handler
* Fix spec and comment Twitter provider
* Update comments and strategy TODO
* Move providers loading code to Authentication::Providers
* add SubclassResponsibility error
* Use delegation
* Replace current onboarding notification with set_up_profile welcome notification
Also ensure that only "active" set_up_profile welcome notification is sent, and that "inactive" ones are ignored.
* Notify only if broadcast active, log error if broadcast not found
* Reports to Honeybadger if an active broadcast cannot be found
* Reorganize order of generator specs
* Ensure welcome_broadcast can be written to in spec
* Remove redundant spec
* Re-subscribe user to newsletter by setting MC status to pending
* Add guard clause and new spec
* Make trait name more explicit
* Fix guard clause and spec
* Create podcast as a user [WIP]
* Sample css for podcast form
* Nicer podcasts suggesting form
* Validate podcast feed_url
* Validate podcast main_color_hex
* Fix podcasts specs
* Fix form appearance
* Placeholder for podcast main_color_hex
* Provide a link to suggest a podcast
* Add a checkbox and a role for when a podcast is added by an owner
* Prettier checkbox in the podcasts form
* Added creator to podcasts
* Set the podcast creator
* Fix the /pod spec
* Added creator information to the internal podcast page
* Added cta class to the podcasts submit button
* Global notice when a podcast was suggested
Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
* Initial changes for some new themes/fonts/etc.
* Add basic navbar config
* Finalize navbar config
* Make config_navbar non nullable
* Add dark_theme? to user decorator
* Add ProMembership model
* Implement ProMembershipsController#create
* Implement basic ProMembershipsController#show
* Add ProMembership to ledger
* Populate user history after pro subscription is created
* Add fields for expiration notifications
* Add ProMemberships::ExpirationNotifier to notify users of expiring memberships
* Add tasks for recurring jobs to notify users of expiration
* Add auto_recharge column to ProMembership
* Add ProMemberships::Biller (incomplete)
* Fix specs
* Add ProMembership to Administrate
* Fix spec
* Add has_enough_credits? to User and Organization
* Add Payments::Customer class
* Finish ProMembership::Biller functionality
* Fix ProMemberships::Creator check for credits
* Disable destroy actions for ProMembershipsController
* Correctly authenticate ProMembershipsController actions
* Make sure only pro user's history can be indexed
* Add ProMembershipsController#update action for auto recharge
* Use regular AR to save new credits and add touch to the purchaser
* Clarify Pro membership create policy
* Display information about an existing pro membership
* Add UI to show page
* Add system test for Pro membership creation
* Implement edit membership
* Make sure users with pro memberships can access history and dashboard pro
* Fix padding issue
* Show a different text for a user that has credits but not enough for Pro
* Move Pro Membership functionality inside settings
* Update Pro Membership link in email notifications
* Bust all relevant caches
* Add the Pro checkmark around the website
* Use Users::ResaveArticlesJob instead of delay
* Add/remove user from pro-members chat channel
* Use the appropriate Pro checkmark
* Remove unfinished pro elements
* Remove checkmark JS