@@ -5,49 +5,45 @@ class SignUp < Base
55 argument :password , String , required : true
66 argument :password_confirmation , String , required : true
77 argument :confirm_success_url , String , required : false
8- argument :config_name , String , required : false
98
10- def resolve ( confirm_success_url : nil , config_name : nil , **attrs )
9+ def resolve ( confirm_success_url : nil , **attrs )
1110 resource = resource_class . new ( provider : provider , **attrs )
11+ raise_user_error ( I18n . t ( 'graphql_devise.resource_build_failed' ) ) if resource . blank?
1212
13- if resource . present?
14- resource . skip_confirmation_notification! if resource . respond_to? ( :skip_confirmation_notification! )
13+ redirect_url = confirm_success_url || DeviseTokenAuth . default_confirm_success_url
14+ if confirmable_enabled? && redirect_url . blank?
15+ raise_user_error ( I18n . t ( 'graphql_devise.registrations.missing_confirm_redirect_url' ) )
16+ end
1517
16- if resource . save
17- yield resource if block_given?
18+ if blacklisted_redirect_url? ( redirect_url )
19+ raise_user_error ( I18n . t ( 'graphql_devise.registrations.redirect_url_not_allowed' , redirect_url : redirect_url ) )
20+ end
1821
19- if requires_confirmation? ( resource )
20- resource . send_confirmation_instructions (
21- client_config : config_name ,
22- redirect_url : confirm_success_url ,
23- template_path : [ 'graphql_devise/mailer' ]
24- )
25- end
22+ resource . skip_confirmation_notification! if resource . respond_to? ( :skip_confirmation_notification! )
2623
27- set_auth_headers ( resource ) if resource . active_for_authentication?
24+ if resource . save
25+ yield resource if block_given?
2826
29- { authenticable : resource }
30- else
31- clean_up_passwords ( resource )
32- raise_user_error_list (
33- I18n . t ( 'graphql_devise.registration_failed' ) ,
34- errors : resource . errors . full_messages
27+ unless resource . confirmed?
28+ resource . send_confirmation_instructions (
29+ redirect_url : confirm_success_url ,
30+ template_path : [ 'graphql_devise/mailer' ]
3531 )
3632 end
37- else
38- raise_user_error ( I18n . t ( 'graphql_devise.resource_build_failed' ) )
39- end
40- end
4133
42- protected
34+ set_auth_headers ( resource ) if resource . active_for_authentication?
4335
44- def confirmable_enabled? ( resource )
45- resource . respond_to? ( :confirmed_at )
36+ { authenticable : resource }
37+ else
38+ clean_up_passwords ( resource )
39+ raise_user_error_list (
40+ I18n . t ( 'graphql_devise.registration_failed' ) ,
41+ errors : resource . errors . full_messages
42+ )
43+ end
4644 end
4745
48- def requires_confirmation? ( resource )
49- resource . active_for_authentication? || !resource . confirmed?
50- end
46+ private
5147
5248 def provider
5349 :email
0 commit comments