mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-14 18:01:42 +00:00
optimizar busqueda de roles
This commit is contained in:
parent
25a30ecf51
commit
2f3dbc8494
4 changed files with 8 additions and 11 deletions
|
@ -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
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue