Removing grape and adding devise
This commit is contained in:
		
					parent
					
						
							
								3b4e04dc32
							
						
					
				
			
			
				commit
				
					
						7e93da3f8d
					
				
			
		
					 9 changed files with 400 additions and 58 deletions
				
			
		
							
								
								
									
										6
									
								
								Gemfile
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								Gemfile
									
										
									
									
									
								
							|  | @ -16,10 +16,6 @@ gem 'pg' | ||||||
| gem 'dotenv-rails' | gem 'dotenv-rails' | ||||||
| gem 'font-awesome-sass' | gem 'font-awesome-sass' | ||||||
| 
 | 
 | ||||||
| gem 'grape' |  | ||||||
| gem 'grape-route-helpers' |  | ||||||
| gem 'grape-entity' |  | ||||||
| gem 'hashie-forbidden_attributes' |  | ||||||
| gem 'paranoia', '~> 2.0' | gem 'paranoia', '~> 2.0' | ||||||
| gem 'paperclip', '~> 4.3' | gem 'paperclip', '~> 4.3' | ||||||
| gem 'backport_new_renderer' | gem 'backport_new_renderer' | ||||||
|  | @ -29,12 +25,12 @@ gem 'addressable' | ||||||
| gem 'nokogiri' | gem 'nokogiri' | ||||||
| gem 'ostatus2' | gem 'ostatus2' | ||||||
| gem 'goldfinger' | gem 'goldfinger' | ||||||
|  | gem 'devise' | ||||||
| 
 | 
 | ||||||
| group :development, :test do | group :development, :test do | ||||||
|   gem 'rspec-rails' |   gem 'rspec-rails' | ||||||
|   gem 'quiet_assets' |   gem 'quiet_assets' | ||||||
|   gem 'pry-rails' |   gem 'pry-rails' | ||||||
|   gem 'nyan-cat-formatter' |  | ||||||
|   gem 'fuubar' |   gem 'fuubar' | ||||||
|   gem 'fabrication' |   gem 'fabrication' | ||||||
| end | end | ||||||
|  |  | ||||||
							
								
								
									
										61
									
								
								Gemfile.lock
									
										
									
									
									
								
							
							
						
						
									
										61
									
								
								Gemfile.lock
									
										
									
									
									
								
							|  | @ -39,12 +39,9 @@ GEM | ||||||
