@@ -91,14 +91,23 @@ def create
91
91
# See config/settings.yml
92
92
authenticate_user! if Settings . enable_logins && !Settings . allow_anonymous
93
93
94
+ # binding.pry
94
95
# params[:password] has to exist
96
+ # params[:password] has to be a ActionController::Parameters (Hash)
97
+ password_param = params . fetch ( :password , { } )
98
+ if !password_param . respond_to? ( :fetch )
99
+ respond_to do |format |
100
+ format . html { redirect_to root_path , status : :bad_request , notice : 'Bad Request' }
101
+ format . json { render json : '{}' , status : :bad_request }
102
+ end
103
+ return
104
+ end
105
+
95
106
# params[:password][:payload] has to exist
96
107
# params[:password][:payload] can't be blank
97
- # params[:password][:payload] can't be longer than 1 megabyte
98
-
99
- payload_param = params . fetch ( :password , { } ) . fetch ( :payload , '' )
100
- if !payload_param . is_a? ( String ) || payload_param . blank? || payload_param . length > 1 . megabyte
101
-
108
+ # params[:password][:payload] must have a length between 1 and 1 megabyte
109
+ payload_param = password_param . fetch ( :payload , '' )
110
+ unless payload_param . is_a? ( String ) && payload_param . length . between? ( 1 , 1 . megabyte )
102
111
respond_to do |format |
103
112
format . html { redirect_to root_path , status : :bad_request , notice : 'Bad Request' }
104
113
format . json { render json : '{}' , status : :bad_request }
0 commit comments