コード例 #1
0
 public DocumentosServicio(IPushNewsUnitOfWork db, Aplicacion aplicacion) : base(db)
 {
     this.aplicacion = aplicacion;
     if (aplicacion != null)
     {
         RestrictFilter = d => d.AplicacionID == aplicacion.AplicacionID;
     }
 }
コード例 #2
0
 public TerminalesServicio(IPushNewsUnitOfWork db, Aplicacion aplicacion)
     : base(db)
 {
     this.aplicacion = aplicacion;
     if (this.aplicacion != null)
     {
         RestrictFilter = t => t.AplicacionID == aplicacion.AplicacionID;
     }
 }
コード例 #3
0
 public LocalizacionesServicio(IPushNewsUnitOfWork db, Aplicacion aplicacion)
     : base(db)
 {
     this.aplicacion = aplicacion;
     if (this.aplicacion != null)
     {
         RestrictFilter = c => c.AplicacionID == aplicacion.AplicacionID;
     }
 }
コード例 #4
0
 public CategoriasServicio(IPushNewsUnitOfWork db, Aplicacion aplicacion)
     : base(db)
 {
     this.aplicacion        = aplicacion;
     CamposEvitarDuplicados = new[] { "Nombre" };
     if (this.aplicacion != null)
     {
         RestrictFilter = c => c.AplicacionID == aplicacion.AplicacionID;
     }
 }
コード例 #5
0
        public ServiciosFactoria(IPushNewsUnitOfWork dbContext, Aplicacion aplicacion)
        {
            if (dbContext == null)
            {
                throw new ArgumentNullException(paramName: "dbContext");
            }

            db = dbContext;
            this.aplicacion = aplicacion;
        }
コード例 #6
0
        public static string Absoluta(string relativa, Aplicacion aplicacion)
        {
            IPushNewsUnitOfWork uow = HttpContext.Current.Request.GetOwinContext().Get <IPushNewsUnitOfWork>();
            var servicios           = new ServiciosFactoria(uow, aplicacion);
            IParametrosServicio srv = servicios.ParametrosServicio();
            Parametro           paramRaizDocumentos = srv.GetByName(nombreParametro: "RaizDocumentos");
            string rutaRaiz     = paramRaizDocumentos.Valor;
            string rutaAbsoluta = System.IO.Path.Combine(rutaRaiz, relativa);

            return(rutaAbsoluta);
        }
コード例 #7
0
        public static ApplicationUserManager Create(IdentityFactoryOptions <ApplicationUserManager> options, IOwinContext context)
        {
            IPushNewsUnitOfWork pushNewsModel = context.Get <IPushNewsUnitOfWork>();
            var manager = new ApplicationUserManager(new UserStore(pushNewsModel));

            // Configure la lógica de validación de nombres de usuario
            manager.UserValidator = new UserValidator <Usuario, long>(manager)
            {
                AllowOnlyAlphanumericUserNames = false,
                RequireUniqueEmail             = false,
            };

            // Configure la lógica de validación de contraseñas
            manager.PasswordValidator = new PasswordValidator
            {
                RequiredLength = 6,
                //RequireNonLetterOrDigit = true,
                //RequireDigit = true,
                //RequireLowercase = true,
                //RequireUppercase = true,
            };

            // Configurar valores predeterminados para bloqueo de usuario
            manager.UserLockoutEnabledByDefault = true;
            //manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
            //manager.MaxFailedAccessAttemptsBeforeLockout = 5;

            // Registre proveedores de autenticación en dos fases. Esta aplicación usa los pasos Teléfono y Correo electrónico para recibir un código para comprobar el usuario
            // Puede escribir su propio proveedor y conectarlo aquí.
            manager.RegisterTwoFactorProvider(
                twoFactorProvider: "Código telefónico",
                provider: new PhoneNumberTokenProvider <Usuario, long>
            {
                MessageFormat = "Su código de seguridad es {0}"
            });
            manager.RegisterTwoFactorProvider(
                twoFactorProvider: "Código de correo electrónico",
                provider: new EmailTokenProvider <Usuario, long>
            {
                Subject    = "Código de seguridad",
                BodyFormat = "Su código de seguridad es {0}"
            });
            manager.EmailService = new EmailService();
            manager.SmsService   = new SmsService();

            IDataProtectionProvider dataProtectionProvider = options.DataProtectionProvider;

            if (dataProtectionProvider != null)
            {
                manager.UserTokenProvider = new DataProtectorTokenProvider <Usuario, long>(
                    dataProtectionProvider.Create(purposes: new string[] { "ASP.NET Identity" }));
            }
            return(manager);
        }