|     addressable (2.4.0) |     addressable (2.4.0) | ||||||
|     arel (6.0.3) |     arel (6.0.3) | ||||||
|     ast (2.2.0) |     ast (2.2.0) | ||||||
|     axiom-types (0.1.1) |  | ||||||
|       descendants_tracker (~> 0.0.4) |  | ||||||
|       ice_nine (~> 0.11.0) |  | ||||||
|       thread_safe (~> 0.3, >= 0.3.1) |  | ||||||
|     backport_new_renderer (1.0.0) |     backport_new_renderer (1.0.0) | ||||||
|       rails |       rails | ||||||
|  |     bcrypt (3.1.10) | ||||||
|     better_errors (2.1.1) |     better_errors (2.1.1) | ||||||
|       coderay (>= 1.0.0) |       coderay (>= 1.0.0) | ||||||
|       erubis (>= 2.6.6) |       erubis (>= 2.6.6) | ||||||
|  | @ -57,8 +54,6 @@ GEM | ||||||
|     cocaine (0.5.8) |     cocaine (0.5.8) | ||||||
|       climate_control (>= 0.0.3, < 1.0) |       climate_control (>= 0.0.3, < 1.0) | ||||||
|     coderay (1.1.1) |     coderay (1.1.1) | ||||||
|     coercible (1.0.0) |  | ||||||
|       descendants_tracker (~> 0.0.1) |  | ||||||
|     coffee-rails (4.1.1) |     coffee-rails (4.1.1) | ||||||
|       coffee-script (>= 2.2.0) |       coffee-script (>= 2.2.0) | ||||||
|       railties (>= 4.0.0, < 5.1.x) |       railties (>= 4.0.0, < 5.1.x) | ||||||
|  | @ -70,8 +65,13 @@ GEM | ||||||
|     crack (0.4.3) |     crack (0.4.3) | ||||||
|       safe_yaml (~> 1.0.0) |       safe_yaml (~> 1.0.0) | ||||||
|     debug_inspector (0.0.2) |     debug_inspector (0.0.2) | ||||||
|     descendants_tracker (0.0.4) |     devise (3.5.6) | ||||||
|       thread_safe (~> 0.3, >= 0.3.1) |       bcrypt (~> 3.0) | ||||||
|  |       orm_adapter (~> 0.1) | ||||||
|  |       railties (>= 3.2.6, < 5) | ||||||
|  |       responders | ||||||
|  |       thread_safe (~> 0.1) | ||||||
|  |       warden (~> 1.2.3) | ||||||
|     diff-lcs (1.2.5) |     diff-lcs (1.2.5) | ||||||
|     docile (1.1.5) |     docile (1.1.5) | ||||||
|     domain_name (0.5.20160128) |     domain_name (0.5.20160128) | ||||||
|  | @ -80,7 +80,6 @@ GEM | ||||||
|     dotenv-rails (2.1.0) |     dotenv-rails (2.1.0) | ||||||
|       dotenv (= 2.1.0) |       dotenv (= 2.1.0) | ||||||
|       railties (>= 4.0, < 5.1) |       railties (>= 4.0, < 5.1) | ||||||
|     equalizer (0.0.11) |  | ||||||
|     erubis (2.7.0) |     erubis (2.7.0) | ||||||
|     execjs (2.6.0) |     execjs (2.6.0) | ||||||
|     fabrication (2.14.1) |     fabrication (2.14.1) | ||||||
|  | @ -95,23 +94,6 @@ GEM | ||||||
|       addressable (~> 2.4) |       addressable (~> 2.4) | ||||||
|       http (~> 1.0) |       http (~> 1.0) | ||||||
|       nokogiri (~> 1.6) |       nokogiri (~> 1.6) | ||||||
|     grape (0.14.0) |  | ||||||
|       activesupport |  | ||||||
|       builder |  | ||||||
|       hashie (>= 2.1.0) |  | ||||||
|       multi_json (>= 1.3.2) |  | ||||||
|       multi_xml (>= 0.5.2) |  | ||||||
|       rack (>= 1.3.0) |  | ||||||
|       rack-accept |  | ||||||
|       rack-mount |  | ||||||
|       virtus (>= 1.0.0) |  | ||||||
|     grape-entity (0.5.0) |  | ||||||
|       activesupport |  | ||||||
|       multi_json (>= 1.3.2) |  | ||||||
|     grape-route-helpers (1.2.1) |  | ||||||
|       activesupport |  | ||||||
|       grape |  | ||||||
|       rake |  | ||||||
|     haml (4.0.7) |     haml (4.0.7) | ||||||
|       tilt |       tilt | ||||||
|     haml-rails (0.9.0) |     haml-rails (0.9.0) | ||||||
|  | @ -121,9 +103,6 @@ GEM | ||||||
|       html2haml (>= 1.0.1) |       html2haml (>= 1.0.1) | ||||||
|       railties (>= 4.0.1) |       railties (>= 4.0.1) | ||||||
|     hashdiff (0.3.0) |     hashdiff (0.3.0) | ||||||
|     hashie (3.4.3) |  | ||||||
|     hashie-forbidden_attributes (0.1.1) |  | ||||||
|       hashie (>= 3.0) |  | ||||||
|     html2haml (2.0.0) |     html2haml (2.0.0) | ||||||
|       erubis (~> 2.7.0) |       erubis (~> 2.7.0) | ||||||
|       haml (~> 4.0.0) |       haml (~> 4.0.0) | ||||||
|  | @ -139,7 +118,6 @@ GEM | ||||||
|     http-form_data (1.0.1) |     http-form_data (1.0.1) | ||||||
|     http_parser.rb (0.6.0) |     http_parser.rb (0.6.0) | ||||||
|     i18n (0.7.0) |     i18n (0.7.0) | ||||||
|     ice_nine (0.11.2) |  | ||||||
|     jbuilder (2.4.1) |     jbuilder (2.4.1) | ||||||
|       activesupport (>= 3.0.0, < 5.1) |       activesupport (>= 3.0.0, < 5.1) | ||||||
|       multi_json (~> 1.2) |       multi_json (~> 1.2) | ||||||
|  | @ -159,11 +137,9 @@ GEM | ||||||
|     mini_portile2 (2.0.0) |     mini_portile2 (2.0.0) | ||||||
|     minitest (5.8.4) |     minitest (5.8.4) | ||||||
|     multi_json (1.11.2) |     multi_json (1.11.2) | ||||||
|     multi_xml (0.5.5) |  | ||||||
|     nokogiri (1.6.7.2) |     nokogiri (1.6.7.2) | ||||||
|       mini_portile2 (~> 2.0.0.rc2) |       mini_portile2 (~> 2.0.0.rc2) | ||||||
|     nyan-cat-formatter (0.11) |     orm_adapter (0.5.0) | ||||||
|       rspec (>= 2.99, >= 2.14.2, < 4) |  | ||||||
|     ostatus2 (0.1.1) |     ostatus2 (0.1.1) | ||||||
|       addressable (~> 2.4) |       addressable (~> 2.4) | ||||||
|       http (~> 1.0) |       http (~> 1.0) | ||||||
|  | @ -190,10 +166,6 @@ GEM | ||||||
|     quiet_assets (1.1.0) |     quiet_assets (1.1.0) | ||||||
|       railties (>= 3.1, < 5.0) |       railties (>= 3.1, < 5.0) | ||||||
|     rack (1.6.4) |     rack (1.6.4) | ||||||
|     rack-accept (0.4.5) |  | ||||||
|       rack (>= 0.4) |  | ||||||
|     rack-mount (0.8.3) |  | ||||||
|       rack (>= 1.0.0) |  | ||||||
|     rack-test (0.6.3) |     rack-test (0.6.3) | ||||||
|       rack (>= 1.0) |       rack (>= 1.0) | ||||||
|     rails (4.2.5.1) |     rails (4.2.5.1) | ||||||
|  | @ -230,6 +202,8 @@ GEM | ||||||
|     rdoc (4.2.2) |     rdoc (4.2.2) | ||||||
|       json (~> 1.4) |       json (~> 1.4) | ||||||
|     ref (2.0.0) |     ref (2.0.0) | ||||||
|  |     responders (2.1.1) | ||||||
|  |       railties (>= 4.2.0, < 5.1) | ||||||
|     rspec (3.4.0) |     rspec (3.4.0) | ||||||
|       rspec-core (~> 3.4.0) |       rspec-core (~> 3.4.0) | ||||||
|       rspec-expectations (~> 3.4.0) |       rspec-expectations (~> 3.4.0) | ||||||
|  | @ -302,11 +276,8 @@ GEM | ||||||
|       unf_ext |       unf_ext | ||||||
|     unf_ext (0.0.7.2) |     unf_ext (0.0.7.2) | ||||||
|     unicode-display_width (0.3.1) |     unicode-display_width (0.3.1) | ||||||
|     virtus (1.0.5) |     warden (1.2.6) | ||||||
|       axiom-types (~> 0.1) |       rack (>= 1.0) | ||||||
|       coercible (~> 1.0) |  | ||||||
|       descendants_tracker (~> 0.0, >= 0.0.3) |  | ||||||
|       equalizer (~> 0.0, >= 0.0.9) |  | ||||||
|     web-console (2.3.0) |     web-console (2.3.0) | ||||||
|       activemodel (>= 4.0) |       activemodel (>= 4.0) | ||||||
|       binding_of_caller (>= 0.7.2) |       binding_of_caller (>= 0.7.2) | ||||||
|  | @ -326,21 +297,17 @@ DEPENDENCIES | ||||||
|   better_errors |   better_errors | ||||||
|   binding_of_caller |   binding_of_caller | ||||||
|   coffee-rails (~> 4.1.0) |   coffee-rails (~> 4.1.0) | ||||||
|  |   devise | ||||||
|   dotenv-rails |   dotenv-rails | ||||||
|   fabrication |   fabrication | ||||||
|   font-awesome-sass |   font-awesome-sass | ||||||
|   fuubar |   fuubar | ||||||
|   goldfinger |   goldfinger | ||||||
|   grape |  | ||||||
|   grape-entity |  | ||||||
|   grape-route-helpers |  | ||||||
|   haml-rails |   haml-rails | ||||||
|   hashie-forbidden_attributes |  | ||||||
|   http |   http | ||||||
|   jbuilder (~> 2.0) |   jbuilder (~> 2.0) | ||||||
|   jquery-rails |   jquery-rails | ||||||
|   nokogiri |   nokogiri | ||||||
|   nyan-cat-formatter |  | ||||||
|   ostatus2 |   ostatus2 | ||||||
|   paperclip (~> 4.3) |   paperclip (~> 4.3) | ||||||
|   paranoia (~> 2.0) |   paranoia (~> 2.0) | ||||||
|  |  | ||||||
|  | @ -1,7 +1,6 @@ | ||||||
| module RoutingHelper | module RoutingHelper | ||||||
|   extend ActiveSupport::Concern |   extend ActiveSupport::Concern | ||||||
|   include Rails.application.routes.url_helpers |   include Rails.application.routes.url_helpers | ||||||
|   include GrapeRouteHelpers::NamedRouteMatcher |  | ||||||
|   include ActionView::Helpers::AssetUrlHelper |   include ActionView::Helpers::AssetUrlHelper | ||||||
| 
 | 
 | ||||||
