Browse Source

Limita número de superusuários

pull/1751/merge
Marcio Mazza 7 years ago
parent
commit
118b5dc011
  1. 32
      sapl/legacy/migracao_usuarios.py
  2. 4
      sapl/legacy/scripts/migra_um_db.sh

32
sapl/legacy/migracao_usuarios.py

@ -1,13 +1,13 @@
import yaml
from django.contrib.auth.models import Group, User
from sapl.hashers import zope_encoded_password_to_django
from sapl.settings import MEDIA_ROOT
PERFIL_LEGADO_PARA_NOVO = {legado: Group.objects.get(name=novo)
for legado, novo in [
('Autor', 'Autor'),
('Operador', 'Operador Geral'),
('Operador', 'Operador Geral'),
('Operador Comissao', 'Operador de Comissões'),
('Operador Materia', 'Operador de Matéria'),
('Operador Modulo Administrativo', 'Operador Administrativo'),
@ -82,16 +82,36 @@ def migrar_usuarios():
set(dados['roles']) - IGNORADOS)
for nome, dados in usuarios.items()]
admins = []
for nome, senha, perfis in usuarios:
usuario = User.objects.get_or_create(username=nome)[0]
usuario.password = zope_encoded_password_to_django(senha)
for perfil in perfis:
if perfil in ADMINISTRADORES:
# Manager
usuario.is_superuser = True
# todos os administradores ganham perfil "Operador Geral"
usuario.groups.add(PERFIL_LEGADO_PARA_NOVO['Operador'])
admins.append(usuario)
else:
usuario.groups.add(PERFIL_LEGADO_PARA_NOVO[perfil])
usuario.save()
# apaga arquivo (importante pois contém senhas)
ARQUIVO_USUARIOS.remove()
# restringe e configura administradores
if len(admins) > 2:
admins = (
# ususários com admin no nome
[u for u in admins if 'admin' in u.username]
# senão, o usuário saploper, apenas
or [u for u in admins if 'saploper' == u.username]
# senão, simplesmente até os dois primeiros da lista
or admins[:2]
)
for admin in admins:
admin.is_superuser = True
admin.save()
print('Usuários migrados com sucesso.')
print('#' * 100)
print('Uusários administradores:')
for admin in admins:
print(admin.username)
print('#' * 100)

4
sapl/legacy/scripts/migra_um_db.sh

@ -37,9 +37,9 @@ if [ $# -ge 2 ]; then
DATABASE_NAME=$1 ./manage.py migrate --settings sapl.legacy_migration_settings
echo >> $LOG
echo "--- MIGRACAO DE DADOS ---" | tee -a $LOG
echo "--- MIGRACAO ---" | tee -a $LOG
echo >> $LOG
DATABASE_NAME=$1 ./manage.py migracao_25_31 --force --dados --settings sapl.legacy_migration_settings 2>&1 | tee -a $LOG
DATABASE_NAME=$1 ./manage.py migracao_25_31 --force --settings sapl.legacy_migration_settings 2>&1 | tee -a $LOG
echo >> $LOG
else
echo "USO:"

Loading…
Cancel
Save