private void Button5_Click(object sender, EventArgs e)
        {
            //validar datos de registro fnValidarNuevoUsername
            if (textboxContraseña.Visible && textboxUsuario.Visible && !verificarTodosLosCamposNoVacios())
            {
                MessageBox.Show("Parece que hay campos que no estan completos");
                return;
            }

            if (textboxContraseña.Visible && textboxUsuario.Visible && !UsuarioDAO.validarNuevoUsername(textboxUsuario.Text))
            {
                MessageBox.Show("El nombre de usuario ya existe");
                foreach (TextBox txb in this.Controls.OfType <TextBox>())
                {
                    txb.Text = "";
                }

                return;
            }

            if (!DBConnection.esRolHabilitado((string)comboBoxTipoDeUsuario.SelectedItem))
            {
                MessageBox.Show("Rol deshabilitado. Ponerse en contacto con administrador");
                return;
            }

            Usuario nuevo_usuario;

            if (deDondeViene != 4)
            {
                nuevo_usuario = new Usuario(textboxUsuario.Text, textboxContraseña.Text);
            }
            else
            {
                nuevo_usuario = new Usuario(comboBox1.SelectedItem.ToString());
                UsuarioDAO.cargarRolesUsuario(nuevo_usuario);
            }


            if ((string)comboBoxTipoDeUsuario.SelectedItem == "Cliente")
            {
                if (nuevo_usuario.roles.Any(rol => DBConnection.isCliente(rol)))
                {
                    MessageBox.Show("Ya tienes asociado este rol");
                    return;
                }
                ;
                if (deDondeViene == 4 && ClienteDAO.asignarCliente(nuevo_usuario) == 0)
                {
                    MessageBox.Show("rol cliente asignado a usuario correctamente");
                    UsuarioDAO.cargarRolesUsuario(usuarioActivo);
                    return;
                }
                RegistroDeCliente registroCliente = new RegistroDeCliente(nuevo_usuario, usuarioActivo, deDondeViene);
                registroCliente.Show();
                this.Hide();
            }
            else if ((string)comboBoxTipoDeUsuario.SelectedItem == "Proveedor")
            {
                if (nuevo_usuario.roles.Any(rol => DBConnection.isProveedor(rol)))
                {
                    MessageBox.Show("Ya tienes asociado este rol");
                    return;
                }
                if (deDondeViene == 4 && ProveedorDAO.asignarProveedor(nuevo_usuario) == 0)
                {
                    MessageBox.Show("rol proveedor asignado a usuario correctamente");
                    UsuarioDAO.cargarRolesUsuario(usuarioActivo);
                    return;
                }
                RegistroDeProveedores registroProveedor = new RegistroDeProveedores(usuarioActivo, nuevo_usuario, deDondeViene);
                registroProveedor.Show();
                this.Hide();
            }
        }
Example #2
0
        private void MenuAdministrador_Load(object sender, EventArgs e)
        {
            UsuarioDAO.cargarRolesUsuario(usuario);
            foreach (Button button in this.Controls.OfType <Button>())
            {
                button.Visible = false;
            }
            label_credito.Visible = false;


            var texto_roles = new System.Text.StringBuilder();

            if (usuario.roles.Count == 1)
            {
                texto_roles.AppendLine("Tiene activado el rol: ");
            }
            else
            {
                texto_roles.AppendLine("Tiene activado los roles: ");
            }


            // Cargamos los botones con funcionalidades segun rol
            foreach (Rol rol in usuario.roles)
            {
                texto_roles.AppendLine(" " + rol.nombre);
                DBConnection.asociar_roles_x_funciones(rol);
                if (rol.funcionalidades.Exists(f => f.nombre.Contains("Comprar")))
                {
                    label_credito.Visible = true;
                    buttonCupones.Visible = true;
                    label_credito.Text    = "Su crédito es: \n" + ClienteDAO.montoUsuario(usuario).ToString();
                }

                if (DBConnection.isAdmin(rol))
                {
                    button4.Visible  = true;
                    button12.Visible = true;
                    button13.Visible = true;
                }


                if (DBConnection.isCliente(rol) && !ClienteDAO.esClienteHabilitado(usuario))
                {
                    button9.Enabled  = false;
                    button10.Enabled = false;
                    MessageBox.Show("Tus funcionalidades como cliente estan restringidas. Si es un error, ponerse en contacto con un administrador");
                }

                if (DBConnection.isProveedor(rol) && !ProveedorDAO.esProveedorHabilitado(usuario))
                {
                    button5.Enabled = false;
                    MessageBox.Show("Tus funcionalidades como proveedor estan restringidas. Si es un error, ponerse en contacto con un administrador");
                }

                foreach (Funcionalidad f in rol.funcionalidades)
                {
                    foreach (Button button in this.Controls.OfType <Button>())
                    { //Si hay alguna funcionalidad que coincide con un buton
                        button.Name = button.Text;
                        if (button.Name == f.nombre)
                        {
                            button.Visible = true;
                        }
                    }
                }
            }

            //Funciones disponibles independientemente de los roles
            btn_cerrarsesion.Visible = true;
            label3.Text = "Su usuario es: \n" + usuario.username;

            labelroles.Text = texto_roles.ToString();
            //cambiar contrasenia y agregar roles
            button8.Visible = true;
        }