예제 #1
0
        protected void rptrMenus_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                int      userID        = getCurrentUserID();
                int      intID         = (int)DataBinder.Eval(e.Item.DataItem, "MenuID");
                Repeater rptrMenuLinks = (Repeater)e.Item.FindControl("rptrMenuLinks");
                using (ERP_CMSEntities cntx = new ERP_CMSEntities())
                {
                    bool isAdmin = PortalUtilities.isUserAdmin(cntx, userID);
                    if (isAdmin)
                    {
                        Label lblID        = (Label)e.Item.FindControl("lblID");
                        int   menuID       = Convert.ToInt32(lblID.Text.ToString());
                        var   objMenuLinks = (from ml in cntx.MenuLinks
                                              where ml.MenuID == menuID
                                              orderby ml.DisplayOrder
                                              select new { ml.MenuLinkText, ml.PageURL }).ToList();

                        rptrMenuLinks.DataSource = objMenuLinks;
                        rptrMenuLinks.DataBind();
                    }
                    else
                    {
                        var objMenuLinks = (from el in cntx.UserLinks
                                            join usr in cntx.Users on el.UserID equals usr.UserID
                                            join ml in cntx.MenuLinks on el.MenuLinkID equals ml.MenuLinkID
                                            join m in cntx.Menus on ml.MenuID equals m.MenuID
                                            where usr.UserID == userID & m.MenuID == intID
                                            select new { ml.MenuLinkText, ml.PageURL, ml.DisplayOrder }).Distinct().OrderBy(f => f.DisplayOrder).ToList();
                        rptrMenuLinks.DataSource = objMenuLinks;
                        rptrMenuLinks.DataBind();
                    }
                }
            }
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //if (!string.IsNullOrEmpty(Session["isAdmin"] as string))
            //{
            //    string isAdmin = Session["isAdmin"].ToString();
            //    if (!isAdmin.Equals("True"))
            //    {
            //        Response.Redirect("~/Account/Login.aspx");
            //    }
            //}
            //else
            //{
            //    Response.Redirect("~/Account/Login.aspx");
            //}

            if (!IsPostBack)
            {
                Page.Header.DataBind();

                int userID = getCurrentUserID();
                using (ERP_CMSEntities cntx = new ERP_CMSEntities())
                {
                    bool isAdmin = PortalUtilities.isUserAdmin(cntx, userID);
                    if (isAdmin)
                    {
                        var objPanels = (from p in cntx.MenuPanels
                                         orderby p.DisplayOrder
                                         select new { p.PanelID, p.PanelTitle }).ToList();
                        rptrMenuPanels.DataSource = objPanels;
                        rptrMenuPanels.DataBind();
                    }
                    else
                    {
                        var objPanels = (from el in cntx.UserLinks
                                         join usr in cntx.Users on el.UserID equals usr.UserID
                                         join ml in cntx.MenuLinks on el.MenuLinkID equals ml.MenuLinkID
                                         join m in cntx.Menus on ml.MenuID equals m.MenuID
                                         join mp in cntx.MenuPanels on m.PanelID equals mp.PanelID
                                         where usr.UserID == userID
                                         select new { mp.PanelID, mp.PanelTitle, mp.DisplayOrder }).Distinct().OrderBy(f => f.DisplayOrder).ToList();
                        rptrMenuPanels.DataSource = objPanels;
                        rptrMenuPanels.DataBind();
                    }

                    bool haveChangePassword = PortalUtilities.fnHaveRights(userID, Convert.ToInt32(PortalUtilities.MenuLinks.ChangePassword));
                    if (haveChangePassword)
                    {
                        sideMenuLinkPassword.Visible = true;
                        sideMenuDivider.Visible      = true;
                    }

                    var objUserRights = cntx.sp_GetPageRightsByUserAndMenuLinkID(userID, Convert.ToInt32(PortalUtilities.MenuLinks.Profile)).Where(f => f.UserRightID > 0).ToList();

                    IList lstRights = objUserRights.Select(f => f.Title).ToList();

                    bool haveProfile = PortalUtilities.fnHaveRights(userID, Convert.ToInt32(PortalUtilities.MenuLinks.Profile));
                    if (objUserRights.Count > 0 && haveProfile == true && (lstRights.Contains("View Self") || lstRights.Contains("Edit Self")))
                    {
                        sideMenuLinkProfile.Visible = true;
                        sideMenuDivider.Visible     = true;
                    }

                    try
                    {
                        var objUser = cntx.Users.Where(f => f.UserID == userID).ToList().FirstOrDefault();
                        lblLnkSideProfile.Text = objUser.UserName;
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }
        }