@@ -0,0 +1,31 @@ |
||
1 |
+class Users::InvitationsController < Devise::InvitationsController |
|
2 |
+ |
|
3 |
+ before_filter :update_sanitized_params, only: :update |
|
4 |
+ |
|
5 |
+ # PUT /resource/invitation |
|
6 |
+ def update |
|
7 |
+ respond_to do |format| |
|
8 |
+ format.js do |
|
9 |
+ invitation_token = Devise.token_generator.digest(resource_class, :invitation_token, update_resource_params[:invitation_token]) |
|
10 |
+ self.resource = resource_class.where(invitation_token: invitation_token).first |
|
11 |
+ resource.skip_password = true |
|
12 |
+ resource.update_attributes update_resource_params.except(:invitation_token) |
|
13 |
+ end |
|
14 |
+ format.html do |
|
15 |
+ invitation_token = Devise.token_generator.digest(resource_class, :invitation_token, update_resource_params[:invitation_token]) |
|
16 |
+ @user = User.where(email: params[:user][:email]).first |
|
17 |
+ @user.update(first_name: params[:user][:first_name], last_name: params[:user][:last_name]) |
|
18 |
+ @user.update_attributes update_resource_params.except(:invitation_token) |
|
19 |
+ super |
|
20 |
+ end |
|
21 |
+ end |
|
22 |
+ end |
|
23 |
+ |
|
24 |
+ protected |
|
25 |
+ |
|
26 |
+ def update_sanitized_params |
|
27 |
+ devise_parameter_sanitizer.for(:accept_invitation) do |u| |
|
28 |
+ u.permit(:password, :password_confirmation, :invitation_token) |
|
29 |
+ end |
|
30 |
+ end |
|
31 |
+end |
@@ -12,7 +12,11 @@ class User < ActiveRecord::Base |
||
12 | 12 |
|
13 | 13 |
mount_uploader :avatar, AvatarUploader |
14 | 14 |
process_in_background :avatar |
15 |
- |
|
15 |
+ |
|
16 |
+ def send_reset_password_instructions |
|
17 |
+ super if invitation_token.nil? |
|
18 |
+ end |
|
19 |
+ |
|
16 | 20 |
def full_name |
17 | 21 |
name = self.first_name.to_s + ' ' + self.last_name.to_s |
18 | 22 |
return name |
@@ -92,7 +92,7 @@ Avalanche2::Application.routes.draw do |
||
92 | 92 |
get "maintenance_mode" => "admin_panel#maintenance_mode", :as => :maintenance_mode |
93 | 93 |
|
94 | 94 |
# Devise Routes |
95 |
- devise_for :users, :skip => [:sessions, :passwords, :confirmations, :registrations] |
|
95 |
+ devise_for :users, :skip => [:sessions, :passwords, :confirmations, :registrations], controllers: { invitations: "users/invitations" } |
|
96 | 96 |
as :user do |
97 | 97 |
get 'login' => 'devise/sessions#new', :as => :new_user_session |
98 | 98 |
post 'login' => 'devise/sessions#create', :as => :user_session |
@@ -100,6 +100,7 @@ Avalanche2::Application.routes.draw do |
||
100 | 100 |
get 'signup' => 'devise/registrations#new', :as => :new_user_registration |
101 | 101 |
post 'signup' => 'devise/registrations#create', :as => :user_registration |
102 | 102 |
put 'signup' => 'users/registrations#update', :as => :user_registration_update |
103 |
+ |
|
103 | 104 |
scope '/account' do |
104 | 105 |
# password reset |
105 | 106 |
get '/reset-password' => 'devise/passwords#new', as: 'new_user_password' |