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 |
|
|
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 |
|
|
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.