예제 #1
0
        void forum_Init(object sender, EventArgs e)
        {
            board_id = DTRequest.GetQueryInt("board_id");

            if (board_id > 0) //如果ID获取到,将使用ID
            {
                if (bll.Exists(board_id))
                {
                    model = bll.GetModel(board_id);
                }

                if (board_id > 0)
                {
                    int    bid  = int.Parse(new board().get_category_id(board_id));           //根据子板块ID获取父板块ID
                    string auid = new BLL.forum_board().GetModel(bid).allow_usergroupid_list; //获取父板块访问权限列表
                    auid += ",";
                    string[] mlist = auid.Split(',');
                    int      ugid  = 0;
                    foreach (string item in mlist)      //遍历所有父板块的访问权限
                    {
                        if (item == "" || item == null) //如果父板块访问权限为空当前板块为所有权限
                        {
                            umodel.user_name = "游客";
                            break;
                        }
                        else
                        {
                            if (IsUserLogin()) //判断用户是否登陆
                            {
                                umodel = GetUserInfo();
                                if (item == umodel.group_id.ToString()) //如果父板块访问权限列表等于当前用户的用户组,允许访问
                                {
                                    ugid = 1;
                                    break;
                                }
                                else
                                {
                                    ugid = 2;
                                }
                            }
                            else
                            {
                                HttpContext.Current.Response.Redirect(linkurl("error", "?msg=" + Utils.UrlEncode("本板块禁止游客进入!")));
                                break;
                            }
                        }
                    }
                    if (ugid == 2)
                    {
                        HttpContext.Current.Response.Redirect(linkurl("error", "?msg=" + Utils.UrlEncode("您没有进入本板块的权限!")));
                    }
                }
                else
                {
                    HttpContext.Current.Response.Redirect(linkurl("error", "?msg=" + Utils.UrlEncode("非法进入!")));
                }
            }
        }
예제 #2
0
        //判断是否是版主
        public bool IsModerator(int boardid, int userid)
        {
            bool is_moderator = false;

            Model.forum_board bmodel = new Model.forum_board();
            DTcms.Model.users umodel = new DTcms.BLL.users().GetModel(userid);

            int bid = int.Parse(new board().get_category_id(boardid));

            string auid = new BLL.forum_board().GetModel(bid).moderator_list;

            auid += ",";
            string[] mlist = auid.Split(',');

            foreach (string item in mlist)
            {
                if (item != "" && item == umodel.user_name)
                {
                    is_moderator = true;
                }
            }
            return(is_moderator);
        }
예제 #3
0
        private void move(HttpContext context)
        {
            //检查用户是否登录
            DTcms.Model.users umodel = new DTcms.Web.UI.BasePage().GetUserInfo();
            if (umodel == null)
            {
                context.Response.Write("{\"status\":0, \"msg\":\"请登录后再操作!\"}");
                return;
            }
            BLL.forum_posts   bll   = new BLL.forum_posts();
            Model.forum_posts model = new Model.forum_posts();

            BLL.forum_board   bbll   = new BLL.forum_board();
            Model.forum_board bmodel = new Model.forum_board();

            int    post_id    = DTRequest.GetFormInt("postid");
            int    to_boardid = DTRequest.GetFormInt("toboardid");
            string opremark   = DTRequest.GetString("opremark");

            if (post_id == 0)
            {
                context.Response.Write("{\"status\":0, \"msg\":\"参数不正确!\"}");
                return;
            }

            model = bll.GetModel(post_id);
            if (model.parent_post_id != 0)
            {
                context.Response.Write("{\"status\":0, \"msg\":\"非主题贴不可移动!\"}");
                return;
            }

            int postcount  = 0;
            int replycount = 0;
            int oldboardid = model.board_id;


            //检查是否是版主
            if (!IsModerator(model.board_id, umodel.id))
            {
                context.Response.Write("{\"status\":0, \"msg\":\"当前用户无权执行此操作!\"}");
                return;
            }

            DataTable dt = bll.GetList(0, "id=" + post_id + " or parent_post_id=" + post_id, "id desc").Tables[0];

            foreach (DataRow dr in dt.Rows)
            {
                if (int.Parse(dr["parent_post_id"].ToString()) == 0)
                {
                    postcount  += 1;
                    replycount += 1;
                }
                else
                {
                    replycount += 1;
                }
                bll.UpdateField(int.Parse(dr["id"].ToString()), "board_id=" + to_boardid);
            }

            bmodel = bbll.GetModel(oldboardid);
            bmodel.subject_count -= postcount;
            bmodel.post_count    -= replycount;
            bbll.Update(bmodel);

            bmodel = bbll.GetModel(to_boardid);
            bmodel.subject_count += postcount;
            bmodel.post_count    += replycount;
            bbll.Update(bmodel);

            new DTcms.Web.UI.ManagePage().AddAdminLog(DTEnums.ActionEnum.Edit.ToString(), "移动帖子:" + opremark); //记录日志

            context.Response.Write("{\"status\": 1, \"msg\": \"恭喜你,移动主题成功!\"}");
            return;
        }