예제 #1
0
        public async Task <ActionResult> UserGroupPermissions(int id, int IdType, UserGroupPermissionsViewModels viewModel, IFormCollection collection)
        {
            UserGroupsEntity  userGroupsEntity  = null;
            UsersEntity       usersEntity       = null;
            UserPurviewEntity userPurviewEntity = null;

            if (IdType == 1)
            {
                if (id <= 0 && id != -2)
                {
                    Utility.WriteMessage("权限配置必须指定会员组", "mClose");
                    return(Content(""));
                }
                userGroupsEntity = await _UserGroupsService.GetAsync(p => p.GroupID == id);

                if (userGroupsEntity == null)
                {
                    Utility.WriteMessage("指定的会员组不存在", "mClose");
                    return(Content(""));
                }
                userPurviewEntity = userGroupsEntity.UserGroupPurview;
            }
            else if (IdType == 0)
            {
                if (id <= 0)
                {
                    Utility.WriteMessage("权限配置必须指定会员", "mClose");
                    return(Content(""));
                }
                usersEntity = await _UsersService.GetAsync(p => p.UserID == id);

                if (usersEntity == null)
                {
                    Utility.WriteMessage("指定的会员不存在", "mClose");
                    return(Content(""));
                }
                userPurviewEntity = usersEntity.UserPurview;
            }
            else
            {
                Utility.WriteMessage("权限类型没有指定", "mClose");
                return(Content(""));
            }

            //字段权限
            var ModelFieldPurview = collection["ModelFieldPurview"];
            await _UserGroupsService.DeleteFieldPermissionFromGroup(id, IdType);

            await _UserGroupsService.AddFieldPermissionToUserGroup(id, OperateCode.ContentFieldInput, ModelFieldPurview, IdType);

            if (userPurviewEntity == null)
            {
                userPurviewEntity = new UserPurviewEntity();
            }
            //菜单权限
            var ModelPurview = collection["ModelPurview"];

            userPurviewEntity.AllCheckCode = ModelPurview;
            //其他权限
            userPurviewEntity.EnableComment    = viewModel.PurviewEntity.EnableComment;
            userPurviewEntity.CommentNeedCheck = viewModel.PurviewEntity.CommentNeedCheck;
            userPurviewEntity.EnableUpload     = viewModel.PurviewEntity.EnableUpload;
            userPurviewEntity.UploadSize       = viewModel.PurviewEntity.UploadSize;
            userPurviewEntity.Discount         = viewModel.PurviewEntity.Discount;
            userPurviewEntity.Overdraft        = viewModel.PurviewEntity.Overdraft;
            if (ConfigHelper.Get <UserConfig>().EnablePoint || ConfigHelper.Get <UserConfig>().EnableValidNum)
            {
                userPurviewEntity.ChargeType = viewModel.PurviewEntity.ChargeType;
            }
            if (ConfigHelper.Get <UserConfig>().EnablePoint)
            {
                userPurviewEntity.ChargePointType      = viewModel.PurviewEntity.ChargePointType;
                userPurviewEntity.TotalViewInfoNumber  = viewModel.PurviewEntity.TotalViewInfoNumber;
                userPurviewEntity.ViewInfoNumberOneDay = viewModel.PurviewEntity.ViewInfoNumberOneDay;
            }
            bool bFlag = false;

            if (userGroupsEntity != null)
            {
                userGroupsEntity.GroupSetting = userPurviewEntity.ToXml();
                bFlag = await _UserGroupsService.UpdateAsync(userGroupsEntity);
            }
            else if (usersEntity != null)
            {
                usersEntity.UserSetting = userPurviewEntity.ToXml();
                bFlag = await _UsersService.UpdateAsync(usersEntity);
            }
            if (bFlag)
            {
                Utility.WriteMessage("设置权限成功", "mRefresh");
            }
            else
            {
                Utility.WriteMessage("设置权限失败", "mClose");
            }
            return(Content(""));
        }
