Module bau
Base de Autorização Única.
Funções que lidam com permissões, recursos, usuários e tabelas auxiliares.
Functions
| permissao (db, user, recurso) | Obtém dados da permissão de um usuário a um recurso. |
| lista_recurso_acesso (db) | Obtém todas as combinações de recursos e níveis de acesso. |
| existe_ligacao (db, user, tab, nome_campo, chave) | Checa se ligacao existe |
| lista_alunos_configuraveis (db, user, pro, nome) | Lista os alunos que o usuário pode configurar. |
| cargo_responsavel (db, recurso) | Obtém o nome do cargo do responsável pelo recurso. |
| pode_consultar_relatorios (db, usuario, nivel) | Verifica se um usuário pode consultar relatórios do sistema. |
| lista_analisadores_inscricao (db, id_curso) | Lista os analisadores de inscrições de um curso. |
| pode_consultar_varios_cursos_progs (db, user) | Verifica se um usuário pode consultar mais de um curso e se pode consultar mais de um programa. |
| pode_consultar_producoes (db, user) | Verifica se um usuário pode consultar as produções do Sintético. |
| lista_contatos_alternativos (db, email_ou_ids) | Obtém uma lista de contatos associados ao email dado como entrada |
| lista_log_contato_email (db, email_ou_ids) | Lista os logs de contato relativos ao e-mail dado. |
| grava_log_contato (db, log, email, lids) | Grava o novo log de contato relativo ao email dado. |
| cadastra_usuario (db, matricula, dados) | Cadastra usuário. |
| desliga_usuario (db, user, tab, id, nome_campo) | Desfaz um relacionamento entre o usuario e alguma outra tabela. |
| cadastra_permissao (db, user, recurso, nivel, estrangeira) | Atribui uma nova permissão ao usuário. |
| remove_permissao (db, user, recurso, nivel, estrangeira) | Remove uma permissão existente do usuário. |
| liga_usuario (db, user, tab, id, nome_campo) | Cria um relacionamento entre o usuario e alguma outra tabela. |
| liga_orientador (db, user, orientador) | Associa (ou desassocia) um aluno a seu orientador. |
| liga_usuario_centro (db, user, centro) | Cria uma ligação entre um usuário e um centro. |
| liga_usuario_programa (db, user, programa) | Cria uma ligação entre um usuário e um programa. |
| liga_usuario_coordenacao (db, user, coordenacao) | Cria uma ligação entre um usuário e uma coordenação. |
| liga_usuario_curso (db, user, curso, extra) | Cria uma ligação entre um usuário e um curso. |
| liga_usuario_colegiado (db, user, colegiado, extra) | Cria uma ligação entre um usuário e um colegiado. |
| liga_usuario_unidade (db, user, unidade, extra) | Cria uma ligação entre um usuário e uma unidade. |
| liga_aluno_area_concentracao (db, user, area_concentracao) | Cria uma ligação entre um aluno e uma área de concentração. |
| atualiza_cadastro (db, usuario) | Atualiza os dados do usuário a partir do que está no SAU. |
| atualiza_data_defesa (db, id_aluno, data) | Atualiza a data de defesa do aluno de pós. |
| anula_data_saida (db, id_usuario) | Apaga a data de saída do usuário. |
| id_do_tipo_usuario (tipo_usuario) | Monta subselect que descobre o identificador de um tipo de usuário. |
| candidato2aluno (db, inscricao, matricula, nome, codigo_curso, email) | Converte o usuário de candidato (calouro) para aluno. |
| ids_calouro (db, inscricao, matricula) | Checa o calouro na tabela usuário, tanto pela inscrição quanto pela matrícula. |
| cancela_matricula (db, id_usuario) | Cancela a matrícula do usuário. |
| define_validade_codigo_usuario (db, id_usuario, data) | Define a data de validade do código de acesso do usuário. |
| checa_codigo_acesso (db, codigo_acesso) | Checa se o código de acesso existe E está dentro da validade. |
| codigo_acesso2id_usuario (db, codigo_acesso) | Obtém o id_usuario a partir do código de acesso e informa se está na validade. |
Functions
- permissao (db, user, recurso)
-
Obtém dados da permissão de um usuário a um recurso.
Parameters:
- db Objeto conexão.
- user Identificador do usuário.
- recurso String com o id_lua do recurso.
Returns:
-
Tabela com o nível de acesso (id_nivel) ao recurso, e os demais
campos da tabela permissao.
- lista_recurso_acesso (db)
-
Obtém todas as combinações de recursos e níveis de acesso.
Parameters:
- db Objeto conexão.
Returns:
-
Iterador que retorna (id_recurso, id_nivel, recurso, nivel).
- existe_ligacao (db, user, tab, nome_campo, chave)
-
Checa se ligacao existe
Parameters:
- db Objeto conexão.
- user Identificador do usuário.
- tab String com o nome da tabela onde checar a ligação.
- nome_campo String com o nome do identificador nesta tabela.
- chave Identificador procurado.
Returns:
- Flag indicando se a ligação já existe.
- String com mensagem de erro.
- lista_alunos_configuraveis (db, user, pro, nome)
-
Lista os alunos que o usuário pode configurar.
Os alunos configuráveis são os de pós que estão ligados aos programas
nos quais o usuário tem permissão de Configurar Aluno POS.
Parameters:
- db Objeto conexão.
- user Identificador do usuário.
- pro Identificador do programa (opcional).
- nome String com parte do nome do aluno (opcional).
Returns:
-
Iterador que retorna o identificador, o nome, a matrícula,
o e-mail, o cpf, a data de saída (ou nil, se estiver ativo),
o nome do programa do aluno, seguido do identificador
e nome do orientador (que podem ser nulos).
- cargo_responsavel (db, recurso)
-
Obtém o nome do cargo do responsável pelo recurso.
Parameters:
- db Objeto conexão.
- recurso String com o nome do recurso.
Returns:
-
String com o nome do cargo do responsável.
- pode_consultar_relatorios (db, usuario, nivel)
-
Verifica se um usuário pode consultar relatórios do sistema.
O recurso consultado é o "Relatório *" (id_lua 'relatorios_*')
Parameters:
- db Objeto conexão.
- usuario Identificador de usuário (pode ser subselect).
- nivel String com o nível de acesso (opcional).
Returns:
-
Identificador e descrição do nível de acesso aos relatórios.
- lista_analisadores_inscricao (db, id_curso)
-
Lista os analisadores de inscrições de um curso.
Exclui o administrador (id==1).
Parameters:
- db Objeto conexão.
- id_curso Identificador do curso (ou subselect).
Returns:
-
Iterador de usuários (que retorna o id).
- pode_consultar_varios_cursos_progs (db, user)
-
Verifica se um usuário pode consultar mais de um curso e se pode
consultar mais de um programa.
Parameters:
- db Objeto conexão.
- user Identificador de usuário (pode ser subselect).
Returns:
- Booleano indicando se o usuário pode consultar mais de um curso.
- Booleano indicando se o usuário pode consultar mais de um programa.
- pode_consultar_producoes (db, user)
-
Verifica se um usuário pode consultar as produções do Sintético.
O teste exato é se o usuário possui alguma permissão vinculada ao
recurso de id_lua 'consultar_producao'.
Parameters:
- db Objeto conexão.
- user Identificador de usuário (pode ser subselect).
Returns:
-
Booleano indicando se o usuário pode consultar o Sintético.
- lista_contatos_alternativos (db, email_ou_ids)
-
Obtém uma lista de contatos associados ao email dado como entrada
Parameters:
- db Objeto conexão.
- email_ou_ids String com o e-mail do usuário.
Returns:
-
Iterador que retorna o id do usuário, a matrícula, o nome, o e-mail,
o tipo (descrição) e o contato do curso ou coordenação ao qual estiver
vinculado
- lista_log_contato_email (db, email_ou_ids)
-
Lista os logs de contato relativos ao e-mail dado.
Parameters:
- db Objeto de conexão.
- email_ou_ids String com o e-mail do usuário ou id_usuario's separados por vírgula.
Returns:
-
Iterador que retorna o id_usuario, o e-mail na tabela usuário,
o e-mail na tabela log e a string com o log correspondente ao e-mail dado.
- grava_log_contato (db, log, email, lids)
-
Grava o novo log de contato relativo ao email dado.
Apaga todos os logs com o e-mail e o id na lista de id's; em seguida
insere novas linhas para todos os id's, repetindo o log e o e-mail.
Parameters:
- db Objeto de conexão.
- log String com o texto do log.
- email String com o e-mail do usuário.
- lids Identificadores do usuário separados por vírgulas
- cadastra_usuario (db, matricula, dados)
-
Cadastra usuário.
Parameters:
- db Objeto conexão.
- matricula Matricula do usuário.
- dados Tabela de dados do usuario (tipo é obrigatório e não pode ser subselect).
Returns:
-
Identificador do novo usuário.
- desliga_usuario (db, user, tab, id, nome_campo)
-
Desfaz um relacionamento entre o usuario e alguma outra tabela.
Parameters:
- db Objeto conexão.
- user Identificador do usuário.
- tab String com o nome da outra tabela.
- id Identificador na "outra tabela".
- nome_campo String com o nome do campo (sem o prefixo "id_") na "outra tabela" (opcional).
- cadastra_permissao (db, user, recurso, nivel, estrangeira)
-
Atribui uma nova permissão ao usuário.
Parameters:
- db Objeto conexão.
- user Identificador do usuário.
- recurso Identificador do recurso.
- nivel Identificador do nível de acesso (ou subselect que obtenha essa informação).
- estrangeira Chave estrangeira quando o nível é curso ou programa.
Returns:
- Número de linhas afetadas (1), ou nil (em caso de erro).
- Mensagem de erro (em caso de erro).
- remove_permissao (db, user, recurso, nivel, estrangeira)
-
Remove uma permissão existente do usuário.
Parameters:
- db Objeto conexão.
- user Identificador do usuário.
- recurso Identificador do recurso.
- nivel Identificador do nível de acesso (ou subselect que obtenha essa informação).
- estrangeira Valor da chave estrangeira para os casos de níveis de acesso que o exijam (curso (3), programa (4), unidade (5), coordenacao (9), colegiado (10)).
Returns:
-
Número de linhas afetadas (0 ou 1).
- liga_usuario (db, user, tab, id, nome_campo)
-
Cria um relacionamento entre o usuario e alguma outra tabela.
No caso de ligação entre usuário e orientador, os parâmetros
devem ser usados da seguinte forma: user == id do aluno,
tab == "usuario", id == id do professor, nome_campo == "orientador".
Parameters:
- db Objeto conexão.
- user Identificador do usuário.
- tab String com o nome da outra tabela.
- id Identificador na "outra tabela".
- nome_campo String com o nome do campo (sem o prefixo "id_") na "outra tabela" (opcional).
Returns:
-
Número de linhas afetadas (0 ou 1).
- liga_orientador (db, user, orientador)
-
Associa (ou desassocia) um aluno a seu orientador.
Parameters:
- db Objeto conexão.
- user Número com o identificador do usuário.
- orientador Número com o identificador do orientador (ou (NULL) para desassociar).
Returns:
-
Número de linhas afetadas (0 ou 1).
- liga_usuario_centro (db, user, centro)
-
Cria uma ligação entre um usuário e um centro.
Parameters:
- db Objeto conexão.
- user Número com o identificador do usuário.
- centro Identificador do centro. (identificador pode ser um sub-select)
Returns:
- Número de linhas inseridas.
- Número com o identificador do centro.
- liga_usuario_programa (db, user, programa)
-
Cria uma ligação entre um usuário e um programa.
Parameters:
- db Objeto conexão.
- user Número com o identificador do usuário.
- programa Identificador do programa. (identificador pode ser um sub-select)
Returns:
- Número de linhas inseridas.
- Número com o identificador do programa.
- liga_usuario_coordenacao (db, user, coordenacao)
-
Cria uma ligação entre um usuário e uma coordenação.
Parameters:
- db Objeto conexão.
- user Número com o identificador do usuário.
- coordenacao Identificador da coordenação. (identificador pode ser um sub-select)
Returns:
- Número de linhas inseridas.
- Número com o identificador da coordenação.
- liga_usuario_curso (db, user, curso, extra)
-
Cria uma ligação entre um usuário e um curso.
Parameters:
- db Objeto conexão.
- user Número com o identificador do usuário.
- curso Identificador do curso. (identificador pode ser um sub-select)
- extra Tabela contendo colunas extras a serem preenchidas.
Returns:
- Número de linhas inseridas.
- Número com o identificador do curso.
- liga_usuario_colegiado (db, user, colegiado, extra)
-
Cria uma ligação entre um usuário e um colegiado.
Parameters:
- db Objeto conexão.
- user Número com o identificador do usuário.
- colegiado Identificador do colegiado. (identificador pode ser um sub-select)
- extra Tabela contendo colunas extras a serem preenchidas.
Returns:
- Número de linhas inseridas.
- Número com o identificador do colegiado.
- liga_usuario_unidade (db, user, unidade, extra)
-
Cria uma ligação entre um usuário e uma unidade.
Parameters:
- db Objeto conexão.
- user Número com o identificador do usuário.
- unidade Identificador da unidade. (identificador pode ser um sub-select)
- extra Tabela contendo colunas extras a serem preenchidas.
Returns:
- Número de linhas inseridas.
- Número com o identificador da unidade.
- liga_aluno_area_concentracao (db, user, area_concentracao)
-
Cria uma ligação entre um aluno e uma área de concentração.
Parameters:
- db Objeto conexão.
- user Número com o identificador do usuário.
- area_concentracao Identificador da área de concentração. (identificador pode ser um sub-select)
Returns:
- Número de linhas inseridas.
- Número com o identificador da área de concentração.
- atualiza_cadastro (db, usuario)
-
Atualiza os dados do usuário a partir do que está no SAU.
Parameters:
- db Objeto conexão.
- usuario Objeto usuário com dados do SAU.
Returns:
- Boolean indicando se os dados estão iguais.
- String com mensagem sobre o que está diferente.
- atualiza_data_defesa (db, id_aluno, data)
-
Atualiza a data de defesa do aluno de pós.
Parameters:
- db Objeto conexão.
- id_aluno identificador do usuário que será atualizado.
- data data de defesa do aluno.
Returns:
-
String com número de linhas afetadas pelo update (1).
- anula_data_saida (db, id_usuario)
-
Apaga a data de saída do usuário.
Parameters:
- db Objeto conexão.
- id_usuario Identificador do usuário (aceita subselect).
Returns:
-
String com número de linhas afetadas pelo update (1).
- id_do_tipo_usuario (tipo_usuario)
-
Monta subselect que descobre o identificador de um tipo de usuário.
Parameters:
- tipo_usuario String com o tipo de usuário.
Returns:
-
String com consulta SQL que obtém o identificador do tipo.
- candidato2aluno (db, inscricao, matricula, nome, codigo_curso, email)
-
Converte o usuário de candidato (calouro) para aluno.
Parameters:
- db Objeto conexão.
- inscricao String com o número de inscrição do calouro.
- matricula String com o número de matrícula que o calouro ganhou.
- nome String com o nome.
- codigo_curso String com o código do curso (curso+habilitação) no SAU.
- email String com o e-mail do candidato.
Returns:
- String com o Identificador do usuário ou nil, em caso de erro.
- String com a mensagem de erro, se houver.
- ids_calouro (db, inscricao, matricula)
-
Checa o calouro na tabela usuário, tanto pela inscrição quanto pela matrícula.
Parameters:
- db Objeto conexão.
- inscricao String com o número de inscrição do calouro.
- matricula String com o número de matrícula que o calouro ganhou.
Returns:
- String com o id_usuario da inscrição.
- String com o id_usuario da matrícula.
- cancela_matricula (db, id_usuario)
-
Cancela a matrícula do usuário.
Parameters:
- db Objeto conexão.
- id_usuario Identificador do usuário (aceita subselect).
Returns:
-
Número de linhas (na tabela usuario) afetadas.
- define_validade_codigo_usuario (db, id_usuario, data)
-
Define a data de validade do código de acesso do usuário.
Parameters:
- db Objeto de conexão com o banco.
- id_usuario Identificador do usuário (aceita subselect).
- data String com a data do último dia em que o código estará válido.
Returns:
-
Número de linhas afetadas.
- checa_codigo_acesso (db, codigo_acesso)
-
Checa se o código de acesso existe E está dentro da validade.
Parameters:
- db Objeto de conexão com o banco.
- codigo_acesso String com um suposto código de acesso.
Returns:
-
Booleano indicando se o código de acesso existe.
- codigo_acesso2id_usuario (db, codigo_acesso)
-
Obtém o id_usuario a partir do código de acesso e informa se está na
validade.
Parameters:
- db Objeto de conexão com o banco.
- codigo_acesso String com um suposto código de acesso.
Returns:
- Identificador do usuário ou nil, se não encontrar
- Booleano indicando se o código está na validade ou não.