User Import Howto

De Wiki Expresso V3
Ir para: navegação, pesquisa

O ExpressoV3 permite importação de arquivos txt, no formato csv, isto é, arquivos cujos dados dos usuários estão em uma linha do arquivo e separados por algum delimitador específico.

Também existe a possibilidade de importar/sincronizar os usuários de uma árvore ldap previamente existente.

Conteúdo

Importando usuários de um arquivo csv

O ExpressoV3 permite importação de arquivos txt, no formato csv, isto é, arquivos cujos dados dos usuários estão em uma linha do arquivo e separados por algum delimitador específico.

Arquivo de configuração de importação

Para saber o formato dos campos do arquivo csv, voce deverá informa-lo ao expressov3 via um arquivo xml. Edite o conteúdo do arquivo 'Admin/Import/definitions/admin_user_import_csv.xml', para representar os campos de seu arquivo csv, conforme exemplo abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<config>
   <model>Tinebase_Model_FullUser</model>
   <plugin>Admin_Import_Csv</plugin>
   <type>import</type>
   <headline>1</headline>
   <dryrun>1</dryrun>
   <delimiter>;</delimiter>
   <mapping>
       <field>
           <source>firstname</source>
           <destination>accountFirstName</destination>
       </field>
       <field>
           <source>lastname</source>
           <destination>accountLastName</destination>
       </field>
       <field>
           <source>loginname</source>
           <destination>accountLoginName</destination>
       </field>
       <field>
           <source>password</source>
           <destination>password</destination>
       </field>
       <field>
       <source>email</source>
           <destination>accountEmailAddress</destination>
       </field>
   </mapping>
</config>

Para ambientes de testes coloque 'dryrun' com 1, então esta importação não será carregada na base de dados. Para importações reais sete-o para 0.

Outros campos são passíveis de serem configurados, conforme pode ser verificado no arquivo 'Tinebase/Model/FullUser.php' para maiores detalhes.

Importação de usuários de um cadastro ldap

Normalmente na instalação inicial do expresso a organização já possui um cadastro ldap de seus funcionários, necessitando apenas sincroniza-lo com o cadastro do expressov3. Esta importação permite que todos os usuários da base ldap possam ser encontrados no ExpressoV3(Internal Catalog).

Comando CLI  responsável por essa importação:
php setup.php --verbose --sync_accounts_from_ldap

Os logs desse script são escritos no mesmo log do ExpressoV3(arquivo de log configurado no setup). Este script irá popular o banco de dados para todos os usuários ldap, porém pode não haver necessidade deste procedimento pois cada usuário que loga no sistema tem seus dados automaticamente copiados para o banco de dados.

ObS: A configuração do ldap deve estar correta via setup.php. Para certificar-se você poderá faze uma consulta via linha de comando(ldapsearch) com o filtro configurado no setup para certificar-se que seu filtro irá retornar os usuários da base ldap.

Atenção:Caso esteja testando uma instalação inicial e desejar reexecutar o procedimento é conveniente 
limpar o banco de dados(Cuidado! Este procedimento irá limpar a base de usuários do expresso)
delete from tine20_group_members; 
delete from tine20_accounts;
delete from tine20_groups;
delete from tine20_addressbook;
delete from tine20_addressbook_lists;

Arquivo CSV

Crie um arquivo que contem as colunas definidas no seu arquivo XML, por Exemplo:

firstname;lastname;loginname;password;email 
John;Doe;jdoe;secret;john.doe@domain.example

A primeira linha contem os nomes dos campos especificados na tag 'source' e seus valores são separados pelo delimitador 'delimiter' do arquivo de configuração.

Importando

Coloque o arquivo csv no diretório base do expressov3, posicione-se nele e execute:

php tine20.php -v --username adminv30 --method Admin.importUser /path/to/file.csv definition=Admin/Import/definitions 
/admin_user_import_csv.xml

Troque 'adminv3' com uma conta que contenha privilégio de administrador.

Se a importação ocorrer com sucesso vc irá perceber:
reading file test.csv ...done.
Imported 1 records. Import failed for 0 records.


Passo-a-passo

1. Crie um arquivo chamado file.csv, fonte de importação no diretório base do apache, onde estiver o expressov3.
   Ex: 
   cd /var/www/expresso
   echo 'firstname;lastname;loginname;password;email' > file.csv
   echo 'John;Doe;jdoe;secret01*;john.doe@dominio.gov.br' >> file.csv
2. O arquivo que descreve os campos de importação, delimitadores, etc...é o arquivo
   ...Admin/Import/definitions/admin_user_import_csv.xml
   Configure-o conforme item anterior.
3. Executando a importação...
   Posicione-se no diretório base do expresso: cd /var/www/expresso
   Execute a função CLI: Admin.importUser, conforme:
   php tine20.php -v --username adminv30 --method Admin.importUser file.csv definition=Admin/Import/definitions/admin_user_import_csv.xml 
4. Será informado o resultado da importação.
5. Toda execução será reportada na log, portanto para depuração inicial é recomendável nível de debug
   Obs: O usuário "adminv30" deve ter privilégios suficientes para executar a criação de usuários.
Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Ferramentas