From d766256a1856eb99de6b405f013c025b8a66ec10 Mon Sep 17 00:00:00 2001
From: Victor Ghita <tomi.gvf@gmail.com>
Date: Thu, 14 Dec 2023 11:53:31 +0100
Subject: [PATCH] Apply badge type to manually awardable badges

---
 app/controllers/badges_controller.rb | 18 +++++++++---------
 app/views/badges/award.html.erb      |  2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/app/controllers/badges_controller.rb b/app/controllers/badges_controller.rb
index 5d7b3d28e..a96a27f07 100644
--- a/app/controllers/badges_controller.rb
+++ b/app/controllers/badges_controller.rb
@@ -62,16 +62,16 @@ class BadgesController < ApplicationController
   end
 
   def award_save
+    permitted_parameters = params.require(:user_badge).permit(:badge_type, :badge_source_type,
+                                                              :badge_source_id, :user, :badge)
+    @user = User.find_by(id: permitted_parameters[:user])
+    @badge = Badge.find_by(id: permitted_parameters[:badge])
+    @user_badge = UserBadge.new(permitted_parameters.merge(user: @user, badge: @badge,
+                                                           badge_type: permitted_parameters[:badge_type]))
+
     @entity_types = badge_source_types
-    @user = User.find_by(id: params[:user_badge][:user])
-    @badge = Badge.find_by(id: params[:user_badge][:badge])
-    @user_badge = UserBadge.new(params.require(:user_badge).permit(:badge_type, :badge_source_type,
-                                                                   :badge_source_id)
-                                      .merge(user: @user, badge: @badge,
-                                             badge_type: params[:user_badge][:badge_type].to_i))
-
-    unless badge_source_types.include? @user_badge.badge_source_type
-      flash[:danger] = 'Post Type is invalid.'
+    unless @entity_types.include? @user_badge.badge_source_type
+      flash[:danger] = 'Entity Type is invalid.'
       redirect_to :award, status: :bad_request
       return
     end
diff --git a/app/views/badges/award.html.erb b/app/views/badges/award.html.erb
index af291cd3a..ddadfed59 100644
--- a/app/views/badges/award.html.erb
+++ b/app/views/badges/award.html.erb
@@ -21,7 +21,7 @@
 
   <div class="form-group">
     <%= f.label :badge_type, 'Type', class: 'form-element' %>
-    <%= f.select :badge_type, UserBadge.badge_types.keys,
+    <%= f.select :badge_type, options_for_select(UserBadge.badge_types.keys.to_a ),
                  { include_blank: false }, class: 'form-element' %>
   </div>
 
-- 
GitLab