public void ResendConfirmationKey(Core core, NetworkMember member) { string activateKey = member.MemberActivationCode; int isActive = (networkInfo.RequireConfirmation) ? 0 : 1; string activateUri = string.Format("http://zinzam.com/network/{0}?mode=activate&id={1}&key={2}", networkNetwork, member.UserId, activateKey); if (networkInfo.RequireConfirmation) { Template emailTemplate = new Template(core.Http.TemplateEmailPath, "join_network.html"); emailTemplate.Parse("SITE_TITLE", core.Settings.SiteTitle); emailTemplate.Parse("U_SITE", core.Hyperlink.StripSid(core.Hyperlink.AppendAbsoluteSid(core.Hyperlink.BuildHomeUri()))); emailTemplate.Parse("TO_NAME", member.DisplayName); emailTemplate.Parse("U_ACTIVATE", activateUri); emailTemplate.Parse("S_EMAIL", member.MemberEmail); core.Email.SendEmail(member.MemberEmail, core.Settings.SiteTitle + " Network Registration Confirmation", emailTemplate); } }
public NetworkMember Join(Core core, User member, string networkEmail) { string activateKey = User.GenerateActivationSecurityToken(); if (!IsValidNetworkEmail(networkEmail) && networkInfo.RequireConfirmation) { return null; } if (IsNetworkMember(member.ItemKey)) { return null; } int isActive = (networkInfo.RequireConfirmation) ? 0 : 1; // delete any existing unactivated e-mails for this user in this network, re-send the invitation db.BeginTransaction(); try { NetworkMember nm = new NetworkMember(core, this, member); if (!nm.IsMemberActive) { try { UserEmail uMail = new UserEmail(core, nm.MemberEmail); uMail.Delete(); } catch (InvalidUserEmailException) { // Do Nothing } nm.Delete(); } } catch (InvalidUserException) { // Do Nothing } if (!networkInfo.RequireConfirmation) { UpdateQuery uQuery = new UpdateQuery(GetTable(typeof(Network))); uQuery.AddField("network_members", new QueryOperation("network_members", QueryOperations.Addition, 1)); uQuery.AddCondition("network_id", networkId); db.Query(uQuery); } InsertQuery iQuery = new InsertQuery(GetTable(typeof(NetworkMember))); iQuery.AddField("network_id", this.Id); iQuery.AddField("user_id", member.UserId); iQuery.AddField("member_join_date_ut", UnixTime.UnixTimeStamp()); iQuery.AddField("member_join_ip", core.Session.IPAddress.ToString()); iQuery.AddField("member_email", networkEmail); iQuery.AddField("member_active", isActive); iQuery.AddField("member_activate_code", activateKey); db.Query(iQuery); NetworkMember newMember = new NetworkMember(core, this, member); string activateUri = string.Format("http://zinzam.com/network/{0}?mode=activate&id={1}&key={2}", networkNetwork, member.UserId, activateKey); if (networkInfo.RequireConfirmation) { EmailAddressTypes emailType = EmailAddressTypes.Other; switch (networkInfo.NetworkType) { case NetworkTypes.School: case NetworkTypes.University: emailType = EmailAddressTypes.Student; break; case NetworkTypes.Workplace: emailType = EmailAddressTypes.Business; break; } UserEmail registrationEmail = UserEmail.Create(core, newMember, networkEmail, emailType, true); Template emailTemplate = new Template(core.Http.TemplateEmailPath, "join_network.html"); emailTemplate.Parse("SITE_TITLE", core.Settings.SiteTitle); emailTemplate.Parse("U_SITE", core.Hyperlink.StripSid(core.Hyperlink.AppendAbsoluteSid(core.Hyperlink.BuildHomeUri()))); emailTemplate.Parse("TO_NAME", member.DisplayName); emailTemplate.Parse("U_ACTIVATE", activateUri); emailTemplate.Parse("S_EMAIL", networkEmail); core.Email.SendEmail(networkEmail, core.Settings.SiteTitle + " Network Registration Confirmation", emailTemplate); } return newMember; }