Example #1
0
        protected override void BeforeValidate()
        {
            base.BeforeValidate();

            //By default we allow no markup
            if (IsNew)
            {
                UniqueId = Guid.NewGuid();
                Body     = Util.ConvertTextToHTML(Body);

                IGraffitiUser gu = GraffitiUsers.Current;

                if (gu != null)
                {
                    if (!DontChangeUser)
                    {
                        Name        = gu.ProperName;
                        WebSite     = gu.WebSite;
                        Email       = gu.Email;
                        IsPublished = true;
                        UserName    = gu.Name;
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(WebSite))
                    {
                        WebSite = HttpUtility.HtmlEncode(WebSite);
                    }

                    if (!string.IsNullOrEmpty(Email))
                    {
                        Email = HttpUtility.HtmlEncode(Email);
                    }

                    Name        = HttpUtility.HtmlEncode(Name);
                    SpamScore   = CommentSettings.ScoreComment(this, new Post(PostId));
                    IsPublished = SpamScore < CommentSettings.Get().SpamScore;
                }
            }
        }
Example #2
0
        public string newPost(string blogid, string username, string password, MetaWeblog.Post post, bool publish)
        {
            if (ValidateUser(username, password))
            {
                IGraffitiUser      user      = GraffitiUsers.Current;
                Graffiti.Core.Post postToAdd = new Graffiti.Core.Post();
                postToAdd.ContentType = "text/html";

                postToAdd.PostStatus     = (publish ? PostStatus.Publish : PostStatus.Draft);
                postToAdd.IsPublished    = publish;
                postToAdd.PostBody       = post.description;
                postToAdd.Title          = post.title;
                postToAdd.TagList        = post.GetTagList();
                postToAdd.UserName       = username;
                postToAdd.EnableComments = CommentSettings.Get().EnableCommentsDefault;

                if (post.categories != null && post.categories.Length > 0)
                {
                    postToAdd.CategoryId = AddOrFetchCategory(post.categories[0], user).Id;
                }
                else
                {
                    postToAdd.CategoryId = CategoryController.UnCategorizedId;
                }

                postToAdd.Name = post.GetSlug();

                if (!string.IsNullOrEmpty(post.mt_text_more))
                {
                    postToAdd.ExtendedBody = post.mt_text_more;
                }



                // Get UserTime safely (some clients pass in a DateTime that is not valid)
                try
                {
                    if (post.dateCreated != DateTime.MinValue)
                    {
                        DateTime dtUTC   = post.dateCreated;
                        DateTime dtLocal = dtUTC.ToLocalTime();
                        postToAdd.Published = dtLocal.AddHours(SiteSettings.Get().TimeZoneOffSet);
                    }
                }
                catch { postToAdd.Published = DateTime.Now.AddHours(SiteSettings.Get().TimeZoneOffSet); }

                if (postToAdd.Published <= new DateTime(2000, 1, 1))
                {
                    postToAdd.Published = DateTime.Now.AddHours(SiteSettings.Get().TimeZoneOffSet);
                }

                try
                {
                    return(PostRevisionManager.CommitPost(postToAdd, user, false, false).ToString());
                }
                catch (Exception ex)
                {
                    if (ex.Message.IndexOf("UNIQUE") > -1)
                    {
                        throw new XmlRpcFaultException(2, "Duplicate Post Name");
                    }

                    else
                    {
                        Log.Error("MetaBlog Error", "An error occored editing the post {0}. Exception: {1} Stack: {2}", post.postid, ex.Message, ex.StackTrace);
                        throw;
                    }
                }
            }


            throw new XmlRpcFaultException(0, "User does not exist");
        }