コード例 #8
0
        public static IEnumerable <ElementoMenu> GenerarMenu(long usuarioID, Aplicacion aplicacion)
        {
            IPushNewsUnitOfWork uow      = HttpContext.Current.Request.GetOwinContext().Get <IPushNewsUnitOfWork>();
            var servicios                = new ServiciosFactoria(uow, aplicacion);
            IAplicacionesServicio appSrv = servicios.AplicacionesServicio();
            Aplicacion            app    = appSrv.GetSingle(a => a.AplicacionID == aplicacion.AplicacionID);
            IUsuariosServicio     srv    = servicios.UsuariosServicio();

            // Flags para ocultar categorías, teléfonos y localizaciones en el menú.
            // Los tres elementos se mostrarán siempre si el usuario es administrador, independientemente de
            // si tiene o no tiene categorías asignadas.
            // Si el usuario no es administrador, los tres elementos se mostrarán si no tiene ninguna
            // categoría asignada en la aplicación acutal. Si tiene al menos una categoría asignada en la
            // aplicación acutal, los tres elementos se ocultan.
            IUsuariosServicio usuariosServicio = servicios.UsuariosServicio();
            Usuario           usuario          = usuariosServicio.GetSingle(u => u.UsuarioID == usuarioID);
            bool usuarioEsAdmin        = usuario.Rol.Nombre == "Administrador";
            bool ocultarCategorias     = false;
            bool ocultarTelefonos      = false;
            bool ocultarLocalizaciones = false;

            IEnumerable <Dominio.Enums.AplicacionCaracteristica> caracteristicas = app.Caracteristicas
                                                                                   .Where(c => c.Activo)
                                                                                   .Select(c => (Dominio.Enums.AplicacionCaracteristica)c.AplicacionCaracteristicaID);
            List <ElementoMenu> menuCompleto = Elementos(caracteristicas, ocultarCategorias, ocultarTelefonos, ocultarLocalizaciones);
            var menuFiltrado = new List <ElementoMenu>();

            if (usuarioEsAdmin)
            {
                menuFiltrado = menuCompleto;
            }
            else
            {
                foreach (var eActual in menuCompleto)
                {
                    if (eActual.Roles.Any(r => r.Length == 0 || usuario.Rol.Nombre == r))
                    {
                        if (eActual.TieneHijos)
                        {
                            QuitarHijos(eActual, new[] { "Editor" });
                        }
                        menuFiltrado.Add(eActual);
                    }
                }
            }


            return(menuFiltrado);
        }
コード例 #9
0
        public ComunicacionesAccesosServicio(IPushNewsUnitOfWork db, Aplicacion aplicacion)
            : base(db)
        {
            this.aplicacion = aplicacion;
            if (this.aplicacion != null)
            {
                RestrictFilter = ca => ca.Terminal.AplicacionID == aplicacion.AplicacionID;
            }

            IParametrosServicio pSrv = new ParametrosServicio(db);
            Parametro           paramPeriodoNoConteo = pSrv.GetByName("PeriodoNoConteoMinutos");
            int minutosNoConteo = int.Parse(paramPeriodoNoConteo?.Valor ?? "1");

            periodoNoConteo = new TimeSpan(0, minutosNoConteo, 0);
        }
コード例 #10
0
 public RolesServicio(IPushNewsUnitOfWork db)
     : base(db)
 {
 }
コード例 #11
0
 public ParametrosServicio(IPushNewsUnitOfWork db /*, Aplicacion aplicacion*/)
     : base(db)
 {
     CamposEvitarDuplicados = new[] { "Nombre" };
 }
コード例 #12
0
 public UserStore(IPushNewsUnitOfWork context)
 {
     this.context = context;
 }
コード例 #13
0
 public AplicacionesCaracteristicasServicio(IPushNewsUnitOfWork db) : base(db)
 {
     CamposEvitarDuplicados = new [] { "Nombre" };
 }
コード例 #14
0
 public AplicacionesServicio(IPushNewsUnitOfWork db)
     : base(db)
 {
     // Campos que no pueden repetirse entre diferentes reigstros.
     CamposEvitarDuplicados = new[] { "Nombre", "SubDominio" };
 }
コード例 #15
0
 public UsuariosServicio(IPushNewsUnitOfWork db)
     : base(db)
 {
 }
コード例 #16
0
 protected BaseServicio(IPushNewsUnitOfWork unitOfWork)
 {
     this.unitOfWork = unitOfWork;
 }