示例#1
0
        /// <summary>
        /// 获取其他用户关联的菜单
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public UserMenuViewModel GetUserMenuViewModel(int userID)
        {
            List <UserMenus> userMenu = context.GetOneUserMenu(userID);

            //其他用户关联的菜单
            UserMenus     userM        = new UserMenus();
            List <string> userMenuList = new List <string>();

            if (userMenu.Count > 0)
            {
                userM = userMenu.First();

                if (userM.Menus.Equals("all"))
                {
                    userMenuList.Add("all");
                }
                else
                {
                    userMenuList.AddRange(userM.Menus.ToUpper().Split('|'));
                }
            }

            UserMenuViewModel viewModel = new UserMenuViewModel();

            viewModel.userMenu = userMenuList.ToArray();

            return(viewModel);
        }
示例#2
0
        public ActionResult Login(string acc)
        {
            var users = CommonUserService.GetModels("Account=@Account", new Dictionary <string, object>()
            {
                { "@Account", acc }
            });

            if (users.Count > 0)
            {
                var user = users[0];
                LoginHelper.Instance.Login(() =>
                {
                    return(new UserBase()
                    {
                        Account = user.Account,
                        Avatar = user.Avatar,
                        IpAddress = Kernel.GetIP(),
                        Sex = user.Gander ?? 0,
                        UserName = user.UserName
                    });
                });
                //添加权限
                var userActions = CommonUserService.GetUserActions("ur.userId=@userId", new Dictionary <string, object>()
                {
                    { "@userId", user.Id }
                }, " m.Sort,a.sort");

                LoginHelper.Instance.CacheRoles(() =>
                {
                    var userroles = new UserRoles();
                    userActions.ForEach(p =>
                                        userroles.AddRole(p.Url, p.Name, p.Name));
                    return(userroles);
                });

                LoginHelper.Instance.CacheMeuns(() =>
                {
                    var usermenu = new UserMenus();
                    userActions.ForEach(p =>
                    {
                        if (p.IsVisible)
                        {
                            usermenu.Add(p.MenuName, p.Name, p.Url);
                        }
                    }

                                        );
                    return(usermenu);
                });

                return(RedirectToAction("index", "home"));
            }
            return(RedirectToAction("Login"));
        }
 private void InsertUserMenusByUid(int userId, IEnumerable <int> menuIds)
 {
     foreach (var menuId in menuIds)
     {
         UserMenus userMenus = new UserMenus()
         {
             UserId = userId,
             MenuId = menuId
         };
         _userMenusRepository.Insert(userMenus);
     }
 }
示例#4
0
        public EFEntity.Menu GetUserMenuPermission(string strAreaName, string strControllerName, string strActionName, string strFormMethod)
        {
            int formMethod = strFormMethod.ToLower() == "get" ? 1 : 2;

            if (UserMenus == null)
            {
                return(null);
            }
            var curPer = UserMenus.SingleOrDefault(c => c.Area.IsSame(strAreaName) &&
                                                   c.ControllerName.IsSame(strControllerName) &&
                                                   c.ActionName.IsSame(strActionName) &&
                                                   (c.Method == 3 ? true : (c.Method == formMethod))
                                                   );

            return(curPer);
        }
示例#5
0
        public string GetCheckboxesForUser(int roleId)
        {
            List <UserMenus> menus = new List <UserMenus>();
            string           res   = "";

            DataTable dt = new DataTable();

            try
            {
                using (MsqlConnection mc = new MsqlConnection())
                {
                    using (SqlCommand cmd = new SqlCommand("GetCheckboxesForUser", mc.msqlConnection))
                    {
                        using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
                        {
                            mc.open();
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.Parameters.AddWithValue("@roleId", roleId);
                            sda.Fill(dt);
                            mc.close();
                        }
                    }
                }
            }
            catch (Exception ex) { }

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                UserMenus menu = new UserMenus();

                menu.Id       = dt.Rows[i]["MenuName"].ToString();
                menu.MenuId   = Convert.ToInt32(dt.Rows[i]["MenuId"]);
                menu.MenuName = dt.Rows[i]["MenuName"].ToString();

                string status = Convert.ToString(dt.Rows[i]["MenuStatus"]);
                menu.MenuStatus = status;

                menus.Add(menu);
            }

            res = JsonConvert.SerializeObject(menus);

            return(res);
        }
