Exemple #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!User.Identity.IsAuthenticated)
        {
            FormsAuthentication.SignOut();
            return;
        }

        ErrMessage_Span.InnerHtml        = "";
        ErrMessage_Span.Style["display"] = "none";

        Message_Span.InnerHtml        = "";
        Message_Span.Style["display"] = "none";

        Master.Page.Title = "Control de acceso - Asociación entre compañías y usuarios";

        if (!Page.IsPostBack)
        {
            HtmlGenericControl MyHtmlH2;

            MyHtmlH2 = (HtmlGenericControl)(Master.FindControl("PageTitle_TableCell"));
            if (MyHtmlH2 != null)
            {
                MyHtmlH2.InnerHtml = "Control de acceso - Asociación entre compañías y usuarios";
            }

            dbContabUsersEntities usersContext = new dbContabUsersEntities();
            List <Compania>       companias    = usersContext.Companias.OrderBy(c => c.NombreCorto).ToList();

            Companias_ListBox.DataSource = companias;

            Companias_ListBox.DataTextField  = "NombreCorto";
            Companias_ListBox.DataValueField = "Numero";

            Companias_ListBox.DataBind();

            Usuarios_ListBox.DataSource = Membership.GetAllUsers();
            Usuarios_ListBox.DataBind();
        }
        else
        {
        }
    }
Exemple #2
0
    protected void AsociarCompaniasAUsurioSeleccionado_Button_Click(object sender, EventArgs e)
    {
        // asociamos uno o varios roles seleccionados a un usuario seleccionado

        // debe haber un usuario (solo uno) seleccionado

        // nos aseguramos que se haya seleccionado solo un usuario
        Int16 nItemsSelectedCount = 0;

        foreach (ListItem MyItem in Usuarios_ListBox.Items)
        {
            if (MyItem.Selected)
            {
                nItemsSelectedCount++;
            }
        }

        switch (nItemsSelectedCount)
        {
        case 0:
            ErrMessage_Span.InnerHtml        = "Ud. debe seleccionar un usuario de la lista de usuarios.";
            ErrMessage_Span.Style["display"] = "block";

            return;

        case 1:
            break;

        default:
            ErrMessage_Span.InnerHtml        = "Ud. debe seleccionar SOLO un usuario de la lista de usuarios.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // nótese que puede no haber compañías seleccionadas, pues se puede querer quitar las que estaban seleccionadas a un usuario
        nItemsSelectedCount = 0;

        foreach (ListItem MyItem in Companias_ListBox.Items)
        {
            if (MyItem.Selected)
            {
                nItemsSelectedCount++;
            }
        }


        //if (nItemsSelectedCount == 0)
        //{
        //    ErrMessage_Span.InnerHtml = "Ud. debe seleccionar al menos una compañía de la lista de compañías.";
        //    ErrMessage_Span.Style["display"] = "block";

        //    return;
        //}

        // primero eliminamos las compañías que ahora corresponan al usuario
        dbContabUsersEntities usersContext = new dbContabUsersEntities();

        var userID = usersContext.aspnet_Users.Where(u => u.UserName == Usuarios_ListBox.SelectedValue).FirstOrDefault().UserId;

        usersContext.ExecuteStoreCommand("Delete From CompaniasYUsuarios Where Usuario = @usuario",
                                         new SqlParameter {
            ParameterName = "usuario", Value = userID
        });

        CompaniasYUsuario companiaYUsuario;

        foreach (ListItem compania in Companias_ListBox.Items)
        {
            if (!compania.Selected)
            {
                continue;
            }

            companiaYUsuario = new CompaniasYUsuario();

            companiaYUsuario.Usuario  = userID;
            companiaYUsuario.Compania = Convert.ToInt32(compania.Value);

            usersContext.CompaniasYUsuarios.AddObject(companiaYUsuario);
        }

        usersContext.SaveChanges();

        Message_Span.InnerHtml = "Ok, las compañías seleccionadas <b>(" + Companias_ListBox.GetSelectedIndices().Count().ToString() +
                                 ")</b> han sido asociadas al usuario " + Usuarios_ListBox.SelectedValue + ".<br />" +
                                 "El usuario " + Usuarios_ListBox.SelectedValue + " solo tendrá acceso a estas compañías";
        Message_Span.Style["display"] = "block";
    }