예제 #1
0
        private async void ModificarUsuario()
        {
            var usuarioLogeado = context.Usuarios.Single(u => u.Nombre == Properties.Settings.Default.usuario);

            // El usuario Super Administrador no se puede borrar
            if (UsuarioSeleccionado.TipoId == 1 && usuarioLogeado.TipoId != 1)
            {
                await DialogHost.Show(new MensajeInformacion()
                {
                    Mensaje = "No se puede modificar ese usuario."
                }, "RootDialog");
            }

            // Si el usuario logeado o tiene la gestión de permisos y el usuario seleccionado sí, entonces no se puede modificar
            else if (!usuarioLogeado.TipoUsuario.Permisos.Select(p => p.Tab).Contains(Tab.Permisos) &&
                     UsuarioSeleccionado.TipoUsuario.Permisos.Select(p => p.Tab).Contains(Tab.Permisos))
            {
                await DialogHost.Show(new MensajeInformacion()
                {
                    Mensaje = "No se puede modificar ese usuario ya que no se tiene permisos suficientes."
                }, "RootDialog");
            }

            // Se procede a modificar
            else
            {
                var formUsuario = new FormUsuario(UsuarioSeleccionado);
                if ((bool)await DialogHost.Show(formUsuario, "RootDialog"))
                {
                    var formUsuarioViewModel = formUsuario.DataContext as FormUsuarioViewModel;

                    var hashContrasena = ContrasenaHashing.ObtenerHashSHA256(
                        ContrasenaHashing.SecureStringToString(formUsuarioViewModel.Contrasena)
                        );
                    UsuarioSeleccionado.Nombre     = formUsuarioViewModel.Nombre;
                    UsuarioSeleccionado.Email      = formUsuarioViewModel.Email;
                    UsuarioSeleccionado.TipoId     = formUsuarioViewModel.TipoUsuarioSeleccionado.TipoUsuarioId;
                    UsuarioSeleccionado.Contrasena = hashContrasena;
                    UsuarioSeleccionado.Baneado    = formUsuarioViewModel.Baneado;
                    context.SaveChanges();
                }
            }
        }
예제 #2
0
        private async void AnadirUsuario()
        {
            var formUsuario = new FormUsuario();

            if ((bool)await DialogHost.Show(formUsuario, "RootDialog"))
            {
                var formUsuarioViewModel = formUsuario.DataContext as FormUsuarioViewModel;

                var hashContrasena = ContrasenaHashing.ObtenerHashSHA256(
                    ContrasenaHashing.SecureStringToString(formUsuarioViewModel.Contrasena)
                    );

                context.Usuarios.Add(new Usuario()
                {
                    Nombre     = formUsuarioViewModel.Nombre,
                    Email      = formUsuarioViewModel.Email,
                    TipoId     = formUsuarioViewModel.TipoUsuarioSeleccionado.TipoUsuarioId,
                    Contrasena = hashContrasena,
                    Baneado    = formUsuarioViewModel.Baneado
                });
                context.SaveChanges();
                CargarUsuarios();
            }
        }