55 lines
1.2 KiB
Ruby
55 lines
1.2 KiB
Ruby
![]() |
# frozen_string_literal: true
|
||
|
|
||
|
# Controlador de Usuaries
|
||
|
class UsuariesController < ApplicationController
|
||
|
include Pundit
|
||
|
before_action :authenticate_usuarie!
|
||
|
|
||
|
# Mostrar todes les usuaries e invitades de un sitio
|
||
|
def index
|
||
|
@site = find_site
|
||
|
site_usuarie = SiteUsuarie.new(@site, current_usuarie)
|
||
|
authorize site_usuarie
|
||
|
|
||
|
@policy = policy(site_usuarie)
|
||
|
end
|
||
|
|
||
|
# Desasociar une usuarie de un sitio
|
||
|
def destroy
|
||
|
@site = find_site
|
||
|
authorize SiteUsuarie.new(@site, current_usuarie)
|
||
|
|
||
|
@usuarie = Usuarie.find(params[:id])
|
||
|
|
||
|
@usuarie.sites.delete(@site)
|
||
|
|
||
|
redirect_to site_usuaries_path
|
||
|
end
|
||
|
|
||
|
# Convertir une usuarie en invitade
|
||
|
def demote
|
||
|
@site = find_site
|
||
|
authorize SiteUsuarie.new(@site, current_usuarie)
|
||
|
|
||
|
@usuarie = Usuarie.find(params[:usuarie_id])
|
||
|
|
||
|
@usuarie.sites.delete(@site)
|
||
|
@site.invitades << @usuarie
|
||
|
|
||
|
redirect_to site_usuaries_path
|
||
|
end
|
||
|
|
||
|
# Convertir invitade en usuarie
|
||
|
def promote
|
||
|
@site = find_site
|
||
|
authorize SiteUsuarie.new(@site, current_usuarie)
|
||
|
|
||
|
@usuarie = Usuarie.find(params[:usuarie_id])
|
||
|
|
||
|
@usuarie.sites_as_invitade.delete(@site)
|
||
|
@site.usuaries << @usuarie
|
||
|
|
||
|
redirect_to site_usuaries_path
|
||
|
end
|
||
|
end
|