|   included do |   included do | ||||||
|  |  | ||||||
|  | @ -1,4 +1,7 @@ | ||||||
| class User < ActiveRecord::Base | class User < ActiveRecord::Base | ||||||
|  |   devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable | ||||||
|  | 
 | ||||||
|   belongs_to :account, inverse_of: :user |   belongs_to :account, inverse_of: :user | ||||||
|  | 
 | ||||||
|   validates :account, presence: true |   validates :account, presence: true | ||||||
| end | end | ||||||
|  |  | ||||||
							
								
								
									
										265
									
								
								config/initializers/devise.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										265
									
								
								config/initializers/devise.rb
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,265 @@ | ||||||
|  | # Use this hook to configure devise mailer, warden hooks and so forth. | ||||||
|  | # Many of these configuration options can be set straight in your model. | ||||||
|  | Devise.setup do |config| | ||||||
|  |   # The secret key used by Devise. Devise uses this key to generate | ||||||
|  |   # random tokens. Changing this key will render invalid all existing | ||||||
|  |   # confirmation, reset password and unlock tokens in the database. | ||||||
|  |   # Devise will use the `secret_key_base` on Rails 4+ applications as its `secret_key` | ||||||
|  |   # by default. You can change it below and use your own secret key. | ||||||
|  |   # config.secret_key = '2f86974c4dd7735170fd70fbf399f7a477ffd635ef240d07a22cf4bd7cd13dbae17c4383a2996d0c1e79a991ec18a91a17424c53e4771adb75a8b21904bd1403' | ||||||
|  | 
 | ||||||
