* 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
* Removes CSRF Apple fix from Omniauth callbacks
* Removes Envfile
Co-authored-by: rhymes <rhymesete@gmail.com>
Co-authored-by: rhymes <rhymes@hey.com>
* 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 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
* Fix logging for dev and test environments
We had some unused code for Timber in our config files for development and test.
However, this was completely clobbering Rails' default behavior of logging out to log/development.log and log/test.log. We should allow for logging in these environments in particular, and since we're not using Timber there, we can just revert to using the Rails default debugging log levels.
* Add Timber logger to specs that explicitly require it
* Restore default Rails.logger in specs using Timber logger
* Explicitly use Rails.logger in OmniauthCallbacksController
We seem to have different logger classes leaking into this controller in tests.
I'm not entirely sure why this is/haven't been able to investigate yet, but I do think we should be using the Rails.logger explicitly until we can figure that out.
* WIP use redis-session-store for sessions
* Use Redis as session storage
* Add redis-server to Travis
* Use integer for SESSION_EXPIRY_SECONDS env variable
Co-Authored-By: rhymes <rhymesete@gmail.com>
* Remove sessions b/c no custom sessions logic
* Use ApplicationConfig instead
* Rename default value
* Remove rememberable module
* Persist the user for the test
* Remove remember_me related tests
* Revert 'undo remember_me' commits
* Add redis to procfile
* Cleanup devise configuration
* Move REDIS configuration in the basic configuration section
* Make sure the expiration time can't zero
* Restore old order and remove useless comment line
* Delete legacy session cookie after login
Once deployed the server will start using the new session cookie, this makes sure the legacy one is deleted on the user's browser
* Remove redis from Procfile
* Add signed, secure and httponly to the Redis session cookie
* Add feature spec for twitter login
* Avoid using class eval for solving code duplication.
This change make code easier to change in the future.
* Fix codeclimate issues
* Introduce explanatory methods
* Add registration view to sign_in page
* Add better sad path for failed sign ins/ups
* Ensure email is downcased for authorization
* Remove .downcase for emails
* Use partial for styles