Skip to content

Commit c5170ef

Browse files
committed
docs(ldap): documentação do que faltava
1 parent 5932408 commit c5170ef

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

src/ldap/cadastrar.rs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//! Módulo com funções relacionadas ao cadastro de um aluno no sistema já tendo
2+
//! o username.
13
use crate::cadastro_aluno::DadosParaCadastro;
24
use crate::configuracao::ConfiguracaoUsuario;
35
use crate::ldap::ErroLdap;
@@ -8,11 +10,19 @@ use deunicode::deunicode;
810
use ldap3::{Ldap, Mod, Scope, SearchEntry, dn_escape};
911
use secrecy::ExposeSecret;
1012

11-
// TODO: documentar que é possível que uma race condition aconteça caso dois
12-
// usuários disputem um mesmo username ao mesmo tempo, mas nesse caso, o LDAP
13-
// retornará um erro, o que não é algo crítico, só seria necessário que o
14-
// usuário tente novamente. Como é um caso extremamente excepcional, não acho
15-
// que isso seja um problema.
13+
// TODO: embora o LDAP dê erro se tiver dois alunos com o msm nome, talvez n de
14+
// se tiver um aluno e professor, por exemplo. Isso deve ser verificado após a
15+
// adição e ela deve ser cancelada caso aconteça. Isso deve ser muito raro de
16+
// ocorrer, pois precisaria da adição simultanea, ou seja, provavelmente nunca
17+
// vai acontecer. Mas é bom ter algo para esse caso.
18+
/// Cadastra um usuário com os dados fornecidos, a partir da configuração base
19+
/// fornecida.
20+
///
21+
/// # Errors
22+
///
23+
/// - conflito de username, ou seja, já existir um aluno com o mesmo username;
24+
/// - erro de conexão do LDAP; ou
25+
/// - [DadosParaCadastro] não sanitizados.
1626
pub async fn cadastrar_usuario(
1727
username: String,
1828
dados: &DadosParaCadastro,
@@ -27,6 +37,7 @@ pub async fn cadastrar_usuario(
2737
cfg: &ConfiguracaoUsuario,
2838
ldap: &mut Ldap,
2939
) -> Result<(), ErroLdap> {
40+
// TODO: remover coisas do samba
3041
let (samba_uid, samba_rid) = samba_ids(ldap).await?;
3142

3243
let dn = format!(

src/ldap/consulta.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//! Módulo para consulta de um username disponível para um usuário novo no LDAP,
2+
//! além de verificar se um usuário com a DRE já existe.
13
use crate::ldap::ErroLdap;
24
use crate::ldap::utils::rodar_ldap;
35
use crate::utils::nome::Nome;
@@ -7,7 +9,7 @@ use ldap3::{Ldap, Scope, SearchEntry, ldap_escape};
79
#[derive(Debug)]
810
pub enum Consulta {
911
/// O cadastro pode ser feito com sucesso e a string representa o
10-
/// uid/sername do usuário que deve ser criado.
12+
/// uid/username do usuário que deve ser criado.
1113
CadastroDisponivel(String),
1214
/// O cadastro já existia antes. A string representa o username/uid do
1315
/// usuário **que já estava cadastrado**.

src/ldap/error.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
//! Tipos de erro do módulo de contato com o LDAP.
12
use crate::utils::nome::NomeErro;
23
use ldap3::LdapError;
34
use thiserror::Error;
@@ -38,4 +39,6 @@ pub enum ErroLdap {
3839
ErroSamba,
3940
}
4041

42+
/// Variação do [std::result::Result] para o [ErroLdap].
4143
pub type Result<T> = std::result::Result<T, ErroLdap>;
44+

0 commit comments

Comments
 (0)