Persistência de dados dos usuários


Neste item, abordaremos os arquivos que definem a estrutura das tabelas do banco de dados, bem como o layout específico onde o cadastro de usuários é registrado. Primeiramente, a análise será realizada no contexto da plataforma Badiu.Net e, em seguida, será abordado o cenário na plataforma Moodle.

 

1 - Persistência de dados dos usuários na Plataforma Badiu.Net


Na plataforma Badiu.Net, existem dois arquivos descritores da entidade responsáveis por gerar as tabelas no banco de dados: um para os registros de usuários e outro para a sincronização desses registros.

Arquivo

Descrição

BADIUNET_DIR_INSTALL/Badiu/System/UserBundle/Entity/SystemUser.php

Este é o arquivo que contém o descritor dos campos da tabela de usuários no sistema Badiu.Net. Esse arquivo está localizado no módulo usuário, dentro da categoria sistema.

BADIUNET_DIR_INSTALL//Badiu/Admin/ServerBundle/Entity/AdminServerSyncUser.php

Este arquivo contém o descritor dos campos da tabela de sincronização do usuário com sistemas externos. Ele está localizado no módulo server, pertencente à categoria administração.


O arquivo SystemUser.php, ao ser executado pelo instalador, gera a tabela system_user, cuja parte da estrutura é exibida no print a seguir.

A figura acima ilustra parte dos campos da tabela system_user. Os campos mais importantes estão destacados. A tabela a seguir apresenta a descrição dos campos cadastrais do usuário.

Campo

Descrição

id

Id sequencial gerado pelo sistema para cada novo registro de usuário. Esse campo é referenciado  (chave estrangeira) na tabela de sincronização admin_server_sync_user no campo sysuserid.

firstname

Primeiro nome do usuário

lastname

Sobrenome do usuário

email

E-mail do usuário. 

Na lista de campos abordados, vale destacar o campo id. Trata-se da chave primária, ou seja, a chave única de identificação do usuário no sistema. Esse campo é referenciado na tabela de sincronização admin_server_sync_user, que será abordada em seguida, na sua coluna sysuserid.

O arquivo ServerSyncUser.php, ao ser executado pelo instalador, gera a tabela admin_server_sync_user, cuja estrutura é exibida no print a seguir.

A figura acima ilustra parte dos campos da tabela admin_server_sync_user. Os campos mais importantes estão destacados. A tabela a seguir apresenta a descrição dos campos que realizam o mapeamento de sincronização.

Campo

Descrição

sysuserid

Chave de identificação do usuário cadastrado na plataforma Badiu.Net. Referência (chave estrangeira) à coluna id da tabela system_user.

userid

Chave de identificação do usuário cadastrado na plataforma Moodle. Referência (chave estrangeira) à coluna id da tabela mdl_user.

serviceid

Chave de identificação da instância da plataforma Moodle. Referência (chave estrangeira) à coluna id da tabela admin_server_service

 

Na lista de campos abordados, vale destacar que os campos sysuserid e userid são as chaves de identificação do usuário nas plataformas Badiu.Net e Moodle, respectivamente. Essas duas chaves definem o controle de replicação do mesmo usuário entre os dois sistemas. Como um mesmo usuário do Badiu.Net pode ser replicado em mais de uma instância da plataforma Moodle, a coluna serviceid se refere à instância específica da plataforma Moodle em que o usuário foi aplicado.

2 - Persistência de dados dos usuários na Plataforma Moodle

Na plataforma Moodle, há um arquivo descritor das tabelas que concentra a definição da estrutura de todos os módulos que fazem parte do pacote padrão. Trata-se do arquivo MOODLE_DIR_INSTALL/lib/db/install.xml.

Ao processar a instalação do Moodle, todas as tabelas são criadas a partir do arquivo install.xml, incluindo a tabela de usuários.

A tabela mdl_user é responsável pelo armazenamento dos dados do usuário. O prefixo mdl_ é o padrão utilizado, mas caso o prefixo seja alterado durante a instalação, o nome da tabela assumirá o prefixo definido. A figura a seguir ilustra o layout com algumas colunas da tabela de usuários.

A tabela a seguir descreve alguns campos que são fundamentais para entender o processo de sincronização.

Campo

Descrição

id

Chave de identificação do usuário. Essa chave é referenciada na tabela de sincronização admin_server_sync_user da plataforma Badiu.Net, na coluna userid.

firstname

Primeiro nome do usuário

lastname

Sobrenome do usuário

email

E-mail do usuário. 

Quando a plataforma Badiu.Net efetua a replicação do cadastro de usuário na plataforma Moodle, os dados cadastrais como firstname, lastname, email e outros dados do perfil, são enviados pelo sistema Badiu.Net. O id é gerado automaticamente no Moodle e retornado para o controle de sincronização, sendo registrado na tabela de controle de replicação admin_server_sync_user, na coluna userid, na plataforma Badiu.Net.