From 7a13dffc9b29e89525b9a6e37a38714d53fa9993 Mon Sep 17 00:00:00 2001 From: f Date: Thu, 23 Mar 2023 17:21:05 -0300 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20establecer=20un=20par=C3=A1metro=20p?= =?UTF-8?q?or=20defecto=20#12754?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/usuaries_controller.rb | 12 ++++++------ app/models/rol.rb | 4 ++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/controllers/usuaries_controller.rb b/app/controllers/usuaries_controller.rb index 6d02a35a..746ee822 100644 --- a/app/controllers/usuaries_controller.rb +++ b/app/controllers/usuaries_controller.rb @@ -72,6 +72,8 @@ class UsuariesController < ApplicationController site_usuarie = SiteUsuarie.new(@site, current_usuarie) authorize site_usuarie + params[:invite_as] = invited_as :invite_as + @policy = policy(site_usuarie) end @@ -155,12 +157,10 @@ class UsuariesController < ApplicationController # El tipo de invitación que tenemos que enviar, si alguien mandó # cualquier cosa, usamos el privilegio menor. - def invited_as - if Rol::ROLES.include?(params[:invited_as]) - params[:invited_as] - else - 'invitade' - end + # + # @return [String] + def invited_as(param_key = :invited_as) + Rol.role?(params[param_key]) ? params[param_key] : Rol::INVITADE end def site diff --git a/app/models/rol.rb b/app/models/rol.rb index 5879d666..fcd07037 100644 --- a/app/models/rol.rb +++ b/app/models/rol.rb @@ -21,4 +21,8 @@ class Rol < ApplicationRecord def usuarie? rol == USUARIE end + + def self.role?(rol) + ROLES.include? rol + end end From df8efe800bb6c62b33df9624019e1468d3899cfe Mon Sep 17 00:00:00 2001 From: f Date: Thu, 23 Mar 2023 17:38:48 -0300 Subject: [PATCH 2/4] fix: no hardcodear roles --- app/controllers/usuaries_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/usuaries_controller.rb b/app/controllers/usuaries_controller.rb index 746ee822..4db6aafd 100644 --- a/app/controllers/usuaries_controller.rb +++ b/app/controllers/usuaries_controller.rb @@ -47,7 +47,7 @@ class UsuariesController < ApplicationController @usuarie = Usuarie.find(params[:usuarie_id]) if @site.usuaries.count > 1 - @usuarie.rol_for_site(@site).update_attribute :rol, 'invitade' + @usuarie.rol_for_site(@site).update_attribute :rol, Rol::INVITADE else flash[:warning] = I18n.t('usuaries.index.demote.denied') end @@ -61,7 +61,7 @@ class UsuariesController < ApplicationController authorize SiteUsuarie.new(@site, current_usuarie) @usuarie = Usuarie.find(params[:usuarie_id]) - @usuarie.rol_for_site(@site).update_attribute :rol, 'usuarie' + @usuarie.rol_for_site(@site).update_attribute :rol, Rol::USUARIE redirect_to site_usuaries_path end From c2fbc06d4102eab6b45a3b567795dfac7a198e47 Mon Sep 17 00:00:00 2001 From: f Date: Thu, 23 Mar 2023 17:50:24 -0300 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20tenemos=20un=20l=C3=ADo=20de=20singu?= =?UTF-8?q?lares=20y=20plurales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/usuaries_controller.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/controllers/usuaries_controller.rb b/app/controllers/usuaries_controller.rb index 4db6aafd..716668a9 100644 --- a/app/controllers/usuaries_controller.rb +++ b/app/controllers/usuaries_controller.rb @@ -72,7 +72,7 @@ class UsuariesController < ApplicationController site_usuarie = SiteUsuarie.new(@site, current_usuarie) authorize site_usuarie - params[:invite_as] = invited_as :invite_as + params[:invite_as] = invite_as @policy = policy(site_usuarie) end @@ -159,8 +159,12 @@ class UsuariesController < ApplicationController # cualquier cosa, usamos el privilegio menor. # # @return [String] - def invited_as(param_key = :invited_as) - Rol.role?(params[param_key]) ? params[param_key] : Rol::INVITADE + def invited_as + Rol.role?(params[:invited_as]) ? params[:invited_as] : Rol::INVITADE + end + + def invite_as + Rol.role?(params[:invite_as].singularize) ? params[:invite_as] : Rol::INVITADE.pluralize end def site From c9fa518b337b9426abb0a22ec61543582ef3bef5 Mon Sep 17 00:00:00 2001 From: f Date: Thu, 23 Mar 2023 17:53:13 -0300 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20el=20parametro=20puede=20venir=20vac?= =?UTF-8?q?=C3=ADo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/usuaries_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/usuaries_controller.rb b/app/controllers/usuaries_controller.rb index 716668a9..d75f3c20 100644 --- a/app/controllers/usuaries_controller.rb +++ b/app/controllers/usuaries_controller.rb @@ -164,7 +164,7 @@ class UsuariesController < ApplicationController end def invite_as - Rol.role?(params[:invite_as].singularize) ? params[:invite_as] : Rol::INVITADE.pluralize + Rol.role?(params[:invite_as]&.singularize) ? params[:invite_as] : Rol::INVITADE.pluralize end def site