diff --git a/app/models/rol.rb b/app/models/rol.rb index 4e4dd6f..5879d66 100644 --- a/app/models/rol.rb +++ b/app/models/rol.rb @@ -6,6 +6,8 @@ # necesita del consentimiento de le usuarie :) class Rol < ApplicationRecord ROLES = %w[usuarie invitade].freeze + USUARIE = 'usuarie' + INVITADE = 'invitade' belongs_to :usuarie belongs_to :site @@ -13,10 +15,10 @@ class Rol < ApplicationRecord validates_inclusion_of :rol, in: ROLES def invitade? - rol == 'invitade' + rol == INVITADE end def usuarie? - rol == 'usuarie' + rol == USUARIE end end diff --git a/app/models/site.rb b/app/models/site.rb index 058e16e..c6b50aa 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -81,14 +81,12 @@ class Site < ApplicationRecord "https://#{hostname}/" end - # TODO: Mover esta consulta a la base de datos para no traer un montón - # de cosas a la memoria def invitade?(usuarie) - invitades.pluck(:id).include? usuarie.id + !invitades.where(id: usuarie).empty? end def usuarie?(usuarie) - usuaries.pluck(:id).include? usuarie.id + !usuaries.where(id: usuarie).empty? end # Este sitio acepta invitades? diff --git a/app/models/usuarie.rb b/app/models/usuarie.rb index 90e8651..7b7cda5 100644 --- a/app/models/usuarie.rb +++ b/app/models/usuarie.rb @@ -20,8 +20,9 @@ class Usuarie < ApplicationRecord email.split('@', 2).first end + # Encuentra el rol que tiene le usuarie en el sitio def rol_for_site(site) - site.roles.merge(roles).first + roles.find_by(site: site) end # XXX: Ver increment_and_lock diff --git a/config/routes.rb b/config/routes.rb index f89bc53..e993d0c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -12,10 +12,6 @@ Rails.application.routes.draw do get 'markdown', to: 'application#markdown' - # XXX Mantenemos solo esta ruta acá porque form_for no reconoce @site - # como un objeto válido - resources :invitadxs, only: [:create] - constraints subdomain: 'api' do scope module: 'api' do namespace :v1 do