|  |   # ==> Mailer Configuration | ||||||
|  |   # Configure the e-mail address which will be shown in Devise::Mailer, | ||||||
|  |   # note that it will be overwritten if you use your own mailer class | ||||||
|  |   # with default "from" parameter. | ||||||
|  |   config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com' | ||||||
|  | 
 | ||||||
|  |   # Configure the class responsible to send e-mails. | ||||||
|  |   # config.mailer = 'Devise::Mailer' | ||||||
|  | 
 | ||||||
|  |   # ==> ORM configuration | ||||||
|  |   # Load and configure the ORM. Supports :active_record (default) and | ||||||
|  |   # :mongoid (bson_ext recommended) by default. Other ORMs may be | ||||||
|  |   # available as additional gems. | ||||||
|  |   require 'devise/orm/active_record' | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for any authentication mechanism | ||||||
|  |   # Configure which keys are used when authenticating a user. The default is | ||||||
|  |   # just :email. You can configure it to use [:username, :subdomain], so for | ||||||
|  |   # authenticating a user, both parameters are required. Remember that those | ||||||
|  |   # parameters are used only when authenticating and not when retrieving from | ||||||
|  |   # session. If you need permissions, you should implement that in a before filter. | ||||||
|  |   # You can also supply a hash where the value is a boolean determining whether | ||||||
|  |   # or not authentication should be aborted when the value is not present. | ||||||
|  |   # config.authentication_keys = [:email] | ||||||
|  | 
 | ||||||
|  |   # Configure parameters from the request object used for authentication. Each entry | ||||||
|  |   # given should be a request method and it will automatically be passed to the | ||||||
|  |   # find_for_authentication method and considered in your model lookup. For instance, | ||||||
|  |   # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. | ||||||
|  |   # The same considerations mentioned for authentication_keys also apply to request_keys. | ||||||
|  |   # config.request_keys = [] | ||||||
|  | 
 | ||||||
|  |   # Configure which authentication keys should be case-insensitive. | ||||||
|  |   # These keys will be downcased upon creating or modifying a user and when used | ||||||
|  |   # to authenticate or find a user. Default is :email. | ||||||
|  |   config.case_insensitive_keys = [:email] | ||||||
|  | 
 | ||||||
|  |   # Configure which authentication keys should have whitespace stripped. | ||||||
|  |   # These keys will have whitespace before and after removed upon creating or | ||||||
|  |   # modifying a user and when used to authenticate or find a user. Default is :email. | ||||||
|  |   config.strip_whitespace_keys = [:email] | ||||||
|  | 
 | ||||||
|  |   # Tell if authentication through request.params is enabled. True by default. | ||||||
|  |   # It can be set to an array that will enable params authentication only for the | ||||||
|  |   # given strategies, for example, `config.params_authenticatable = [:database]` will | ||||||
|  |   # enable it only for database (email + password) authentication. | ||||||
|  |   # config.params_authenticatable = true | ||||||
|  | 
 | ||||||
|  |   # Tell if authentication through HTTP Auth is enabled. False by default. | ||||||
|  |   # It can be set to an array that will enable http authentication only for the | ||||||
|  |   # given strategies, for example, `config.http_authenticatable = [:database]` will | ||||||
|  |   # enable it only for database authentication. The supported strategies are: | ||||||
|  |   # :database      = Support basic authentication with authentication key + password | ||||||
|  |   # config.http_authenticatable = false | ||||||
|  | 
 | ||||||
|  |   # If 401 status code should be returned for AJAX requests. True by default. | ||||||
|  |   # config.http_authenticatable_on_xhr = true | ||||||
|  | 
 | ||||||
|  |   # The realm used in Http Basic Authentication. 'Application' by default. | ||||||
|  |   # config.http_authentication_realm = 'Application' | ||||||
|  | 
 | ||||||
|  |   # It will change confirmation, password recovery and other workflows | ||||||
|  |   # to behave the same regardless if the e-mail provided was right or wrong. | ||||||
|  |   # Does not affect registerable. | ||||||
|  |   # config.paranoid = true | ||||||
|  | 
 | ||||||