예제 #2
0
        public async Task <ActionResult> UserGroupPermissions(int id = 0, int IdType = 1)
        {
            UserGroupsEntity  userGroupsEntity  = null;
            UsersEntity       usersEntity       = null;
            UserPurviewEntity userPurviewEntity = null;
            UserGroupPermissionsViewModels permissionsViewModels = new UserGroupPermissionsViewModels();

            if (IdType == 1)
            {
                if (id <= 0 && id != -2)
                {
                    Utility.WriteMessage("权限配置必须指定会员组", "mClose");
                    return(View(permissionsViewModels));
                }
                userGroupsEntity = await _UserGroupsService.GetAsync(p => p.GroupID == id);

                if (userGroupsEntity == null)
                {
                    Utility.WriteMessage("指定的会员组不存在", "mClose");
                    return(View(permissionsViewModels));
                }
                ViewBag.Name      = userGroupsEntity.GroupName;
                userPurviewEntity = userGroupsEntity.UserGroupPurview;
            }
            else if (IdType == 0)
            {
                if (id <= 0)
                {
                    Utility.WriteMessage("权限配置必须指定会员", "mClose");
                    return(View(permissionsViewModels));
                }
                usersEntity = await _UsersService.GetAsync(p => p.UserID == id);

                if (usersEntity == null)
                {
                    Utility.WriteMessage("指定的会员不存在", "mClose");
                    return(View(permissionsViewModels));
                }
                ViewBag.Name      = usersEntity.UserName;
                userPurviewEntity = usersEntity.UserPurview;
            }
            else
            {
                Utility.WriteMessage("权限类型没有指定", "mClose");
                return(View(permissionsViewModels));
            }
            if (userPurviewEntity == null)
            {
                userPurviewEntity = new UserPurviewEntity();
            }
            ViewBag.ID = id;
            permissionsViewModels.IdType = IdType;
            permissionsViewModels.GroupPermissionsList = DataConverter.ToString(userPurviewEntity.AllCheckCode);
            permissionsViewModels.PurviewEntity        = userPurviewEntity;
            //菜单权限
            string      userMenuPath = Utility.GetUserMenuPath();
            XmlHelper   xmlHelper    = XmlHelper.Instance(FileHelper.MapPath(userMenuPath), XmlType.File);
            XmlDocument xmlDoc       = xmlHelper.XmlDoc;
            XmlNode     rootNode     = xmlDoc.SelectSingleNode("menu");

            if (rootNode == null)
            {
                Utility.WriteMessage("菜单配置文件不存在menu根元素", "mClose");
                return(View(permissionsViewModels));
            }
            if (rootNode.HasChildNodes)
            {
                IList <MenuEntity> menuEntityList = new List <MenuEntity>();
                foreach (XmlNode channelMenuNode in rootNode)
                {
                    string operateCode = XmlHelper.GetAttributesValue(channelMenuNode, "operateCode");
                    string NodeName    = channelMenuNode.Name;
                    string menuID      = XmlHelper.GetAttributesValue(channelMenuNode, "id");
                    string title       = XmlHelper.GetAttributesValue(channelMenuNode, "title");
                    string Description = XmlHelper.GetAttributesValue(channelMenuNode, "Description");
                    string rightUrl    = XmlHelper.GetAttributesValue(channelMenuNode, "rightUrl");
                    string MenuType    = XmlHelper.GetAttributesValue(channelMenuNode, "type");
                    string MenuIcon    = XmlHelper.GetAttributesValue(channelMenuNode, "icon");
                    bool   ShowOnForm  = DataConverter.CBoolean(XmlHelper.GetAttributesValue(channelMenuNode, "ShowOnForm"));
                    bool   ShowOnMenu  = DataConverter.CBoolean(XmlHelper.GetAttributesValue(channelMenuNode, "ShowOnMenu"));
                    if (!ShowOnForm)
                    {
                        continue;
                    }
                    MenuEntity menuEntity = new MenuEntity
                    {
                        NodeName    = NodeName,
                        ID          = menuID,
                        Title       = title,
                        OperateCode = operateCode,
                        Description = Description,
                        Url         = rightUrl,
                        MenuType    = MenuType,
                        MenuIcon    = MenuIcon,
                        ShowOnForm  = ShowOnForm,
                        ShowOnMenu  = ShowOnMenu
                    };
                    menuEntity.MenuItem = InitSubMenu(channelMenuNode);
                    menuEntityList.Add(menuEntity);
                }
                permissionsViewModels.MenuEntityList = menuEntityList;
            }
            //字段权限
            var groupFieldPermissionsViewModelsList = new List <GroupFieldPermissionsViewModels>();
            var modelsEntityList = await _ModelsService.LoadListAllAsync(p => p.IsDisabled == false);

            foreach (ModelsEntity modelsEntity in modelsEntityList)
            {
                var fieldInfoList = modelsEntity.Field.ToXmlObject <List <FieldInfo> >();
                fieldInfoList.Sort(new FieldInfoComparer());
                var vm = new GroupFieldPermissionsViewModels();
                vm.ModelsEntity  = modelsEntity;
                vm.FieldInfoList = fieldInfoList;
                vm.GroupFieldPermissionsEntityList = await _UserGroupsService.GetFieldPermissionsById(id, modelsEntity.ModelID, IdType);

                groupFieldPermissionsViewModelsList.Add(vm);
            }
            permissionsViewModels.GroupFieldPermissionsViewModelsList = groupFieldPermissionsViewModelsList;
            return(View(permissionsViewModels));
        }