mirror of https://github.com/interlegis/sapl.git
Marcio Mazza
7 years ago
1 changed files with 53 additions and 0 deletions
@ -0,0 +1,53 @@ |
|||
import yaml |
|||
from django.conf import settings |
|||
from django.contrib.auth.models import Group, User |
|||
|
|||
|
|||
def le_yaml_dados_zope(caminho_yaml): |
|||
with open(caminho_yaml, 'r') as f: |
|||
dados = yaml.load(f.read()) |
|||
return dados |
|||
|
|||
PERFIL_LEGADO_PARA_NOVO = [ |
|||
('Autor', 'Autor'), |
|||
('Operador', 'Operador Geral'), |
|||
('Operador Comissao', 'Operador de Comissões'), |
|||
('Operador Materia', 'Operador de Matéria'), |
|||
('Operador Modulo Administrativo', 'Operador Administrativo'), |
|||
('Operador Norma', 'Operador de Norma Jurídica'), |
|||
('Operador Parlamentar', 'Parlamentar'), |
|||
('Operador Protocolo', 'Operador de Protocolo Administrativo'), |
|||
('Operador Sessao Plenaria', 'Operador de Sessão Plenária'), |
|||
] |
|||
|
|||
ADMINISTRADORES = ['Administrador', 'Manager'] |
|||
|
|||
# XXX Esses não tem perfil novo e estão sendo ignorados |
|||
# TODO que fazer???? |
|||
# |
|||
# Operador Mesa Diretora |
|||
# Operador Ordem Dia |
|||
# Operador Tabela Auxiliar |
|||
# Owner |
|||
|
|||
|
|||
VOTANTE = Group.objects.get(name='Votante') |
|||
|
|||
|
|||
def migra_usuarios(caminho_yaml): |
|||
dados = le_yaml_dados_zope(caminho_yaml) |
|||
db = settings.DATABASES['legacy']['NAME'] |
|||
nome, url, usuarios_perfis = dados[db] |
|||
for nome, perfis in usuarios_perfis: |
|||
usuario, _ = User.objects.get_or_create(username=nome) |
|||
for legado, novo in PERFIL_LEGADO_PARA_NOVO: |
|||
if legado in perfis: |
|||
grupo = Group.objects.get(name=novo) |
|||
usuario.groups.add(grupo) |
|||
# Manager |
|||
if any(a in perfis for a in ADMINISTRADORES): |
|||
usuario.is_staff = True |
|||
usuario.save() |
|||
# Votante |
|||
if 'Parlamentar' in perfis: |
|||
usuario.groups.add(VOTANTE) |
Loading…
Reference in new issue