|  |   # By default Devise will store the user in session. You can skip storage for | ||||||
|  |   # particular strategies by setting this option. | ||||||
|  |   # Notice that if you are skipping storage for all authentication paths, you | ||||||
|  |   # may want to disable generating routes to Devise's sessions controller by | ||||||
|  |   # passing skip: :sessions to `devise_for` in your config/routes.rb | ||||||
|  |   config.skip_session_storage = [:http_auth] | ||||||
|  | 
 | ||||||
|  |   # By default, Devise cleans up the CSRF token on authentication to | ||||||
|  |   # avoid CSRF token fixation attacks. This means that, when using AJAX | ||||||
|  |   # requests for sign in and sign up, you need to get a new CSRF token | ||||||
|  |   # from the server. You can disable this option at your own risk. | ||||||
|  |   # config.clean_up_csrf_token_on_authentication = true | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for :database_authenticatable | ||||||
|  |   # For bcrypt, this is the cost for hashing the password and defaults to 10. If | ||||||
|  |   # using other encryptors, it sets how many times you want the password re-encrypted. | ||||||
|  |   # | ||||||
|  |   # Limiting the stretches to just one in testing will increase the performance of | ||||||
|  |   # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use | ||||||
|  |   # a value less than 10 in other environments. Note that, for bcrypt (the default | ||||||
|  |   # encryptor), the cost increases exponentially with the number of stretches (e.g. | ||||||
|  |   # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). | ||||||
|  |   config.stretches = Rails.env.test? ? 1 : 10 | ||||||
|  | 
 | ||||||
|  |   # Setup a pepper to generate the encrypted password. | ||||||
|  |   # config.pepper = '104d16705f794923e77c5e5167b52452d00646dc952a2d30b541c24086e647012c7b9625f253c51912e455981e503446772973d5f1638631196c819d7137fad4' | ||||||
|  | 
 | ||||||
|  |   # Send a notification email when the user's password is changed | ||||||
|  |   # config.send_password_change_notification = false | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for :confirmable | ||||||
|  |   # A period that the user is allowed to access the website even without | ||||||
|  |   # confirming their account. For instance, if set to 2.days, the user will be | ||||||
|  |   # able to access the website for two days without confirming their account, | ||||||
|  |   # access will be blocked just in the third day. Default is 0.days, meaning | ||||||
|  |   # the user cannot access the website without confirming their account. | ||||||
|  |   # config.allow_unconfirmed_access_for = 2.days | ||||||
|  | 
 | ||||||
|  |   # A period that the user is allowed to confirm their account before their | ||||||
|  |   # token becomes invalid. For example, if set to 3.days, the user can confirm | ||||||
|  |   # their account within 3 days after the mail was sent, but on the fourth day | ||||||
|  |   # their account can't be confirmed with the token any more. | ||||||
|  |   # Default is nil, meaning there is no restriction on how long a user can take | ||||||
|  |   # before confirming their account. | ||||||
|  |   # config.confirm_within = 3.days | ||||||
|  | 
 | ||||||
|  |   # If true, requires any email changes to be confirmed (exactly the same way as | ||||||
|  |   # initial account confirmation) to be applied. Requires additional unconfirmed_email | ||||||
|  |   # db field (see migrations). Until confirmed, new email is stored in | ||||||
|  |   # unconfirmed_email column, and copied to email column on successful confirmation. | ||||||
|  |   config.reconfirmable = true | ||||||
|  | 
 | ||||||
|  |   # Defines which key will be used when confirming an account | ||||||
|  |   # config.confirmation_keys = [:email] | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for :rememberable | ||||||
|  |   # The time the user will be remembered without asking for credentials again. | ||||||
|  |   # config.remember_for = 2.weeks | ||||||
|  | 
 | ||||||
|  |   # Invalidates all the remember me tokens when the user signs out. | ||||||
|  |   config.expire_all_remember_me_on_sign_out = true | ||||||
|  | 
 | ||||||
|  |   # If true, extends the user's remember period when remembered via cookie. | ||||||
|  |   # config.extend_remember_period = false | ||||||
|  | 
 | ||||||
|  |   # Options to be passed to the created cookie. For instance, you can set | ||||||
|  |   # secure: true in order to force SSL only cookies. | ||||||
|  |   # config.rememberable_options = {} | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for :validatable | ||||||
|  |   # Range for password length. | ||||||
|  |   config.password_length = 8..72 | ||||||
|  | 
 | ||||||
