public JsonResult GetUserPermission(int id)
        {
            IRelationUsersModuleService relationUsersModuleService = ServiceFactory.Create <IRelationUsersModuleService>();
            List <int> moduleIDs = relationUsersModuleService.GetEntities(t => t.UsersID == id).Select(t => t.ModuleID).ToList();

            return(Json(moduleIDs, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        private bool AddRelationUsersModule(string IDs, string ModuleIDs, int createUserID = 0)
        {
            if (string.IsNullOrWhiteSpace(IDs) || string.IsNullOrWhiteSpace(ModuleIDs))
            {
                return(false);
            }
            if (createUserID == 0)
            {
                createUserID = CurrentInfo.CurrentUser.ID;
            }


            List <int> userIDArr = IDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(t => Convert.ToInt32(t)).ToList();
            List <int> moduleArr = ModuleIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(t => Convert.ToInt32(t)).ToList();

            //把所有菜单的父菜单取出来,但是只能保证三级菜单,多级有可能有bug
            IModuleService moduleService = ServiceFactory.Create <IModuleService>();
            List <Module>  allListModule = new List <Module>();

            allListModule.AddRange(moduleService.GetEntities(t => moduleArr.Contains(t.ID)).ToList());
            //foreach (var item in allListModule)
            //{
            //    Module parentModule = moduleService.GetFirstOrDefault(t => t.ID == item.ParentID);
            //    if (parentModule != null)
            //    {
            //        if (allListModule.Where(t => t.ID == parentModule.ID).Count() == 0)
            //        {
            //            allListModule.Add(parentModule);
            //        }
            //    }
            //}

            for (int i = 0; i < allListModule.Count(); i++)
            {
                int    parentID     = allListModule[i].ParentID;
                Module parentModule = moduleService.GetFirstOrDefault(t => t.ID == parentID);
                if (parentModule != null)
                {
                    if (allListModule.Where(t => t.ID == parentModule.ID).Count() == 0)
                    {
                        allListModule.Add(parentModule);
                    }
                }
            }
            //从新生成菜单ID
            moduleArr = allListModule.Select(t => t.ID).ToList();

            IRelationUsersModuleService relationUsersModuleService = ServiceFactory.Create <IRelationUsersModuleService>();

            List <RelationUsersModule> listRelationUsersModule = new List <RelationUsersModule>();
            int addCount = 0;

            using (TransactionScope scope = TransactionScopeHelper.GetTran())
            {
                foreach (var userID in userIDArr)
                {
                    //删除当前人员的所有的权限,然后在添加新的权限
                    var userModule = relationUsersModuleService.GetEntities(t => t.UsersID == userID);
                    relationUsersModuleService.DeleteEntities(userModule.ToList());
                    foreach (var moduleID in moduleArr)
                    {
                        RelationUsersModule model = new RelationUsersModule();
                        model.UsersID      = userID;
                        model.ModuleID     = moduleID;
                        model.CreateUserID = createUserID;
                        model.CreateTime   = DateTime.Now;
                        listRelationUsersModule.Add(model);
                    }
                }
                addCount = relationUsersModuleService.AddEntities(listRelationUsersModule).Count();
                scope.Complete();
            }
            if (addCount > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public JsonResult AddRelationUsersModule(string IDs, string ModuleIDs)
        {
            if (string.IsNullOrWhiteSpace(IDs) || string.IsNullOrWhiteSpace(ModuleIDs))
            {
                return(Json(new Result(false, "参数错误"), JsonRequestBehavior.AllowGet));
            }

            List <int> userIDArr = IDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(t => Convert.ToInt32(t)).ToList();
            List <int> moduleArr = ModuleIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(t => Convert.ToInt32(t)).ToList();

            //把所有菜单的父菜单取出来,但是只能保证三级菜单,多级有可能有bug
            IModuleService moduleService = ServiceFactory.Create <IModuleService>();
            List <Module>  allListModule = new List <Module>();

            allListModule.AddRange(moduleService.GetEntities(t => moduleArr.Contains(t.ID)).ToList());

            //复制一份副本,用于循环使用
            Module[] tempAllListModule = new Module[allListModule.Count];
            allListModule.CopyTo(tempAllListModule);

            foreach (var item in tempAllListModule)
            {
                Module parentModule = moduleService.GetFirstOrDefault(t => t.ID == item.ParentID);
                if (parentModule != null)
                {
                    if (allListModule.Where(t => t.ID == parentModule.ID).Count() == 0)
                    {
                        allListModule.Add(parentModule);
                    }
                }
            }
            //从新生成菜单ID
            moduleArr = allListModule.Select(t => t.ID).ToList();

            IRelationUsersModuleService relationUsersModuleService = ServiceFactory.Create <IRelationUsersModuleService>();

            List <RelationUsersModule> listRelationUsersModule = new List <RelationUsersModule>();
            int addCount = 0;

            using (TransactionScope scope = TransactionScopeHelper.GetTran())
            {
                foreach (var userID in userIDArr)
                {
                    //删除当前人员的所有的权限,然后在添加新的权限
                    var userModule = relationUsersModuleService.GetEntities(t => t.UsersID == userID);
                    relationUsersModuleService.DeleteEntities(userModule.ToList());
                    foreach (var moduleID in moduleArr)
                    {
                        RelationUsersModule model = new RelationUsersModule();
                        model.UsersID      = userID;
                        model.ModuleID     = moduleID;
                        model.CreateUserID = CurrentInfo.CurrentUser.ID;
                        model.CreateTime   = DateTime.Now;
                        listRelationUsersModule.Add(model);
                    }
                }
                addCount = relationUsersModuleService.AddEntities(listRelationUsersModule).Count();
                scope.Complete();
            }

            return(Json(new Result(addCount > 0, "成功分配权限"), JsonRequestBehavior.AllowGet));
        }
        protected void InitUserInfo(Users currentUser, Stores switchCurrentSore = null)
        {
            InitInfo initInfo = CurrentInfo;

            //当前用户
            //IUsersService usersService = ServiceFactory.Create<IUsersService>();
            //var currentUser = usersService.GetEntity(1);
            initInfo.CurrentUser = currentUser;

            //当前用户的所属门店
            IStoresService storesService = ServiceFactory.Create <IStoresService>();
            var            currentSore   = switchCurrentSore == null ? currentUser.Stores : switchCurrentSore;//soresService.GetEntity(1);

            initInfo.CurrentStore = currentSore;

            //当前商家
            initInfo.CurrentShop = currentUser.Stores.Shops;

            //该用户在当前门店下的所有角色
            var userAllRole = currentUser.RelationUserRole;
            //用户所有的门店
            List <Entity.Stores> allStore = null;

            List <Entity.Module> sidebar = new List <Entity.Module>();

            //如果是系统管理员,则默认加载所有的菜单//否则就加载用户拥有的权限菜单
            if (initInfo.IsAdministrator)//userAllRole.Any(t => t.RoleID == 1)
            {
                //当前用户使用的角色名称
                initInfo.CurrentRoleName = "超级管理员";
                //左侧菜单(全部获取)
                IModuleService moduleService = ServiceFactory.Create <IModuleService>();
                sidebar = moduleService.GetEntities(t => t.Disabled == false).ToList();

                //管理员可以查看所有门店
                allStore = storesService.GetEntities(t => t.ShopId == initInfo.CurrentShop.ID && t.Disabled == false).ToList();
                //initInfo.Sidebar = sidebar;
            }
            else if (initInfo.CurrentShop.AdminUserID == currentUser.ID)
            {
                //如果是商家,则获取商家的所有菜单
                ////当前用户使用的角色名称
                //initInfo.CurrentRoleName = "店铺管理员";
                //IRelationShopsModuleService relationShopsModuleService = ServiceFactory.Create<IRelationShopsModuleService>();
                //var shopAllModule = relationShopsModuleService.GetEntities(t => t.ShopID == initInfo.CurrentShop.ID).Select(t => t.Module).ToList();
                //foreach (var itemShopModule in shopAllModule)
                //{
                //    //菜单没有被禁用,并且之前没有添加到菜单列表里面
                //    if (!itemShopModule.Disabled && !sidebar.Any(t => t.ID == itemShopModule.ID))
                //    {
                //        sidebar.Add(itemShopModule);
                //    }
                //}

                //如果是商家,则获取商家的对应门店的所有菜单,因为商家下面的门店有可能购买的版本不一样
                //当前用户使用的角色名称
                initInfo.CurrentRoleName = "系统管理员";
                IRelationStoresModuleService relationStoresModuleService = ServiceFactory.Create <IRelationStoresModuleService>();
                var storeAllModule = relationStoresModuleService.GetEntities(t => t.StoresID == initInfo.CurrentStore.ID).Select(t => t.Module).ToList();
                foreach (var itemStoreModule in storeAllModule)
                {
                    if (!itemStoreModule.Disabled && !sidebar.Any(t => t.ID == itemStoreModule.ID))
                    {
                        sidebar.Add(itemStoreModule);
                    }
                }

                //商家管理员可以查看所有门店
                allStore = storesService.GetEntities(t => t.ShopId == initInfo.CurrentShop.ID && t.Disabled == false).ToList();
            }
            else
            {
                //根据角色获取到所有门店
                allStore = userAllRole.Select(t => t.Role.Stores).Where(t => t.Disabled == false).Distinct().ToList();

                IRelationUserRoleService relationUserRoleService = ServiceFactory.Create <IRelationUserRoleService>();

                //过滤出用户当前门店的所有角色
                var userCurrentStoreRole = userAllRole.Where(t => t.Role.StoreID == currentSore.ID);

                //当前用户使用的角色名称
                initInfo.CurrentRoleName = string.Join(",", userCurrentStoreRole.Select(t => t.Role.Name).ToList());

                //用户左侧菜单
                foreach (var itemUserRole in userCurrentStoreRole)
                {
                    //单个角色拥有的菜单
                    var singleRoleModule = itemUserRole.Role.RelationRoleModule;
                    foreach (var itemRoleModule in singleRoleModule)
                    {
                        Module singleModule = itemRoleModule.Module;
                        //菜单没有被禁用,并且之前没有添加到菜单列表里面
                        if (!singleModule.Disabled && !sidebar.Any(t => t.ID == singleModule.ID))
                        {
                            sidebar.Add(singleModule);
                        }
                    }
                }
            }

            //首先获取该用户下面的所有菜单
            IRelationUsersModuleService relationUsersModuleService = ServiceFactory.Create <IRelationUsersModuleService>();
            var userAllModule = relationUsersModuleService.GetEntities(t => t.UsersID == currentUser.ID).Select(t => t.Module).ToList();

            foreach (var itemUserModel in userAllModule)
            {
                //菜单没有被禁用,并且之前没有添加到菜单列表里面
                if (!itemUserModel.Disabled && !sidebar.Any(t => t.ID == itemUserModel.ID))
                {
                    sidebar.Add(itemUserModel);
                }
            }

            //System.Web.HttpContext.Current.Session["InitInfo"] = initInfo;
            //设置缓存2小时
            DataCache.SetCache(HttpContext.Session.SessionID, initInfo, TimeSpan.FromMinutes(1)); //
            //更新登录次数
            IUsersService userService = ServiceFactory.Create <IUsersService>();

            currentUser.LoginTimes    = currentUser.LoginTimes == null ? 1 : currentUser.LoginTimes + 1;
            currentUser.LastLoginTime = DateTime.Now;
            currentUser.LastLoginIP   = Request.UserHostAddress;

            //如果是意向客户,则查询一下IP在哪个城市
            if (currentUser.IsIntention == true)
            {
                currentUser.LastLoginArea = Common.IPHelper.GetAreaByIP(Request.UserHostAddress);
            }

            userService.UpdateEntity(currentUser);

            initInfo.AllStore = allStore;
            initInfo.Sidebar  = sidebar;
            initInfo.IsLogin  = true;

            ////确定当前用户显示的首页,如果有首页则显示,没有首页的话,默认显示微信聚客系统的介绍页
            //if (CurrentInfo.Sidebar.Exists(t =>
            //    t.Area != null && t.Area.ToLower() == "admin" &&
            //    t.Controller != null && t.Controller.ToLower() == "home" &&
            //    t.Action != null && t.Action.ToLower() == "index"))
            //{
            //    initInfo.HomeUrl = "/" + JeasuHelper.SubProjectName;
            //}
            //else
            //{
            //    initInfo.HomeUrl = "/Admin/CashCoupon/UseInstructions";
            //}

            initInfo.HomeUrl = "/Mobile/Home/DriftBottleList";
            #region 广告图片提示收年费
            if (string.IsNullOrWhiteSpace(CurrentInfo.HDImgUrl))
            {
            }

            #endregion

            InitSetting();
        }