using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LdapLoginLib.Models
{
public class UserInfo
{
#region Propiedades
///
/// {Uid} Uid - Nombre de usuario o Login
///
///
/// xxx
///
public string? Usuario { get; set; }
///
/// {EmployeeNumber} Documento de identidad.
///
///
/// Cadena de caracteres, sólo números y letras en
/// maýuscula, sin espacios, sin ceros al inicio.Con
/// la consolidación de identidades, este atributo
/// queda ÚNICO en el directorio a nivel nacional.
/// Puede contener un guion y un dígito
/// consecutivo que asociado en las cuentas hijas
/// de un usuario. La cuenta principal no tendrá este sufijo
///
public string? NumeroDocumento { get; set; }
///
/// {Cn} Nombres y apellidos completos
///
///
/// Cadena de caracteres, cada palabra con mayúscula inicial
///
public string? NombreCompleto { get; set; }
///
/// {GivenName} Nombres completos
///
///
/// Cadena de caracteres, cada palabra con mayúscula inicial
///
public string? Nombres { get; set; }
///
/// {Sn} Apellidos completos
///
///
/// Cadena de caracteres, cada palabra con mayúscula inicia
///
public string? Apellidos { get; set; }
///
/// {Mail} Dirección de correo UNAL
///
///
/// Cadena de caracteres en minúscula, uid+"@unal.edu.co"
///
public string? Correo { get; set; }
///
/// {MailAlternateAddress} Correo alterno
///
public string? CorreoAlt { get; set; }
///
/// {O} Sede
///
///
/// Cadena de caracteres, según tabla 11.1
///
public string? Sede { get; set; }
///
/// {inetUserStatus} Estado identidad
///
///
/// Active / Inactive, uso propio del directorio.
/// A diferencia del campo nsAccountLock este
/// campo es informativo.Anteriormente usado
/// en la suite de servicio de correo Sun JES.
///
public string? Estado { get; set; }
///
/// {IsActive}
/// Indica el estado, si esta activo o inactivo
///
public bool Activo { get; set; }
#endregion
public static explicit operator UserInfo(LdapUserInfo userInfo)
{
//if (userInfo == null) throw new Exception();
return new UserInfo
{
Usuario = userInfo.Uid,
NumeroDocumento = userInfo.EmployeeNumber,
NombreCompleto = userInfo.Cn,
Nombres = userInfo.GivenName,
Apellidos = userInfo.Sn,
Correo = userInfo.Mail,
CorreoAlt = userInfo.MailAlternateAddress,
Sede = userInfo.O,
Estado = userInfo.InetUserStatus,
Activo = userInfo.IsActive ?? false
};
}
}
/********************************************
* *
* Discared / not in used *
* *
********************************************
///
/// {EmployeeType} Tipos de cuentas en LDAP
///
///
/// Ver tabla 4.3, pagina 12 - Lineamientos Identidad
///
//public string? TipoUsuario { get; set; }
///
/// {EmployeeNumber} xxxxxxxxx
///
///
/// xxx
///
// Definidos por LDAP
// No encontrado
///
/// Numero unico identificacion personal
///
//public string? NUIP { get; set; } = null;
********************************************
* *
********************************************/
}