|  |   # Email regex used to validate email formats. It simply asserts that | ||||||
|  |   # one (and only one) @ exists in the given string. This is mainly | ||||||
|  |   # to give user feedback and not to assert the e-mail validity. | ||||||
|  |   # config.email_regexp = /\A[^@]+@[^@]+\z/ | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for :timeoutable | ||||||
|  |   # The time you want to timeout the user session without activity. After this | ||||||
|  |   # time the user will be asked for credentials again. Default is 30 minutes. | ||||||
|  |   # config.timeout_in = 30.minutes | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for :lockable | ||||||
|  |   # Defines which strategy will be used to lock an account. | ||||||
|  |   # :failed_attempts = Locks an account after a number of failed attempts to sign in. | ||||||
|  |   # :none            = No lock strategy. You should handle locking by yourself. | ||||||
|  |   # config.lock_strategy = :failed_attempts | ||||||
|  | 
 | ||||||
|  |   # Defines which key will be used when locking and unlocking an account | ||||||
|  |   # config.unlock_keys = [:email] | ||||||
|  | 
 | ||||||
|  |   # Defines which strategy will be used to unlock an account. | ||||||
|  |   # :email = Sends an unlock link to the user email | ||||||
|  |   # :time  = Re-enables login after a certain amount of time (see :unlock_in below) | ||||||
|  |   # :both  = Enables both strategies | ||||||
|  |   # :none  = No unlock strategy. You should handle unlocking by yourself. | ||||||
|  |   # config.unlock_strategy = :both | ||||||
|  | 
 | ||||||
|  |   # Number of authentication tries before locking an account if lock_strategy | ||||||
|  |   # is failed attempts. | ||||||
|  |   # config.maximum_attempts = 20 | ||||||
|  | 
 | ||||||
|  |   # Time interval to unlock the account if :time is enabled as unlock_strategy. | ||||||
|  |   # config.unlock_in = 1.hour | ||||||
|  | 
 | ||||||
|  |   # Warn on the last attempt before the account is locked. | ||||||
|  |   # config.last_attempt_warning = true | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for :recoverable | ||||||
|  |   # | ||||||
|  |   # Defines which key will be used when recovering the password for an account | ||||||
|  |   # config.reset_password_keys = [:email] | ||||||
|  | 
 | ||||||
|  |   # Time interval you can reset your password with a reset password key. | ||||||
|  |   # Don't put a too small interval or your users won't have the time to | ||||||
|  |   # change their passwords. | ||||||
|  |   config.reset_password_within = 6.hours | ||||||
|  | 
 | ||||||
|  |   # When set to false, does not sign a user in automatically after their password is | ||||||
|  |   # reset. Defaults to true, so a user is signed in automatically after a reset. | ||||||
|  |   # config.sign_in_after_reset_password = true | ||||||
|  | 
 | ||||||
|  |   # ==> Configuration for :encryptable | ||||||
|  |   # Allow you to use another encryption algorithm besides bcrypt (default). You can use | ||||||
|  |   # :sha1, :sha512 or encryptors from others authentication tools as :clearance_sha1, | ||||||
|  |   # :authlogic_sha512 (then you should set stretches above to 20 for default behavior) | ||||||
|  |   # and :restful_authentication_sha1 (then you should set stretches to 10, and copy | ||||||
|  |   # REST_AUTH_SITE_KEY to pepper). | ||||||
|  |   # | ||||||
|  |   # Require the `devise-encryptable` gem when using anything other than bcrypt | ||||||
|  |   # config.encryptor = :sha512 | ||||||
|  | 
 | ||||||
|  |   # ==> Scopes configuration | ||||||
|  |   # Turn scoped views on. Before rendering "sessions/new", it will first check for | ||||||
|  |   # "users/sessions/new". It's turned off by default because it's slower if you | ||||||
|  |   # are using only default views. | ||||||
|  |   # config.scoped_views = false | ||||||
|  | 
 | ||||||
|  |   # Configure the default scope given to Warden. By default it's the first | ||||||
|  |   # devise role declared in your routes (usually :user). | ||||||
|  |   # config.default_scope = :user | ||||||
|  | 
 | ||||||
|  |   # Set this configuration to false if you want /users/sign_out to sign out | ||||||
|  |   # only the current scope. By default, Devise signs out all scopes. | ||||||
|  |   # config.sign_out_all_scopes = true | ||||||
|  | 
 | ||||||
|  |   # ==> Navigation configuration | ||||||
|  |   # Lists the formats that should be treated as navigational. Formats like | ||||||
|  |   # :html, should redirect to the sign in page when the user does not have | ||||||
|  |   # access, but formats like :xml or :json, should return 401. | ||||||
|  |   # | ||||||
|  |   # If you have any extra navigational formats, like :iphone or :mobile, you | ||||||
|  |   # should add them to the navigational formats lists. | ||||||
|  |   # | ||||||
|  |   # The "*/*" below is required to match Internet Explorer requests. | ||||||
|  |   # config.navigational_formats = ['*/*', :html] | ||||||
|  | 
 | ||||||
|  |   # The default HTTP method used to sign out a resource. Default is :delete. | ||||||
|  |   config.sign_out_via = :delete | ||||||
|  | 
 | ||||||