示例#6
0
        /// <summary>
        /// 获取管理员所关联菜单
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public UserMenuViewModel GetAdminMenuViewModel(string userName)
        {
            List <UserSet>   users     = context.GetAllUserList();
            List <UserMenus> adminMenu = context.GetAdminMenuByUserName(userName);
            List <MenuInfo>  menuInfo  = context.GetMenuInfo();

            //管理员所关联菜单
            UserMenus        admin      = adminMenu.First();
            List <User2Menu> admin2Menu = new List <User2Menu>();

            if (admin.Menus.Equals("all"))
            {
                foreach (var menuIetm in menuInfo)
                {
                    User2Menu user2m = new User2Menu();
                    user2m.MenuID   = menuIetm.MenuID;
                    user2m.MenuName = menuIetm.MenuName;
                    user2m.isUsing  = true;
                    admin2Menu.Add(user2m);
                }
            }
            else
            {
                string[] adminMenuArray = admin.Menus.ToUpper().Split('|');
                foreach (var menuId in adminMenuArray)
                {
                    if (menuInfo.Exists(x => x.MenuID.Equals(menuId)))
                    {
                        User2Menu user2m = new User2Menu();
                        user2m.MenuName = menuInfo.Find(x => x.MenuID.Equals(menuId)).MenuName;
                        user2m.MenuID   = menuId;
                        user2m.isUsing  = true;
                        admin2Menu.Add(user2m);
                    }
                }
            }

            UserMenuViewModel viewModel = new UserMenuViewModel();

            viewModel.Users     = users;
            viewModel.adminMenu = admin2Menu;

            return(viewModel);
        }
