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 import yaml
from django.contrib.auth.models import Group, User from django.contrib.auth.models import Group, User
from sapl.hashers import zope_encoded_password_to_django from sapl.hashers import zope_encoded_password_to_django
from sapl.settings import MEDIA_ROOT from sapl.settings import MEDIA_ROOT
PERFIL_LEGADO_PARA_NOVO = {legado: Group.objects.get(name=novo) PERFIL_LEGADO_PARA_NOVO = {legado: Group.objects.get(name=novo)
for legado, novo in [ for legado, novo in [
('Autor', 'Autor'), ('Autor', 'Autor'),
('Operador', 'Operador Geral'), ('Operador', 'Operador Geral'),
('Operador Comissao', 'Operador de Comissões'), ('Operador Comissao', 'Operador de Comissões'),
('Operador Materia', 'Operador de Matéria'), ('Operador Materia', 'Operador de Matéria'),
('Operador Modulo Administrativo', 'Operador Administrativo'), ('Operador Modulo Administrativo', 'Operador Administrativo'),
@ -82,16 +82,36 @@ def migrar_usuarios():
set(dados['roles']) - IGNORADOS) set(dados['roles']) - IGNORADOS)
for nome, dados in usuarios.items()] for nome, dados in usuarios.items()]
admins = []
for nome, senha, perfis in usuarios: for nome, senha, perfis in usuarios:
usuario = User.objects.get_or_create(username=nome)[0] usuario = User.objects.get_or_create(username=nome)[0]
usuario.password = zope_encoded_password_to_django(senha) usuario.password = zope_encoded_password_to_django(senha)
for perfil in perfis: for perfil in perfis:
if perfil in ADMINISTRADORES: if perfil in ADMINISTRADORES:
# Manager # todos os administradores ganham perfil "Operador Geral"
usuario.is_superuser = True usuario.groups.add(PERFIL_LEGADO_PARA_NOVO['Operador'])
admins.append(usuario)
else: else:
usuario.groups.add(PERFIL_LEGADO_PARA_NOVO[perfil]) usuario.groups.add(PERFIL_LEGADO_PARA_NOVO[perfil])
usuario.save() 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('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 DATABASE_NAME=$1 ./manage.py migrate --settings sapl.legacy_migration_settings
echo >> $LOG echo >> $LOG
echo "--- MIGRACAO DE DADOS ---" | tee -a $LOG echo "--- MIGRACAO ---" | tee -a $LOG
echo >> $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 echo >> $LOG
else else
echo "USO:" echo "USO:"

Loading…
Cancel
Save