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; } } }
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"); }