示例#7
0
        public void AddUpdateUserMenus(UserMenuModel model)
        {
            DeleteMenuForUser(model.UserId);
            List <UserMenus> urList = new List <UserMenus>();

            using (var db = new PCVEntities())
            {
                if (model.MenuId.IsNotBlank())
                {
                    foreach (var item in model.MenuId)
                    {
                        UserMenus oneRoleMenu = new UserMenus();
                        oneRoleMenu.UserId      = model.UserId;
                        oneRoleMenu.MenuId      = item.To <long>();
                        oneRoleMenu.CreatedDate = DateTime.Now;
                        oneRoleMenu.CreatedBy   = MySession.Current.UserName;
                        urList.Add(oneRoleMenu);
                    }
                    db.UserMenus.AddRange(urList);
                    db.SaveChanges();
                }
            }
        }
        /// <summary>
        /// 执行
        /// </summary>
        /// <returns>返回执行结果</returns>
        public override object Do()
        {
            //删除数据.
            EmpMenus mymes = new EmpMenus();

            mymes.GetNewEntity.CheckPhysicsTable();
            mymes.ClearTable();

            EmpApps empApps = new EmpApps();

            empApps.GetNewEntity.CheckPhysicsTable();
            empApps.ClearTable();

            //查询出来菜单.
            Menus menus = new Menus();

            menus.RetrieveAllFromDBSource();

            //查询出来所有的应用系统.
            Apps apps = new Apps();

            apps.RetrieveAllFromDBSource();

            //查询出来人员.
            Emps emps = new Emps();

            emps.RetrieveAllFromDBSource();

            foreach (Emp emp in emps)
            {
                // 删除该人员的菜单权限.
                string sql = "";
                BP.DA.DBAccess.RunSQL("DELETE GPM_EmpMenu WHERE FK_Emp='" + emp.No + "'");


                string menuIDs = "";

                #region 首先解决对一个人员的个性化设置.
                //从人员菜单设置信息表中查询.
                UserMenus ums = new UserMenus();
                ums.Retrieve(UserMenuAttr.FK_Emp, emp.No);
                foreach (UserMenu um in ums)
                {
                    menuIDs += um.FK_Menu + ",";
                }
                #endregion 首先解决对一个人员的个性化设置.

                // 求出该用户有多少个权限组.
                string groupIDs = ",";
                sql  = "SELECT FK_Group FROM GPM_GroupEmp WHERE FK_Emp='" + emp.No + "'";
                sql += " UNION ";
                sql += "SELECT FK_Group FROM GPM_GroupStation WHERE FK_Station in (SELECT FK_Station from Port_DeptEmpStation where FK_Emp='" + emp.No + "') ";

                DataTable dt = DBAccess.RunSQLReturnTable(sql);
                foreach (DataRow dr in dt.Rows)
                {
                    if (groupIDs.Contains("," + dr[0].ToString() + ","))
                    {
                        continue;
                    }
                    groupIDs += dr[0].ToString() + ",";
                }
            }

            return("所有的成员都被初始化成功.");
        }
        public virtual UserMenus GetAccountMenus(int userid)
        {
            var userrolemodel = _Accounts_UserRolesRepository.TableNoTracking.Where(s => s.UserID == userid).FirstOrDefault();

            var rolemodel = _Accounts_RolesRepository.TableNoTracking.Where(s => s.Id == userrolemodel.RoleID).FirstOrDefault();

            var rolemenuquery = _RoleMenuRepository.TableNoTracking.Where(s => s.RoleID == rolemodel.Id);

            if (rolemodel.hotelid.HasValue)
            {
                rolemenuquery = rolemenuquery.Where(s => s.hotelid == rolemodel.hotelid);
            }

            var rolemenus = rolemenuquery.ToList();

            //int?[] parnetids = rolemenus.Select(s => s.Menu_pid).Distinct().ToArray();

            //var parentmenus = _MenuRepository.TableNoTracking.Where(s => parnetids.Contains(s.Id)).ProjectToList<MenuDto>();
            //var tempparentmenus = _MenuRepository.TableNoTracking.Where(s => parnetids.Contains(s.Id)).ToList();
            //var parentmenus = AutoMapper.Mapper.Map<List<MenuDto>>(tempparentmenus);

            UserMenus userMenus = new UserMenus {
                RoleId = rolemodel.Id, UserId = userid
            };
            List <Menu> menus = new List <Menu>();

            foreach (var item in rolemenus)
            {
                if (!menus.Any(s => s.ParentMenu.Id == item.Menu_pid))
                {
                    Menu menu = new Menu();
                    menu.ParentMenu = AutoMapper.Mapper.Map <MenuDto>(_MenuRepository.TableNoTracking.Where(s => s.Id == item.Menu_pid).FirstOrDefault());
                    menu.ClildMenus = new List <MenuDto>();
                    menus.Add(menu);
                }

                Menu model     = menus.Where(s => s.ParentMenu.Id == item.Menu_pid).FirstOrDefault();
                var  childmenu = _MenuRepository.TableNoTracking.Where(s => s.Id == item.Menu_id).FirstOrDefault();
                if (childmenu != null)
                {
                    var childmenudto = AutoMapper.Mapper.Map <MenuDto>(childmenu);
                    model.ClildMenus.Add(childmenudto);
                }
            }


            //foreach (var item in parentmenus)
            //{
            //    var menu = new Menu { ParentMenu = item };
            //    var childrenmenus = _RoleMenuRepository.TableNoTracking.Where(s => s.RoleID == rolemodel.Id && s.Menu_pid == item.Id).ToList();
            //    foreach (var chlilditem in childrenmenus)
            //    {
            //        var clildmenu = _MenuRepository.TableNoTracking.Where(s => s.Id == chlilditem.Menu_id).FirstOrDefault();

            //        if (clildmenu != null)
            //        {
            //            menu.ClildMenus.Add(AutoMapper.Mapper.Map<MenuDto>(clildmenu));
            //        }
            //    }
            //    menus.Add(menu);

            //}
            userMenus.Menus = menus;
            return(userMenus);
        }