Ejemplo n.º 1
0
        /// <summary>
        /// Tomamos un Usuario, cambiamos la Persona asociada al mismo, algunas propiedades escalares, eliminamos un perfil
        /// y agregamos otro. Tambien modificamos la contraseña
        /// Luego de probar este metodo se puede acceder a la app principal y ver que pasa, obviamente ingresando con la
        /// nueva password
        /// [[IMPORTANTE]]
        /// Antes de probar este metodo, asegurarse de haber llamado a CrearUsuarioCompleto()
        /// </summary>
        public static void CambiarCompleto()
        {
            SecurityServices serv = new SecurityServices();
              Usuario user;

              user = serv.GetUsuarioFromLogin("lsimpson");

              var perfiles = from p in DB.Contexto.Perfiles where p.ID == 4 select p;

              user.Perfiles.RemoveWhere(perf => perf.ID == 2);
              user.Perfiles.Add(perfiles.Single());

              Persona nuevaPersona;

              //  primero chequeamos que la Persona no exista, si no existe la creamos
              nuevaPersona = (from per in DB.Contexto.Personas where per.Apellido == "Olsen" && per.Nombre == "Mona Penelope"
                      select per).SingleOrDefault();

              if (nuevaPersona == null)
            nuevaPersona = CrearPersonaInternal("Mona Penelope", "Olsen", "*****@*****.**", 78);

              user.Persona = nuevaPersona;

              user.EnforceExpiration = true;
              user.FechaExpiracionPassword = DateTime.Now.AddDays(120);

              serv.UpdateUsuario(user, "123-lisa");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="cbPerfiles">Valor option del elemento actualmente seleccionado en el dropdown</param>
        /// <param name="login">Argumento adicional que se obtiene desde el modelo y se vuelve a pasar al controlador
        /// Otra posibilidad seria incluirlo en un campo hidden
        /// </param>
        /// <returns></returns>
        public ActionResult SelectPerfil(string cbPerfiles, string login)
        {
            SecurityServices serv = new SecurityServices();
              Usuario user = serv.GetUsuarioFromLogin(login);
              Perfil perfilElegido;
              Sesion newSesion;

              perfilElegido = user.Perfiles.Where(pf => pf.Nombre == cbPerfiles).Single();

              Session["SESION_USER"] = newSesion = serv.CrearSesion(user, perfilElegido);
              return View("LoginOK_v2", newSesion);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Tomamos un Usuario, borramos los perfiles que tiene y agregamos los que no tenia
        /// Visualizar en SQL Profiler: se veran las dos instrucciones delete y los 2 insert en Usuarios_Perfiles
        /// [[IMPORTANTE]]
        /// Antes de probar este metodo, asegurarse de haber llamado a CrearUsuarioCompleto() ya que ahi es donde
        /// colocamos los perfiles 
        /// </summary>
        public static void CambiarSoloPerfiles()
        {
            SecurityServices serv = new SecurityServices();
              Usuario user;

              //  Seguramente no se hace un viaje a la DB, este objeto ya esta en memoria local...
              user = serv.GetUsuarioFromLogin("lsimpson");

              var perfiles = from p in DB.Contexto.Perfiles where p.ID == 1 || p.ID == 4 select p;

              user.Perfiles.Clear();
              user.Perfiles.UnionWith(perfiles);

              serv.UpdateUsuario(user);
        }