|  |   # ==> OmniAuth | ||||||
|  |   # Add a new OmniAuth provider. Check the wiki for more information on setting | ||||||
|  |   # up on your models and hooks. | ||||||
|  |   # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' | ||||||
|  | 
 | ||||||
|  |   # ==> Warden configuration | ||||||
|  |   # If you want to use other strategies, that are not supported by Devise, or | ||||||
|  |   # change the failure app, you can configure them inside the config.warden block. | ||||||
|  |   # | ||||||
|  |   # config.warden do |manager| | ||||||
|  |   #   manager.intercept_401 = false | ||||||
|  |   #   manager.default_strategies(scope: :user).unshift :some_external_strategy | ||||||
|  |   # end | ||||||
|  | 
 | ||||||
|  |   # ==> Mountable engine configurations | ||||||
|  |   # When using Devise inside an engine, let's call it `MyEngine`, and this engine | ||||||
|  |   # is mountable, there are some extra configurations to be taken into account. | ||||||
|  |   # The following options are available, assuming the engine is mounted as: | ||||||
|  |   # | ||||||
|  |   #     mount MyEngine, at: '/my_engine' | ||||||
|  |   # | ||||||
|  |   # The router that invoked `devise_for`, in the example above, would be: | ||||||
|  |   # config.router_name = :my_engine | ||||||
|  |   # | ||||||
|  |   # When using OmniAuth, Devise cannot automatically set OmniAuth path, | ||||||
|  |   # so you need to do it manually. For the users scope, it would be: | ||||||
|  |   # config.omniauth_path_prefix = '/my_engine/users/auth' | ||||||
|  | end | ||||||
							
								
								
									
										62
									
								
								config/locales/devise.en.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								config/locales/devise.en.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | ||||||
|  | # Additional translations at https://github.com/plataformatec/devise/wiki/I18n | ||||||
|  | 
 | ||||||
|  | en: | ||||||
|  |   devise: | ||||||
|  |     confirmations: | ||||||
|  |       confirmed: "Your email address has been successfully confirmed." | ||||||
|  |       send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes." | ||||||
|  |       send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes." | ||||||
|  |     failure: | ||||||
|  |       already_authenticated: "You are already signed in." | ||||||
|  |       inactive: "Your account is not activated yet." | ||||||
|  |       invalid: "Invalid %{authentication_keys} or password." | ||||||
|  |       locked: "Your account is locked." | ||||||
|  |       last_attempt: "You have one more attempt before your account is locked." | ||||||
|  |       not_found_in_database: "Invalid %{authentication_keys} or password." | ||||||
|  |       timeout: "Your session expired. Please sign in again to continue." | ||||||
|  |       unauthenticated: "You need to sign in or sign up before continuing." | ||||||
|  |       unconfirmed: "You have to confirm your email address before continuing." | ||||||
|  |     mailer: | ||||||
|  |       confirmation_instructions: | ||||||
|  |         subject: "Confirmation instructions" | ||||||
|  |       reset_password_instructions: | ||||||
|  |         subject: "Reset password instructions" | ||||||
|  |       unlock_instructions: | ||||||
|  |         subject: "Unlock instructions" | ||||||
|  |       password_change: | ||||||
|  |         subject: "Password Changed" | ||||||
|  |     omniauth_callbacks: | ||||||
|  |       failure: "Could not authenticate you from %{kind} because \"%{reason}\"." | ||||||
|  |       success: "Successfully authenticated from %{kind} account." | ||||||
|  |     passwords: | ||||||
|  |       no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided." | ||||||
|  |       send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes." | ||||||
|  |       send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes." | ||||||
|  |       updated: "Your password has been changed successfully. You are now signed in." | ||||||
|  |       updated_not_active: "Your password has been changed successfully." | ||||||
|  |     registrations: | ||||||
|  |       destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon." | ||||||
|  |       signed_up: "Welcome! You have signed up successfully." | ||||||
|  |       signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated." | ||||||
|  |       signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked." | ||||||
|  |       signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account." | ||||||
|  |       update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address." | ||||||
|  |       updated: "Your account has been updated successfully." | ||||||
|  |     sessions: | ||||||
|  |       signed_in: "Signed in successfully." | ||||||
|  |       signed_out: "Signed out successfully." | ||||||
|  |       already_signed_out: "Signed out successfully." | ||||||
|  |     unlocks: | ||||||
|  |       send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes." | ||||||
|  |       send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes." | ||||||
|  |       unlocked: "Your account has been unlocked successfully. Please sign in to continue." | ||||||
|  |   errors: | ||||||
|  |     messages: | ||||||
|  |       already_confirmed: "was already confirmed, please try signing in" | ||||||
|  |       confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one" | ||||||
|  |       expired: "has expired, please request a new one" | ||||||
|  |       not_found: "not found" | ||||||
|  |       not_locked: "was not locked" | ||||||
|  |       not_saved: | ||||||
|  |         one: "1 error prohibited this %{resource} from being saved:" | ||||||
|  |         other: "%{count} errors prohibited this %{resource} from being saved:" | ||||||
|  | @ -2,6 +2,8 @@ Rails.application.routes.draw do | ||||||
|   get '.well-known/host-meta', to: 'xrd#host_meta', as: :host_meta |   get '.well-known/host-meta', to: 'xrd#host_meta', as: :host_meta | ||||||
|   get '.well-known/webfinger', to: 'xrd#webfinger', as: :webfinger |   get '.well-known/webfinger', to: 'xrd#webfinger', as: :webfinger | ||||||
| 
 | 
 | ||||||
