Ejemplo n.º 1
0
        // POST /api/forummod
        public ModerationResult Post(ModerationRequest modReq)
        {
            //log.Info("cmd = " + modReq.Cmd);
            //log.Info("pageId = " + modReq.PageId.ToInvariantString());
            //log.Info("moduleId = " + modReq.ModuleId.ToInvariantString());
            //log.Info("pageNumber = " + modReq.PageNumber.ToInvariantString());
            //log.Info("threadId = " + modReq.ThreadId.ToInvariantString());
            //log.Info("postId = " + modReq.PostId.ToInvariantString());


            ModerationResult result = new ModerationResult();

            result.Msg = "rejected";
            if (IsAllowed(modReq))
            {
                switch (modReq.Cmd)
                {
                case "sendnotification":



                    bool notifyModeratorOnly = false;

                    ForumNotification.NotifySubscribers(
                        forum,
                        thread,
                        module,
                        postUser,
                        siteSettings,
                        config,
                        SiteUtils.GetNavigationSiteRoot(),
                        modReq.PageId,
                        modReq.PageNumber,
                        SiteUtils.GetDefaultCulture(),
                        ForumConfiguration.GetSmtpSettings(),
                        notifyModeratorOnly
                        );

                    thread.NotificationSent = true;
                    thread.UpdatePost();

                    result.Msg = "success";

                    break;

                case "marksent":

                    thread.NotificationSent = true;
                    thread.UpdatePost();

                    //System.Threading.Thread.Sleep(7000);

                    result.Msg = "success";

                    break;
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
        // POST /api/forummod
        public ModerationResult Post(ModerationRequest modReq)
        {
            //log.Info("cmd = " + modReq.Cmd);
            //log.Info("pageId = " + modReq.PageId.ToInvariantString());
            //log.Info("moduleId = " + modReq.ModuleId.ToInvariantString());
            //log.Info("pageNumber = " + modReq.PageNumber.ToInvariantString());
            //log.Info("threadId = " + modReq.ThreadId.ToInvariantString());
            //log.Info("postId = " + modReq.PostId.ToInvariantString());

            ModerationResult result = new ModerationResult();
            result.Msg = "rejected";
            if (IsAllowed(modReq))
            {
                switch(modReq.Cmd)
                {
                    case "sendnotification":

                        bool notifyModeratorOnly = false;

                        ForumNotification.NotifySubscribers(
                            forum,
                            thread,
                            module,
                            postUser,
                            siteSettings,
                            config,
                            SiteUtils.GetNavigationSiteRoot(),
                            modReq.PageId,
                            modReq.PageNumber,
                            SiteUtils.GetDefaultCulture(),
                            ForumConfiguration.GetSmtpSettings(),
                            notifyModeratorOnly
                            );

                        thread.NotificationSent = true;
                        thread.UpdatePost();

                        result.Msg = "success";

                        break;

                    case "marksent":

                        thread.NotificationSent = true;
                        thread.UpdatePost();

                        //System.Threading.Thread.Sleep(7000);

                        result.Msg = "success";

                        break;

                }

            }

            return result;
        }
Ejemplo n.º 3
0
        private bool IsAllowed(ModerationRequest modReq)
        {
            siteSettings = CacheHelper.GetCurrentSiteSettings();
            if (siteSettings == null)
            {
                //log.Info("SiteSettings was null");
                return(false);
            }
            currentPage = CacheHelper.GetPage(modReq.PageId);
            if (
                (currentPage.PageId != modReq.PageId) ||
                (currentPage.SiteId != siteSettings.SiteId)
                )
            {
                log.Info("request rejected - pageid did not match");
                return(false);
            }

            thread = new ForumThread(modReq.ThreadId, modReq.PostId);

            if (thread.ModuleId != modReq.ModuleId)
            {
                log.Info("thread module id did not match");
                return(false);
            }
            forum = new Forum(thread.ForumId);

            module = GetModule(currentPage, thread.ModuleId);
            if (module == null)
            {
                log.Info("module not found in page modules");
                return(false);
            }

            config = new ForumConfiguration(ModuleSettings.GetModuleSettings(module.ModuleId));
            if (thread.PostUserId > -1)
            {
                postUser = new SiteUser(siteSettings, thread.PostUserId);
            }

            return(UserCanModerate(currentPage, module, forum));
        }
Ejemplo n.º 4
0
        private bool IsAllowed(ModerationRequest modReq)
        {
            siteSettings = CacheHelper.GetCurrentSiteSettings();
            if (siteSettings == null)
            {
                //log.Info("SiteSettings was null");
                return false;
            }
            currentPage = CacheHelper.GetPage(modReq.PageId);
            if (
                (currentPage.PageId != modReq.PageId)
                || (currentPage.SiteId != siteSettings.SiteId)
                )
            {
                log.Info("request rejected - pageid did not match");
                return false;
            }

            thread = new ForumThread(modReq.ThreadId, modReq.PostId);

            if (thread.ModuleId != modReq.ModuleId)
            {
                log.Info("thread module id did not match");
                return false;
            }
            forum = new Forum(thread.ForumId);

            module = GetModule(currentPage, thread.ModuleId);
            if (module == null)
            {
                log.Info("module not found in page modules");
                return false;
            }

            config = new ForumConfiguration(ModuleSettings.GetModuleSettings(module.ModuleId));
            if (thread.PostUserId > -1)
            {
                postUser = new SiteUser(siteSettings, thread.PostUserId);
            }

            return UserCanModerate(currentPage, module, forum);
        }