public static string SetAvatar(int mId, string service) { string retval = ""; Member m = new Member(mId); if (m != null) { switch (service) { case "twitter": if (m.getProperty("twitter") != null && m.getProperty("twitter").Value.ToString() != "") { XPathNodeIterator twitData = Twitter.Profile(m.getProperty("twitter").Value.ToString()); if (twitData.MoveNext()) { string imgUrl = twitData.Current.SelectSingleNode("//profile_image_url").Value; return saveUrlAsBuddyIcon(imgUrl, m); } } break; case "gravatar": string gUrl = "http://www.gravatar.com/avatar/" + umbraco.library.md5(m.Email) + "?s=48&d=monsterid"; return saveUrlAsBuddyIcon(gUrl, m); default: break; } } return retval; }
protected void LinkBanMemberClick(object sender, EventArgs e) { if (CurrentMember.MemberIsAdmin && ProfileMember.MemberId != null) { string usermessage; var cMem = new Member((int)ProfileMember.MemberId); if(ProfileMember.MemberIsBanned) { //Un ban member cMem.getProperty("forumUserIsBanned").Value = "0"; usermessage = library.GetDictionaryItem("MemberIsNowNotBanned"); } else { // Ban the member cMem.getProperty("forumUserIsBanned").Value = "1"; usermessage = library.GetDictionaryItem("MemberIsNowBanned"); } //Save member cMem.Save(); //Generate member Xml Cache cMem.XmlGenerate(new System.Xml.XmlDocument()); // Redirect to show message Response.Redirect(string.Concat(CurrentPageAbsoluteUrl, "?m=", usermessage)); } }
protected void createMember(object sender, EventArgs e) { if (tb_email.Text != "") { m = Member.GetMemberFromEmail(tb_email.Text); if (m == null) { MemberType mt = MemberType.GetByAlias(memberType); m = Member.MakeNew(tb_name.Text, mt, new umbraco.BusinessLogic.User(0)); m.Email = tb_email.Text; m.Password = tb_password.Text; m.LoginName = tb_email.Text; //Standard values m.getProperty("reputationTotal").Value = 20; m.getProperty("reputationCurrent").Value = 20; m.getProperty("forumPosts").Value = 0; if (!string.IsNullOrEmpty(Group)) { MemberGroup mg = MemberGroup.GetByName(Group); if (mg != null) m.AddGroup(mg.Id); } //set a default avatar Api.CommunityController.SetAvatar(m.Id, "gravatar"); m.Save(); m.XmlGenerate(new System.Xml.XmlDocument()); Member.AddMemberToCache(m); Response.Redirect(umbraco.library.NiceUrl(NextPage)); } } }
private void RegisterIP() { if (umbraco.library.IsLoggedOn()) { string ip = HttpContext.Current.Request.UserHostAddress; umbraco.cms.businesslogic.member.Member mem = umbraco.cms.businesslogic.member.Member.GetCurrentMember(); if (mem != null) { if (mem.getProperty("ip") != null && mem.getProperty("ip").Value.ToString() != ip) { mem.getProperty("ip").Value = ip; mem.Save(); } if (mem.getProperty("blocked") != null && mem.getProperty("blocked").Value.ToString() == "1") { umbraco.cms.businesslogic.member.Member.RemoveMemberFromCache(mem); umbraco.cms.businesslogic.member.Member.ClearMemberFromClient(mem); Response.Redirect(umbraco.library.NiceUrl(BlockedPage)); } // if terms of service is not accepted and we're not on the Terms of Service page, redirect if (!Request.Url.PathAndQuery.ToLower().StartsWith("/termsofservice") && mem.getProperty("tos") != null && mem.getProperty("tos").Value.ToString() == "") { Response.Redirect("/termsofservice"); } } } }
void Topic_AfterCreate(object sender, uForum.Businesslogic.CreateEventArgs e) { uForum.Businesslogic.Topic t = (uForum.Businesslogic.Topic)sender; Member mem = new Member(t.MemberId); int posts = 0; int.TryParse(mem.getProperty("forumPosts").Value.ToString(), out posts); mem.getProperty("forumPosts").Value = posts++; mem.Save(); mem.XmlGenerate(new System.Xml.XmlDocument()); Member.RemoveMemberFromCache(mem.Id); Member.AddMemberToCache(mem); }
public override bool SendNotification(System.Xml.XmlNode details, params object[] args) { try { SmtpClient c = new SmtpClient(details.SelectSingleNode("//smtp").InnerText); c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText); MailAddress from = new MailAddress( details.SelectSingleNode("//from/email").InnerText, details.SelectSingleNode("//from/name").InnerText); string subject = details.SelectSingleNode("//subject").InnerText; string body = details.SelectSingleNode("//body").InnerText; string domain = details.SelectSingleNode("//domain").InnerText; int topicId = int.Parse(args[0].ToString()); int memberId = int.Parse(args[1].ToString()); uForum.Businesslogic.Topic t = uForum.Businesslogic.Topic.GetTopic(topicId); Member m = new Member(memberId); body = string.Format(body, t.Title, "https://" + domain + args[2].ToString()); if (m.getProperty("bugMeNot").Value.ToString() != "1") { MailMessage mm = new MailMessage(); mm.Subject = subject; mm.Body = body; mm.To.Add(m.Email); mm.From = from; c.Send(mm); } SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["umbracoDbDSN"]); conn.Open(); string insert = "Insert into notificationMarkAsSolution(topicId, memberID, timestamp) values(@topicId, @memberID, getdate())"; SqlCommand icomm = new SqlCommand(insert, conn); icomm.Parameters.AddWithValue("@topicId", topicId); icomm.Parameters.AddWithValue("@memberID", m.Id); icomm.ExecuteNonQuery(); conn.Close(); } catch (Exception e) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message); } return true; }
protected void NotSpamTopic(Object sender, CommandEventArgs e) { var id = int.Parse(e.CommandArgument.ToString()); var topic = Topic.GetTopic(id); topic.Save(false, true); // Set reputation to at least 50 so their next posts won't be automatically marked as spam var member = new Member(topic.MemberId); int reputation; int.TryParse(member.getProperty("reputationTotal").Value.ToString(), out reputation); if (reputation < 50) member.getProperty("reputationTotal").Value = 50; int.TryParse(member.getProperty("reputationCurrent").Value.ToString(), out reputation); if (reputation < 50) member.getProperty("reputationCurrent").Value = 50; FillSpamTopicGrid(); }
protected void NotSpamComment(Object sender, CommandEventArgs e) { var id = int.Parse(e.CommandArgument.ToString()); var comment = Comment.GetComment(id, true); comment.IsSpam = false; comment.Save(true); // Restore karma var member = new Member(comment.MemberId); int reputationTotal; int.TryParse(member.getProperty("reputationTotal").Value.ToString(), out reputationTotal); member.getProperty("reputationTotal").Value = reputationTotal >= 0 ? reputationTotal + 1 : 0; int reputationCurrent; int.TryParse(member.getProperty("reputationCurrent").Value.ToString(), out reputationCurrent); member.getProperty("reputationCurrent").Value = reputationCurrent >= 0 ? reputationCurrent + 1 : 0; Forum.MarkAsHam(comment.MemberId, comment.Body, "comment"); FillSpamCommentGrid(); }
void Member_AfterSave(umbraco.cms.businesslogic.member.Member sender, umbraco.cms.businesslogic.SaveEventArgs e) { string groups = ""; foreach (MemberGroup mg in sender.Groups.Values) { groups += mg.Text + ","; } sender.getProperty("groups").Value = groups.Trim().Trim(',');; sender.XmlGenerate(new System.Xml.XmlDocument()); }
protected void NotSpamComment(Object sender, CommandEventArgs e) { var id = int.Parse(e.CommandArgument.ToString()); var comment = Services.CommentService.Instance().GetById(id); comment.IsSpam = false; comment.Save(true); // Set reputation to at least 50 so their next posts won't be automatically marked as spam var member = new Member(comment.MemberId); int reputation; int.TryParse(member.getProperty("reputationTotal").Value.ToString(), out reputation); if (reputation < 50) member.getProperty("reputationTotal").Value = 50; int.TryParse(member.getProperty("reputationCurrent").Value.ToString(), out reputation); if (reputation < 50) member.getProperty("reputationCurrent").Value = 50; FillSpamCommentGrid(); }
void Member_AfterSave(Member sender, umbraco.cms.businesslogic.SaveEventArgs e) { string groups = ""; foreach (MemberGroup mg in sender.Groups.Values) { groups += mg.Text + ","; } sender.getProperty("groups").Value = groups.Trim().Trim(','); ; sender.XmlGenerate(new System.Xml.XmlDocument()); }
void Topic_AfterCreate(object sender, uForum.Businesslogic.CreateEventArgs e) { uForum.Businesslogic.Topic t = (uForum.Businesslogic.Topic)sender; //WB added to show these events are firing... umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, t.Id, "Topic_AfterCreate in ForumPostsCounter() class is starting"); Member mem = new Member(t.MemberId); int posts = 0; int.TryParse(mem.getProperty("forumPosts").Value.ToString(), out posts); mem.getProperty("forumPosts").Value = (posts + 1); mem.Save(); mem.XmlGenerate(new System.Xml.XmlDocument()); //Performs the action NewTopic in case we want to reward people for creating new posts. uPowers.BusinessLogic.Action a = new uPowers.BusinessLogic.Action("NewTopic"); a.Perform(mem.Id, t.Id, "New topic created"); //WB added to show these events are firing... umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, t.Id, "Topic_AfterCreate in ForumPostsCounter() class is finishing"); }
public static bool UpdateSecretCode(Member member) { string secretCode = Upac.Core.Security.RandomPassword.Generate(CommonUtil.GetSetting("Membership/SecretCodeLength", 7)); if (member != null) { Property property = member.getProperty("SecretCode"); if (property != null) { property.Value = secretCode; member.Save(); } } return false; }
public static string SetAvatar(int mId, string service) { var member = new Member(mId); switch (service) { case "twitter": if (member.getProperty("twitter") != null && member.getProperty("twitter").Value.ToString() != "") { var twitData = Twitter.Profile(member.getProperty("twitter").Value.ToString()); if (twitData.MoveNext()) { var imgUrl = twitData.Current.SelectSingleNode("//profile_image_url").Value; return SaveUrlAsBuddyIcon(imgUrl, member); } } break; case "gravatar": var gravatarUrl = "http://www.gravatar.com/avatar/" + umbraco.library.md5(member.Email) + "?s=48&d=monsterid"; return SaveUrlAsBuddyIcon(gravatarUrl, member); } return string.Empty; }
void Member_New(Member sender, NewEventArgs e) { //This is a bit of a hack to ensure that the member is approved when created since many people will be using // this old api to create members on the front-end and they need to be approved - which is based on whether or not // the Umbraco membership provider is configured. var provider = Membership.Provider as UmbracoMembershipProvider; if (provider != null) { var approvedField = provider.ApprovedPropertyTypeAlias; var property = sender.getProperty(approvedField); if (property != null) { property.Value = 1; } } }
public int create(memberCarrier carrier, int memberTypeId, string username, string password) { Authenticate(username, password); // Some validation if (carrier == null) { throw new Exception("No carrier specified"); } if (carrier.Id != 0) { throw new Exception("ID cannot be specifed when creating. Must be 0"); } if (string.IsNullOrEmpty(carrier.DisplayedName)) { carrier.DisplayedName = "unnamed"; } // we fetch the membertype umbraco.cms.businesslogic.member.MemberType mtype = new umbraco.cms.businesslogic.member.MemberType(memberTypeId); // Check if the membertype exists if (mtype == null) { throw new Exception("Membertype " + memberTypeId + " not found"); } // Get the user that creates umbraco.BusinessLogic.User user = GetUser(username, password); // Create the new member umbraco.cms.businesslogic.member.Member newMember = umbraco.cms.businesslogic.member.Member.MakeNew(carrier.DisplayedName, mtype, user); // We iterate the properties in the carrier if (carrier.MemberProperties != null) { foreach (memberProperty updatedproperty in carrier.MemberProperties) { umbraco.cms.businesslogic.property.Property property = newMember.getProperty(updatedproperty.Key); if (property != null) { property.Value = updatedproperty.PropertyValue; } } } return(newMember.Id); }
protected void RecoverLoginInfo(object sender, EventArgs e) { if (!string.IsNullOrEmpty(tbEmail.Text)) { MembershipUser user = Helper.GetMembershipUserViaEmail(tbEmail.Text); if (user == null) { ltrReceipt.Text = CommonUtil.GetSetting("Membership/PasswordRecovery/ViewProvideDetails/ReceiptEmailNotFound"); } else if (user.IsLockedOut) { ltrReceipt.Text = CommonUtil.GetSetting("Membership/PasswordRecovery/ViewProvideDetails/ReceiptProfileIsLocked"); } else if (!user.IsApproved) { ltrReceipt.Text = CommonUtil.GetSetting("Membership/PasswordRecovery/ViewProvideDetails/ReceiptNotApproved"); } else { umbraco.cms.businesslogic.member.Member member = Helper.GetMember(user); if (member == null) { ltrReceipt.Text = CommonUtil.GetSetting("Membership/PasswordRecovery/ViewProvideDetails/ReceiptEmailNotFound"); } else { Property property = member.getProperty("SecretCode"); if (property == null || string.IsNullOrEmpty(property.Value.ToString())) { throw new Exception("Could not find SecretCode on email: " + tbEmail.Text); } else { string link = string.Concat(GetBaseUrl(), HttpContext.Current.Request.Url.AbsolutePath, "?c=", HttpUtility.UrlEncode(property.Value.ToString()), "&u=", HttpUtility.UrlEncode(user.UserName)); Message message = new Message(); message.Body = CommonUtil.GetSetting("Membership/PasswordRecovery/ReceiptEmailSendt/EmailBody"); message.Subject = CommonUtil.GetSetting("Membership/PasswordRecovery/ReceiptEmailSendt/EmailSubject"); message.To.Add(user.Email); message.TemplateVariables.Add("link", link); message.Send(); ltrReceipt.Text = CommonUtil.GetSetting("Membership/PasswordRecovery/ReceiptEmailSendt/Screen"); } } } } multiView.SetActiveView(viewReceipt); }
private void GetMessageCreds() { // Make sure we have a member id available to us MemberId = null; if (Request.QueryString["mem"] != null) MemberId = Request.QueryString["mem"].ToInt32(); if (MemberId != null) { try { MessageToMember = new Member((Int32)MemberId); if (MembershipHelper.IsAuthenticated() && Settings.EnablePrivateMessaging && MessageToMember.getProperty("forumUserAllowPrivateMessages").Value.ToString() == "1" && !IsBanned) { //quick check to make sure the member is not PM'ing themselves if (MessageToMember.Id == CurrentMember.MemberId) Response.Redirect(string.Concat(CurrentPageAbsoluteUrl, "?m=", library.GetDictionaryItem("CantMessageYourself"))); if (!Page.IsPostBack) { // See if there is a subject querystring, if so we know this is a reply ReplySubject = null; if (Request.QueryString["r"] != null) ReplySubject = "RE: " + Request.QueryString["r"]; lvPrivateMessage.Visible = true; //Now if this is a reply, prepopulate the subject textbox var tbMessageSubject = (TextBox)lvPrivateMessage.FindControl("tbMessageSubject"); tbMessageSubject.Text = ReplySubject; } var litMemberTo = (Literal)lvPrivateMessage.FindControl("litMemberTo"); if (litMemberTo != null) litMemberTo.Text = MessageToMember.LoginName; } } catch(Exception) { // Show friendly message Response.Redirect(string.Concat(CurrentPageAbsoluteUrl, "?m=", "Unable to find that member")); } } }
protected void BtnSubmitMessageClick(object sender, EventArgs e) { // Check user isn't spammer by checking flood control settings if (Helpers.TimeDifferenceInMinutes(DateTime.Now, CurrentMember.MemberLastPrivateMessageTime) > Settings.PrivateMessagingFloodControlTimeSpan) { var sb = new StringBuilder(); var tbMessageSubject = (TextBox)lvPrivateMessage.FindControl("tbMessageSubject"); var tbMessage = (TextBox)lvPrivateMessage.FindControl("txtPost"); var replylink = string.Concat(Url(), "/privatemessage.aspx?mem=" + CurrentMember.MemberId, "&r=" + Helpers.GetSafeHtml(tbMessageSubject.Text).UrlEncode()); replylink = string.Format("<a href='{0}'>{0}</a>", replylink); sb.AppendFormat(library.GetDictionaryItem("PrivateMessageEmailText"), CurrentMember.MemberLoginName, DateTime.Now.ToShortDateString(), Helpers.GetSafeHtml(tbMessageSubject.Text)); sb.Append(Helpers.GetSafeHtml(tbMessage.Text).ConvertBbCode()); sb.AppendFormat("<p><b>{0}</b></p><p>{1}</p>", library.GetDictionaryItem("ClickLinkToReply"), replylink); Helpers.SendMail(Settings.EmailNotification, MessageToMember.Email, string.Concat(library.GetDictionaryItem("PrivateMessageOn"), Settings.Name), sb.ToString()); // Lastly update last private message sent on this user var cMem = new Member(Convert.ToInt32(CurrentMember.MemberId)); cMem.getProperty("forumUserLastPrivateMessage").Value = DateTime.Now; cMem.Save(); cMem.XmlGenerate(new System.Xml.XmlDocument()); // Show friendly message Response.Redirect(string.Concat(CurrentPageAbsoluteUrl, "?m=", library.GetDictionaryItem("MessageSent"))); } else { // Show friendly message Response.Redirect(string.Concat(CurrentPageAbsoluteUrl, "?m=", string.Format(library.GetDictionaryItem("SorryMustWaitBetween"), Settings.PrivateMessagingFloodControlTimeSpan))); } }
private static string SaveUrlAsBuddyIcon(string url, Member m) { var file = m.Id.ToString(CultureInfo.InvariantCulture); var path = HttpContext.Current.Server.MapPath("/media/avatar/" + file + ".jpg"); if (File.Exists(path)) File.Delete(path); var webClient = new System.Net.WebClient(); webClient.DownloadFile(url, path); m.getProperty("avatar").Value = "/media/avatar/" + file + ".jpg"; m.XmlGenerate(new XmlDocument()); m.Save(); Member.RemoveMemberFromCache(m); Member.AddMemberToCache(m); return "/media/avatar/" + file + ".jpg"; }
public override bool SendNotification(System.Xml.XmlNode details, params object[] args) { try { Comment com = (Comment)args[0]; Topic topic = (Topic)args[1]; string url = (string)args[2]; string memberName = (string)args[3]; if (com.IsSpam) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, string.Format("[Notifications] Comment Id {{0}} is marked as spam, no notification sent{0}", com.Id)); return(true); } //SMTP SETTINGS SmtpClient c = new SmtpClient(); //c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText); //SENDER ADDRESS MailAddress from = new MailAddress( details.SelectSingleNode("//from/email").InnerText, details.SelectSingleNode("//from/name").InnerText); //Notification details var domain = details.SelectSingleNode("//domain").InnerText; var subject = string.Format(details.SelectSingleNode("//subject").InnerText, topic.Title); var body = details.SelectSingleNode("//body").InnerText; body = string.Format(body, topic.Title, "https://" + domain + url + "#comment-" + com.Id, memberName, HttpUtility.HtmlDecode(umbraco.library.StripHtml(com.Body))); //connect to DB SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString); SqlCommand comm = new SqlCommand("Select memberId from forumTopicSubscribers where topicId = @topicId", conn); comm.Parameters.AddWithValue("@topicId", topic.Id); conn.Open(); //shit this must be so f*****g slow SqlDataReader dr = comm.ExecuteReader(); while (dr.Read()) { int mid = dr.GetInt32(0); try { var m = new umbraco.cms.businesslogic.member.Member(mid); if (m.Id != com.MemberId && m.getProperty("bugMeNot").Value.ToString() != "1") { MailMessage mm = new MailMessage(); mm.Subject = subject; mm.Body = body; mm.To.Add(m.Email); mm.From = from; c.Send(mm); } } catch (Exception e) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications] Error sending mail to " + mid.ToString() + " " + e.Message); } } conn.Close(); } catch (Exception e) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message); } return(true); }
public override bool SendNotification(System.Xml.XmlNode details, params object[] args) { SmtpClient c = new SmtpClient(details.SelectSingleNode("//smtp").InnerText); MailAddress from = new MailAddress( details.SelectSingleNode("//from/email").InnerText, details.SelectSingleNode("//from/name").InnerText); string subject = details.SelectSingleNode("//subject").InnerText; string body = details.SelectSingleNode("//body").InnerText; SqlConnection conn = new SqlConnection(details.SelectSingleNode("//conn").InnerText); string select = @"select id, memberId from forumTopics where answer = 0 and created < getdate() - 7 and created > '2010-06-10 00:00:00' and id not in (select topicId from notificationMarkAsSolution) order by created desc;"; SqlCommand comm = new SqlCommand( select, conn); conn.Open(); SqlDataReader dr = comm.ExecuteReader(); string domain = details.SelectSingleNode("//domain").InnerText; while (dr.Read()) { int topicId = dr.GetInt32(0); uForum.Businesslogic.Topic t = new uForum.Businesslogic.Topic(topicId); string mbody = string.Format(body, t.Title, "http://" + domain + args[1].ToString()); Member m = new Member(dr.GetInt32(1)); if (m.getProperty("bugMeNot") != null || m.getProperty("bugMeNot").Value.ToString() != "1") { MailMessage mm = new MailMessage(); mm.Subject = subject; mm.Body = mbody; mm.To.Add(m.Email); mm.From = from; c.Send(mm); } string insert = "Insert into notificationMarkAsSolution(topicId, memberID, timestamp) values(@topicId, @memberID, getdate())"; SqlCommand icomm = new SqlCommand(insert, conn); icomm.Parameters.AddWithValue("@topicId", topicId); icomm.Parameters.AddWithValue("@memberID", m.Id); icomm.ExecuteNonQuery(); } conn.Close(); return true; }
public ActionResult HandleEditProfile(ProfileViewModel model) { if (!ModelState.IsValid) { //return PartialView("EditProfile", model); return CurrentUmbracoPage(); } //Update the member with our data & save it down //Using member ID and not email address in case member has changed their email Member updateMember = new Member(model.MemberID); updateMember.Text = model.Name; updateMember.Email = model.EmailAddress; updateMember.getProperty("description").Value = model.Description; updateMember.getProperty("profileURL").Value = model.ProfileURL; updateMember.getProperty("twitter").Value = model.Twitter; updateMember.getProperty("linkedIn").Value = model.LinkedIn; updateMember.getProperty("skype").Value = model.Skype; //Save the member updateMember.Save(); //Return the view //return PartialView("EditProfile", model); return RedirectToAction("RenderMemberProfile", new { profileURLtoCheck = model.ProfileURL }); }
private static string saveUrlAsBuddyIcon(string url, Member m) { string _file = m.Id.ToString(); string _path = HttpContext.Current.Server.MapPath("/media/avatar/" + _file + ".jpg"); string _currentFile = m.getProperty("avatar").Value.ToString(); if (System.IO.File.Exists(_path)) System.IO.File.Delete(_path); System.Net.WebClient wc = new System.Net.WebClient(); wc.DownloadFile(url, _path); m.getProperty("avatar").Value = "/media/avatar/" + _file + ".jpg"; m.XmlGenerate(new XmlDocument()); m.Save(); Member.RemoveMemberFromCache(m); Member.AddMemberToCache(m); return "/media/avatar/" + _file + ".jpg"; }
protected void createMember(object sender, EventArgs e) { //Member is already logged in, and we just need to save his new data... if (m != null) { m.Text = tb_name.Text; m.Email = tb_email.Text; m.LoginName = tb_email.Text; if (tb_password.Text != "") m.Password = tb_password.Text; //optional.. m.getProperty("twitter").Value = tb_twitter.Text; m.getProperty("flickr").Value = tb_flickr.Text; m.getProperty("company").Value = tb_company.Text; m.getProperty("profileText").Value = tb_bio.Text; //location m.getProperty("location").Value = tb_location.Text; m.getProperty("latitude").Value = tb_lat.Value; m.getProperty("longitude").Value = tb_lng.Value; //treshold + newsletter m.getProperty("treshold").Value = tb_treshold.Text; m.getProperty("bugMeNot").Value = cb_bugMeNot.Checked; m.XmlGenerate(new System.Xml.XmlDocument()); m.Save(); //Refresh the member cache data Member.RemoveMemberFromCache(m); Member.AddMemberToCache(m); Response.Redirect(umbraco.library.NiceUrl(NextPage)); } else { if (tb_email.Text != "") { m = Member.GetMemberFromEmail(tb_email.Text); if (m == null) { MemberType mt = MemberType.GetByAlias(memberType); m = Member.MakeNew(tb_name.Text, mt, new umbraco.BusinessLogic.User(0)); m.Email = tb_email.Text; m.Password = tb_password.Text; m.LoginName = tb_email.Text; //Location m.getProperty("location").Value = tb_location.Text; m.getProperty("latitude").Value = tb_lat.Value; m.getProperty("longitude").Value = tb_lng.Value; //optional.. m.getProperty("twitter").Value = tb_twitter.Text; m.getProperty("flickr").Value = tb_flickr.Text; m.getProperty("company").Value = tb_company.Text; m.getProperty("profileText").Value = tb_bio.Text; //treshold + newsletter m.getProperty("treshold").Value = tb_treshold.Text; m.getProperty("bugMeNot").Value = cb_bugMeNot.Checked; //Standard values m.getProperty("reputationTotal").Value = 20; m.getProperty("reputationCurrent").Value = 20; m.getProperty("forumPosts").Value = 0; if (!string.IsNullOrEmpty(Group)) { MemberGroup mg = MemberGroup.GetByName(Group); if (mg != null) m.AddGroup(mg.Id); } //set a default avatar Rest.BuddyIcon.SetAvatar(m.Id, "gravatar"); m.Save(); m.XmlGenerate(new System.Xml.XmlDocument()); Member.AddMemberToCache(m); Response.Redirect(umbraco.library.NiceUrl(NextPage)); } } } }
public override bool SendNotification(System.Xml.XmlNode details, params object[] args) { SmtpClient c = new SmtpClient(details.SelectSingleNode("//smtp").InnerText); c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText); MailAddress from = new MailAddress( details.SelectSingleNode("//from/email").InnerText, details.SelectSingleNode("//from/name").InnerText); string subject = details.SelectSingleNode("//subject").InnerText; string body = details.SelectSingleNode("//body").InnerText; SqlConnection conn = new SqlConnection(details.SelectSingleNode("//conn").InnerText); string select = @"SELECT projectId, memberId FROM [projectDownload] d where memberId not in (select memberId from powersProject where id = d.projectId and memberId = d.memberId) and memberId != 0 and memberId not in (select memberId from notificationVoteForProject where projectId = d.projectId and memberId = d.memberId) and timestamp < getdate() - 1"; SqlCommand comm = new SqlCommand( select, conn); conn.Open(); SqlDataReader dr = comm.ExecuteReader(); while (dr.Read()) { int projectId = dr.GetInt32(0); Member m = new Member(dr.GetInt32(1)); Document d = new Document(projectId); if (m.getProperty("bugMeNot").Value.ToString() != "1") { MailMessage mm = new MailMessage(); mm.Subject = subject; mm.Body = body; mm.To.Add(m.Email); mm.From = from; c.Send(mm); } string insert = @"Insert into notificationVoteForProject(projectId, memberID, timestamp) values(@projectId, @memberId, getdate())"; SqlCommand icomm = new SqlCommand(insert, conn); icomm.Parameters.AddWithValue("@projectId", projectId); icomm.Parameters.AddWithValue("@memberId", m.Id); icomm.ExecuteNonQuery(); } conn.Close(); return true; }
private string getMemberProperty(Member m, string propertyAlias, bool isBool) { if (!String.IsNullOrEmpty(propertyAlias)) { if (m.getProperty(propertyAlias) != null && m.getProperty(propertyAlias).Value != null) { if (isBool) { // Umbraco stored true as 1, which means it can be bool.tryParse'd return m.getProperty(propertyAlias).Value.ToString().Replace("1", "true").Replace("0", "false"); } else return m.getProperty(propertyAlias).Value.ToString(); } } return null; }
public void MarkAsHam() { var markAsHamEventArgs = new MarkAsHamEventArgs(); FireBeforeMarkAsHam(markAsHamEventArgs); if (markAsHamEventArgs.Cancel) return; var forum = new Forum(ParentId); var topic = GetTopic(Id); var member = new Member(topic.MemberId); var akismetApi = Forum.GetAkismetApi(); var akismetComment = Forum.ConstructAkismetComment(member, "topic", string.Format("{0} - {1}", Title, Body)); akismetApi.SubmitHam(akismetComment); Data.SqlHelper.ExecuteNonQuery("UPDATE forumTopics SET isSpam = 0 WHERE id = @id", Data.SqlHelper.CreateParameter("@id", Id.ToString(CultureInfo.InvariantCulture))); Id = 0; forum.Save(); // Set reputation to at least 50 so their next posts won't be automatically marked as spam int reputation; int.TryParse(member.getProperty("reputationTotal").Value.ToString(), out reputation); if (reputation < 50) member.getProperty("reputationTotal").Value = 50; int.TryParse(member.getProperty("reputationCurrent").Value.ToString(), out reputation); if (reputation < 50) member.getProperty("reputationCurrent").Value = 50; member.Save(); FireAfterMarkAsHam(markAsHamEventArgs); }
public override bool SendNotification(System.Xml.XmlNode details, params object[] args) { try { Comment com = (Comment)args[0]; Topic topic = (Topic)args[1]; string url = (string)args[2]; string memberName = (string)args[3]; if (com.IsSpam) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, string.Format("[Notifications] Comment Id {{0}} is marked as spam, no notification sent{0}", com.Id)); return true; } //SMTP SETTINGS SmtpClient c = new SmtpClient(); //c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText); //SENDER ADDRESS MailAddress from = new MailAddress( details.SelectSingleNode("//from/email").InnerText, details.SelectSingleNode("//from/name").InnerText); //Notification details var domain = details.SelectSingleNode("//domain").InnerText; var subject = string.Format(details.SelectSingleNode("//subject").InnerText, topic.Title); var body = details.SelectSingleNode("//body").InnerText; body = string.Format(body, topic.Title, "https://" + domain + url + "#comment-" + com.Id, memberName, HttpUtility.HtmlDecode(umbraco.library.StripHtml(com.Body))); //connect to DB SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString); SqlCommand comm = new SqlCommand("Select memberId from forumTopicSubscribers where topicId = @topicId", conn); comm.Parameters.AddWithValue("@topicId", topic.Id); conn.Open(); //shit this must be so f*****g slow SqlDataReader dr = comm.ExecuteReader(); while (dr.Read()) { int mid = dr.GetInt32(0); try { var m = new umbraco.cms.businesslogic.member.Member(mid); if (m.Id != com.MemberId && m.getProperty("bugMeNot").Value.ToString() != "1") { MailMessage mm = new MailMessage(); mm.Subject = subject; mm.Body = body; mm.To.Add(m.Email); mm.From = from; c.Send(mm); } } catch (Exception e) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications] Error sending mail to " + mid.ToString() + " " + e.Message); } } conn.Close(); } catch (Exception e) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message); } return true; }
private void updateMemberProperty(Member m, string propertyAlias, object propertyValue) { if (!String.IsNullOrEmpty(propertyAlias)) { if (m.getProperty(propertyAlias) != null) { m.getProperty(propertyAlias).Value = propertyValue; } } }
public ActionResult HandleEditProfile(ProfileViewModel model) { if (!ModelState.IsValid) { return CurrentUmbracoPage(); } //Update the member with our data & save it down //Using member ID and not email address in case member has changed their email Member updateMember = new Member(model.MemberID); updateMember.Text = model.Name; updateMember.Email = model.EmailAddress; updateMember.getProperty("description").Value = model.Description; updateMember.getProperty("profileURL").Value = model.ProfileURL; updateMember.getProperty("twitter").Value = model.Twitter; updateMember.getProperty("linkedIn").Value = model.LinkedIn; updateMember.getProperty("skype").Value = model.Skype; //Save the member updateMember.Save(); //Update success flag (in a TempData key) TempData["IsSuccessful"] = true; //Return the view return RedirectToCurrentUmbracoPage(); }
private static bool MemberHasEnoughReputation(Member m) { var reputation = string.Empty; if (m.getProperty("reputationTotal") != null && m.getProperty("reputationTotal").Value != null) reputation = m.getProperty("reputationTotal").Value.ToString(); int reputationTotal; var enoughReputation = int.TryParse(reputation, out reputationTotal) && reputationTotal > 30; return enoughReputation; }
public static bool IsSpam(int memberId, string body, string commentType, int topicId) { var member = new Member(memberId); int reputationTotal; int.TryParse(member.getProperty("reputationTotal").Value.ToString(), out reputationTotal); // Members with over 50 karma are trusted automatically if (reputationTotal >= 50) return false; var akismetApi = GetAkismetApi(); var comment = ConstructAkismetComment(member, commentType, body); var isAkismetSpam = akismetApi.CommentCheck(comment); if (isAkismetSpam) SendSpamMail(body, topicId, commentType); var isSpam = isAkismetSpam || TextContainsSpam(body); if(isSpam) { akismetApi.SubmitSpam(comment); // Deduct karma member.getProperty("reputationTotal").Value = reputationTotal >= 0 ? reputationTotal - 1 : 0; int reputationCurrent; int.TryParse(member.getProperty("reputationCurrent").Value.ToString(), out reputationCurrent); member.getProperty("reputationCurrent").Value = reputationCurrent >= 0 ? reputationCurrent - 1 : 0; } return isSpam; }
public override bool SendNotification(System.Xml.XmlNode details, params object[] args) { try { var topic = (Topic)args[0]; if (topic.IsSpam) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, string.Format("[Notifications] Topic ID {0} is marked as spam, no notification sent{0}", topic.Id)); return true; } SmtpClient c = new SmtpClient(details.SelectSingleNode("//smtp").InnerText); c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText); MailAddress from = new MailAddress( details.SelectSingleNode("//from/email").InnerText, details.SelectSingleNode("//from/name").InnerText); string subject = details.SelectSingleNode("//subject").InnerText; string body = details.SelectSingleNode("//body").InnerText; Member member = (Member)args[2]; //currently using document api instead of nodefactory Document forum = new Document(topic.ParentId); subject = string.Format(subject, forum.Text); var domain = details.SelectSingleNode("//domain").InnerText; body = string.Format(body, forum.Text, "http://" + domain + args[1], member.Text, topic.Title, HttpUtility.HtmlDecode(umbraco.library.StripHtml(topic.Body))); SqlConnection conn = new SqlConnection(details.SelectSingleNode("//conn").InnerText); SqlCommand comm = new SqlCommand("Select memberId from forumSubscribers where forumId = @forumId", conn); comm.Parameters.AddWithValue("@forumId", topic.ParentId); conn.Open(); SqlDataReader dr = comm.ExecuteReader(); while (dr.Read()) { int mid = dr.GetInt32(0); try { Member m = new Member(mid); if (m.Id != topic.MemberId && (m.getProperty("bugMeNot").Value.ToString() != "1")) { MailMessage mm = new MailMessage(); mm.Subject = subject; mm.Body = body; mm.To.Add(m.Email); mm.From = from; c.Send(mm); } } catch(Exception e) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications] Error sending mail to " + mid.ToString() + " " + e.Message); } } conn.Close(); } catch (Exception e) { umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message); } return true; }
public static void MarkAsHam(int memberId, string body, string commentType) { var akismetApi = new Akismet(AkismetApiKey, "http://our.umbraco.org", "Test/1.0"); if (akismetApi.VerifyKey() == false) throw new Exception("Akismet API key could not be verified"); var member = new Member(memberId); var comment = new AkismetComment { Blog = "http://our.umbraco.org", UserIp = member.getProperty("ip").Value.ToString(), CommentAuthor = member.Text, CommentAuthorEmail = member.Email, CommentType = commentType, CommentContent = body }; akismetApi.SubmitHam(comment); }