no permitir quitar a le ultime usuarie

This commit is contained in:
f 2019-07-10 17:58:05 -03:00
parent 962623ede4
commit 1fd0649993
No known key found for this signature in database
GPG key ID: 2AE5A13E321F953D
4 changed files with 17 additions and 9 deletions

View file

@ -17,12 +17,7 @@ class ApplicationController < ActionController::Base
# Encontrar un sitio por su nombre # Encontrar un sitio por su nombre
def find_site def find_site
id = params[:site_id] || params[:id] current_usuarie.sites.find_by_name(params[:site_id] || params[:id])
# TODO: encontrar una forma mejor de buscar en todos los sitios en
# lugar de desperdiciar una consulta
current_usuarie.sites.find_by_name(id) ||
current_usuarie.sites_as_invitade.find_by_name(id)
# TODO: reenviar a un 403 si el sitio ya no está permitido para le # TODO: reenviar a un 403 si el sitio ya no está permitido para le
# usuarie # usuarie

View file

@ -23,8 +23,12 @@ class UsuariesController < ApplicationController
@usuarie = Usuarie.find(params[:id]) @usuarie = Usuarie.find(params[:id])
# Mágicamente elimina el rol if @site.usuaries.count > 1
@usuarie.sites.delete(@site) # Mágicamente elimina el rol
@usuarie.sites.delete(@site)
else
flash[:warning] = I18n.t('usuaries.index.destroy.denied')
end
redirect_to site_usuaries_path redirect_to site_usuaries_path
end end
@ -35,7 +39,12 @@ class UsuariesController < ApplicationController
authorize SiteUsuarie.new(@site, current_usuarie) authorize SiteUsuarie.new(@site, current_usuarie)
@usuarie = Usuarie.find(params[:usuarie_id]) @usuarie = Usuarie.find(params[:usuarie_id])
@usuarie.rol_for_site(@site).update_attribute :rol, 'invitade'
if @site.usuaries.count > 1
@usuarie.rol_for_site(@site).update_attribute :rol, 'invitade'
else
flash[:warning] = I18n.t('usuaries.index.demote.denied')
end
redirect_to site_usuaries_path redirect_to site_usuaries_path
end end

View file

@ -283,9 +283,11 @@ en:
destroy: destroy:
text: 'Remove access' text: 'Remove access'
confirm: "Remove access to this site? The account itself is not deleted, but it won't be able to make changes to this site." confirm: "Remove access to this site? The account itself is not deleted, but it won't be able to make changes to this site."
denied: 'The site needs at least one user!'
demote: demote:
text: 'Convert to guest' text: 'Convert to guest'
confirm: 'Convert to guest? They can only edit their own posts and will need approval from other user to publish them.' confirm: 'Convert to guest? They can only edit their own posts and will need approval from other user to publish them.'
denied: 'The site needs at least one user!'
promote: promote:
text: 'Convert to user' text: 'Convert to user'
confirm: 'Convert to user? They will gain full access to self-manage this site.' confirm: 'Convert to user? They will gain full access to self-manage this site.'

View file

@ -284,9 +284,11 @@ es:
destroy: destroy:
text: 'Quitar acceso' text: 'Quitar acceso'
confirm: '¿Quitar acceso a este sitio? La cuenta no será modificada, solo no podrá hacer cambios en este sitio.' confirm: '¿Quitar acceso a este sitio? La cuenta no será modificada, solo no podrá hacer cambios en este sitio.'
denied: '¡El sitio tiene que tener al menos une usuarie!'
demote: demote:
text: 'Convertir en invitade' text: 'Convertir en invitade'
confirm: '¿Convertir en invitade? Solo tendrá acceso a sus propios artículos y necesitará la aprobación de otre usuarie para publicarlos.' confirm: '¿Convertir en invitade? Solo tendrá acceso a sus propios artículos y necesitará la aprobación de otre usuarie para publicarlos.'
denied: '¡El sitio tiene que tener al menos une usuarie!'
promote: promote:
text: 'Convertir en usuarie' text: 'Convertir en usuarie'
confirm: '¿Convertir en usuarie? Ganará acceso a la gestión completa del sitio.' confirm: '¿Convertir en usuarie? Ganará acceso a la gestión completa del sitio.'