Example #1
0
        public async Task <ActionResult> PublishPermissions(int id = 0, int IdType = 1)
        {
            UserGroupsEntity userGroupsEntity = null;
            UsersEntity      usersEntity      = null;
            var permissionsViewModels         = new PublishPermissionsViewModel();

            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));
                }
                permissionsViewModels.PurviewEntity = 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));
                }
                permissionsViewModels.PurviewEntity = usersEntity.UserPurview;
            }
            else
            {
                Utility.WriteMessage("权限类型没有指定", "mClose");
                return(View(permissionsViewModels));
            }
            if (permissionsViewModels.PurviewEntity == null)
            {
                permissionsViewModels.PurviewEntity = new UserPurviewEntity();
            }
            permissionsViewModels.IdType   = IdType;
            permissionsViewModels.NodeList = _NodesService.GetNodeListByContainer();
            permissionsViewModels.GroupNodePermissionsList = await _UserGroupsService.GetNodePermissionsById(id, -3, OperateCode.None, IdType);

            return(View(permissionsViewModels));
        }
Example #2
0
        public async Task <ActionResult> UserGroupFrontPermissions(int id = 0, int IdType = 1)
        {
            UserGroupsEntity userGroupsEntity = null;
            UsersEntity      usersEntity      = null;
            var permissionsViewModels         = new PublishPermissionsViewModel();

            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));
                }
                permissionsViewModels.PurviewEntity = 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));
                }
                permissionsViewModels.PurviewEntity = usersEntity.UserPurview;
            }
            else
            {
                Utility.WriteMessage("权限类型没有指定", "mClose");
                return(View(permissionsViewModels));
            }
            if (permissionsViewModels.PurviewEntity == null)
            {
                permissionsViewModels.PurviewEntity = new UserPurviewEntity();
            }
            var nodeList     = new List <NodesEntity>();
            var nodeListTemp = _NodesService.GetNodeListByContainer();

            foreach (var item in nodeListTemp)
            {
                string BeginTag = _NodesService.GetTreeLine(item.Depth, item.ParentPath, item.NextID, item.Child);
                string EndTag   = _NodesService.GetNodeDir(item.Child, (NodeType)item.NodeType, item.NodeDir);
                if (item.NodeName == "所有栏目")
                {
                    BeginTag = BeginTag + "<span style='color:red'>";
                    EndTag   = "</span>" + EndTag;
                }
                else
                {
                    //根据父节点的栏目权限和当前节点的栏目权限,确定当前节点的栏目权限
                    int purviewType = 0;
                    if (item.ParentID > 0)
                    {
                        purviewType = _NodesService.GetCacheNodeById(item.ParentID).PurviewType;
                    }
                    if (purviewType < item.PurviewType)
                    {
                        purviewType = item.PurviewType;
                    }
                    item.PurviewType = purviewType;
                }
                item.NodeName = BeginTag + item.NodeName + EndTag;
                nodeList.Add(item);
            }
            permissionsViewModels.IdType   = IdType;
            permissionsViewModels.NodeList = nodeList;
            permissionsViewModels.GroupNodePermissionsList = await _UserGroupsService.GetNodePermissionsById(id, -3, OperateCode.None, IdType);

            return(View(permissionsViewModels));
        }
Example #3
0
        public async Task <ActionResult> PublishPermissions(int id, int IdType, PublishPermissionsViewModel viewModel, IFormCollection collection = null)
        {
            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(""));
            }
            //保存节点权限设置
            await _UserGroupsService.DeleteNodePermissionFromGroup(id, -3, OperateCode.NodeContentInput, IdType);

            await _UserGroupsService.DeleteNodePermissionFromGroup(id, -3, OperateCode.NodeNoNeedCheck, IdType);

            await _UserGroupsService.DeleteNodePermissionFromGroup(id, -3, OperateCode.NodeManageSelfInfo, IdType);

            var ModelPurview = collection["ModelPurview"];

            if (!string.IsNullOrEmpty(ModelPurview))
            {
                await _UserGroupsService.AddNodePermissionToUserGroup(id, ModelPurview, IdType);
            }
            //保存会员组(会员)权限设置
            if (userPurviewEntity == null)
            {
                userPurviewEntity = new UserPurviewEntity();
            }
            userPurviewEntity.SetEditor           = viewModel.PurviewEntity.SetEditor;
            userPurviewEntity.MaxPublicInfoOneDay = viewModel.PurviewEntity.MaxPublicInfoOneDay;
            userPurviewEntity.MaxPublicInfo       = viewModel.PurviewEntity.MaxPublicInfo;
            userPurviewEntity.IsXssFilter         = viewModel.PurviewEntity.IsXssFilter;
            if (ConfigHelper.Get <UserConfig>().EnableExp)
            {
                userPurviewEntity.GetExp = viewModel.PurviewEntity.GetExp;
            }
            if (ConfigHelper.Get <UserConfig>().EnablePoint)
            {
                userPurviewEntity.GetPoint = viewModel.PurviewEntity.GetPoint;
            }
            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(""));
        }