mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-26 16:56:22 +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 :)
|
# necesita del consentimiento de le usuarie :)
|
||||||
class Rol < ApplicationRecord
|
class Rol < ApplicationRecord
|
||||||
ROLES = %w[usuarie invitade].freeze
|
ROLES = %w[usuarie invitade].freeze
|
||||||
|
USUARIE = 'usuarie'
|
||||||
|
INVITADE = 'invitade'
|
||||||
|
|
||||||
belongs_to :usuarie
|
belongs_to :usuarie
|
||||||
belongs_to :site
|
belongs_to :site
|
||||||
|
@ -13,10 +15,10 @@ class Rol < ApplicationRecord
|
||||||
validates_inclusion_of :rol, in: ROLES
|
validates_inclusion_of :rol, in: ROLES
|
||||||
|
|
||||||
def invitade?
|
def invitade?
|
||||||
rol == 'invitade'
|
rol == INVITADE
|
||||||
end
|
end
|
||||||
|
|
||||||
def usuarie?
|
def usuarie?
|
||||||
rol == 'usuarie'
|
rol == USUARIE
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -81,14 +81,12 @@ class Site < ApplicationRecord
|
||||||
"https://#{hostname}/"
|
"https://#{hostname}/"
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: Mover esta consulta a la base de datos para no traer un montón
|
|
||||||
# de cosas a la memoria
|
|
||||||
def invitade?(usuarie)
|
def invitade?(usuarie)
|
||||||
invitades.pluck(:id).include? usuarie.id
|
!invitades.where(id: usuarie).empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def usuarie?(usuarie)
|
def usuarie?(usuarie)
|
||||||
usuaries.pluck(:id).include? usuarie.id
|
!usuaries.where(id: usuarie).empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
# Este sitio acepta invitades?
|
# Este sitio acepta invitades?
|
||||||
|
|
|
@ -20,8 +20,9 @@ class Usuarie < ApplicationRecord
|
||||||
email.split('@', 2).first
|
email.split('@', 2).first
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Encuentra el rol que tiene le usuarie en el sitio
|
||||||
def rol_for_site(site)
|
def rol_for_site(site)
|
||||||
site.roles.merge(roles).first
|
roles.find_by(site: site)
|
||||||
end
|
end
|
||||||
|
|
||||||
# XXX: Ver increment_and_lock
|
# XXX: Ver increment_and_lock
|
||||||
|
|
|
@ -12,10 +12,6 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
get 'markdown', to: 'application#markdown'
|
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
|
constraints subdomain: 'api' do
|
||||||
scope module: 'api' do
|
scope module: 'api' do
|
||||||
namespace :v1 do
|
namespace :v1 do
|
||||||
|
|
Loading…
Reference in a new issue