|  |   devise_for :users, path: 'auth' | ||||||
|  | 
 | ||||||
|   resources :accounts, path: 'users', only: [:show], param: :username do |   resources :accounts, path: 'users', only: [:show], param: :username do | ||||||
|     resources :stream_entries, path: 'updates', only: [:show] |     resources :stream_entries, path: 'updates', only: [:show] | ||||||
|   end |   end | ||||||
|  |  | ||||||
							
								
								
									
										38
									
								
								db/migrate/20160305115639_add_devise_to_users.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								db/migrate/20160305115639_add_devise_to_users.rb
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | class AddDeviseToUsers < ActiveRecord::Migration | ||||||
|  |   def self.up | ||||||
|  |     change_table(:users) do |t| | ||||||
|  |       ## Database authenticatable | ||||||
|  |       t.string :encrypted_password, null: false, default: "" | ||||||
|  | 
 | ||||||
|  |       ## Recoverable | ||||||
|  |       t.string   :reset_password_token | ||||||
|  |       t.datetime :reset_password_sent_at | ||||||
|  | 
 | ||||||
|  |       ## Rememberable | ||||||
|  |       t.datetime :remember_created_at | ||||||
|  | 
 | ||||||
|  |       ## Trackable | ||||||
|  |       t.integer  :sign_in_count, default: 0, null: false | ||||||
|  |       t.datetime :current_sign_in_at | ||||||
|  |       t.datetime :last_sign_in_at | ||||||
|  |       t.inet     :current_sign_in_ip | ||||||
|  |       t.inet     :last_sign_in_ip | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     add_index :users, :reset_password_token, unique: true | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def self.down | ||||||
|  |     remove_index :users, :reset_password_token | ||||||
|  | 
 | ||||||
|  |     remove_column :users, :encrypted_password | ||||||
|  |     remove_column :users, :reset_password_token | ||||||
|  |     remove_column :users, :reset_password_sent_at | ||||||
|  |     remove_column :users, :remember_created_at | ||||||
|  |     remove_column :users, :sign_in_count | ||||||
|  |     remove_column :users, :current_sign_in_at | ||||||
|  |     remove_column :users, :current_sign_in_ip | ||||||
|  |     remove_column :users, :last_sign_in_at | ||||||
|  |     remove_column :users, :last_sign_in_ip | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										12
									
								
								db/schema.rb
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								db/schema.rb
									
										
									
									
									
								
							|  | @ -11,7 +11,7 @@ | ||||||
| # | # | ||||||
| # It's strongly recommended that you check this file into your version control system. | # It's strongly recommended that you check this file into your version control system. | ||||||
| 
 | 
 | ||||||
| ActiveRecord::Schema.define(version: 20160227230233) do | ActiveRecord::Schema.define(version: 20160305115639) do | ||||||
| 
 | 
 | ||||||
|   # These are extensions that must be enabled in order to support this database |   # These are extensions that must be enabled in order to support this database | ||||||
|   enable_extension "plpgsql" |   enable_extension "plpgsql" | ||||||
|  | @ -93,8 +93,18 @@ ActiveRecord::Schema.define(version: 20160227230233) do | ||||||
|     t.integer  "account_id",                          null: false |     t.integer  "account_id",                          null: false | ||||||
|     t.datetime "created_at",                          null: false |     t.datetime "created_at",                          null: false | ||||||
|     t.datetime "updated_at",                          null: false |     t.datetime "updated_at",                          null: false | ||||||
|  |     t.string   "encrypted_password",     default: "", null: false | ||||||
|  |     t.string   "reset_password_token" | ||||||
|  |     t.datetime "reset_password_sent_at" | ||||||
|  |     t.datetime "remember_created_at" | ||||||
|  |     t.integer  "sign_in_count",          default: 0,  null: false | ||||||
|  |     t.datetime "current_sign_in_at" | ||||||
|  |     t.datetime "last_sign_in_at" | ||||||
|  |     t.inet     "current_sign_in_ip" | ||||||
|  |     t.inet     "last_sign_in_ip" | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree |   add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree | ||||||
|  |   add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree | ||||||
| 
 | 
 | ||||||
| end | end | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue