Пример #1
0
        protected void Submit_Click(object sender, EventArgs e)
        {
            string _theme       = txtTheme.Text.ToLower().Trim();
            string _mobileTheme = txtMobileTheme.Text.ToLower().Trim();

            // Update Application and Group Themes
            // Each theme has to have an associated blog theme

            foreach (SueetieApplication _sueetieApplication in SueetieApplications.Get().All)
            {
                if (_sueetieApplication.ApplicationTypeID == (int)SueetieApplicationType.Blog && _sueetieApplication.GroupID == 0)
                {
                    try
                    {
                        SueetieBlogUtils.UpdateBlogTheme(_sueetieApplication.ApplicationKey, _theme);
                    }
                    catch (Exception ex)
                    {
                        SueetieLogs.LogException("Blog Theme Update Error: " + ex.Message + " Stacktrace: " + ex.StackTrace);
                    }
                }
            }
            SueetieForums.UpdateForumTheme(_theme);
            WikiThemes.UpdateWikiTheme(SueetieApplications.Get().Wiki.ApplicationKey, _theme);

            //// Update BlogEngine Group Themes - Will add to SueetieApplications logic
            // SueetieBlogUtils.UpdateBlogTheme("groups/demo/blog", _theme);
            // WikiThemes.UpdateWikiTheme("groups/demo/wiki", _theme);

            SueetieCommon.UpdateSiteSetting(new SiteSetting("Theme", _theme));
            SueetieCommon.UpdateSiteSetting(new SiteSetting("MobileTheme", _mobileTheme));

            if (SueetieUIHelper.GetCurrentTrustLevel() >= AspNetHostingPermissionLevel.High)
            {
                HttpRuntime.UnloadAppDomain();
            }
            else
            {
                SueetieLogs.LogException("Unable to restart Sueetie. Must have High/Unrestricted Trust to Unload Application.");
            }

            lblResults.Visible        = true;
            lblResults.Text           = "Current Themes updated!";
            lblResultsDetails.Visible = true;
            lblResultsDetails.Text    = "New application themes may not appear right away. Touch web.configs to restart the app if this is the case.";
        }
Пример #2
0
    public List <SueetieForumMessage> GetRecentForumMessages(int numRecords, int userID, int applicationID, bool isRestricted)
    {
        ContentQuery contentQuery = new ContentQuery
        {
            NumRecords    = numRecords,
            UserID        = userID,
            ContentTypeID = (int)SueetieContentType.ForumMessage,
            GroupID       = -1,
            ApplicationID = applicationID,
            IsRestricted  = isRestricted,
            TruncateText  = true
        };

        List <SueetieForumMessage> _sueetieForumMessages = SueetieForums.GetSueetieForumMessageList(contentQuery);

        foreach (SueetieForumMessage msg in _sueetieForumMessages)
        {
            msg.Message = DataHelper.TruncateText(msg.Message, SueetieConfiguration.Get().Core.TruncateTextCount);
        }
        return(_sueetieForumMessages);
    }
Пример #3
0
    public string ProcessTags(int _itemID, int _contentID, int _contentTypeID, string _tags)
    {
        if (string.IsNullOrEmpty(_tags))
        {
            return(SueetieLocalizer.GetString("no_tags_entered"));
        }
        string          pipedTags       = SueetieTags.PipedTags(_tags);
        SueetieTagEntry sueetieTagEntry = new SueetieTagEntry
        {
            ItemID        = _itemID,
            ContentID     = _contentID,
            ContentTypeID = _contentTypeID,
            UserID        = SueetieContext.Current.User.UserID,
            Tags          = pipedTags
        };

        if (_contentTypeID == (int)SueetieContentType.CMSPage)
        {
            SueetieContentParts.EnterContentPageTags(sueetieTagEntry);
        }
        else if (SueetieCommon.IsMediaObject(_contentTypeID))
        {
            SueetieMedia.EnterMediaObjectTags(sueetieTagEntry);
        }
        else if (SueetieCommon.IsMediaAlbum(_contentTypeID))
        {
            SueetieMedia.EnterMediaAlbumTags(sueetieTagEntry);
        }
        else if (_contentTypeID == (int)SueetieContentType.WikiPage)
        {
            SueetieWikis.EnterWikiPageTags(sueetieTagEntry);
        }
        else if (_contentTypeID == (int)SueetieContentType.ForumTopic)
        {
            SueetieForums.EnterForumTopicTags(sueetieTagEntry);
        }

        SueetieTags.ClearSueetieTagCache();
        return(SueetieTags.TagUrls(pipedTags));
    }
Пример #4
0
    public string ForumFaveMessage(int userID, int messageID, int applicationID)
    {
        SueetieForumContent sueetieForumContent = new SueetieForumContent
        {
            MessageID     = messageID,
            ContentTypeID = (int)SueetieContentType.ForumMessage,
            ApplicationID = applicationID
        };

        SueetieForumMessage sueetieForumMessage = SueetieForums.GetSueetieForumMessage(sueetieForumContent);

        if (userID > 0)
        {
            if (sueetieForumMessage.ContentID > 0)
            {
                string      result      = "You tagged this message by " + sueetieForumMessage.DisplayName + " as a favorite!";
                UserContent userContent = new UserContent
                {
                    ContentID = sueetieForumMessage.ContentID,
                    UserID    = userID
                };

                int favoriteID = SueetieUsers.CreateFavorite(userContent);
                if (favoriteID < 0)
                {
                    result = "You already tagged this forums message as a favorite.";
                }

                return(result);
            }
            else
            {
                return("Dang it. This forums message cannot be tagged as a favorite for some reason.  Sorry.");
            }
        }
        else
        {
            return("Please login or become a member to tag this forums message as a favorite");
        }
    }
Пример #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string path = this.ViewName.ControlPath();

            ContentQuery contentQuery = new ContentQuery
            {
                NumRecords    = this.NumRecords,
                UserID        = this.UserID,
                ContentTypeID = (int)SueetieContentType.ForumTopic,
                GroupID       = this.GroupID,
                IsRestricted  = this.IsRestricted,
                TruncateText  = false,
                CacheMinutes  = this.CacheMinutes
            };

            List <SueetieForumTopic> sueetieForumTopics = SueetieForums.GetSueetieForumTopicList(contentQuery);

            foreach (SueetieForumTopic topic in sueetieForumTopics)
            {
                Sueetie.Controls.ForumTopicView control = (Sueetie.Controls.ForumTopicView)LoadControl(path);
                control.Topic = topic;
                phForumTopics.Controls.Add(control);
            }
        }
Пример #6
0
        protected void CreateUser_Click(object sender, System.EventArgs e)
        {
            if (Page.IsValid && IsPostBack)
            {
                if (Membership.GetUser(txtUsername.Text) == null && Membership.GetUserNameByEmail(txtEmailAddress.Text) == null)
                {
                    var ws = new SueetieService();

                    MembershipUser user = Membership.CreateUser(txtUsername.Text, txtPassword1.Text, txtEmailAddress.Text);

                    ProfileBase profile = (ProfileBase)SueetieUserProfile.Create(txtUsername.Text, true);
                    profile["DisplayName"] = txtDisplayName.Text;
                    profile["Newsletter"]  = chkNewsletter.Checked;
                    profile.Save();


                    // SUEETIE NOTE: [BLOG]  BlogEngine.NET will throw an error if authorizing a user and they do not appear in be_User table.
                    // When Blog Application added, uncomment these lines.

                    beDataContext dataContext = new beDataContext();

                    be_User _be_User = new be_User();
                    _be_User.UserName      = user.UserName;
                    _be_User.Password      = string.Empty;
                    _be_User.LastLoginTime = DateTime.Now;
                    _be_User.EmailAddress  = user.Email;
                    dataContext.be_Users.InsertOnSubmit(_be_User);
                    dataContext.SubmitChanges();

                    Roles.AddUserToRole(user.UserName, "Registered");

                    // SUEETIE NOTE: [WIKI]  Adding user to ScrewTurn Wiki v3 /public/users.cs.

                    if (SiteSettings.Instance.CreateWikiUserAccount)
                    {
                        WikiUsers.AddUser(txtUsername.Text, txtEmailAddress.Text, null, txtDisplayName.Text);
                    }

                    // SUEETIE NOTE: SueetieUser creation

                    SueetieUser sueetieUser = new SueetieUser();
                    sueetieUser.UserName     = user.UserName.ToLower();
                    sueetieUser.Email        = user.Email.ToLower();
                    sueetieUser.MembershipID = (Guid)user.ProviderUserKey;
                    sueetieUser.DisplayName  = txtDisplayName.Text;
                    sueetieUser.IP           = "127.0.0.1";
                    sueetieUser.IsActive     = true;
                    sueetieUser.TimeZone     = Convert.ToInt32(ddTimeZones.SelectedValue);

                    int userid = SueetieUsers.CreateSueetieUser(sueetieUser);

                    // SUEETIE NOTE: As of Gummy Bear 1.3, a Forum User Account is Created for All Users
                    SueetieForums.CreateForumUser(sueetieUser);

                    SueetieUsers.ClearSueetieUserListCache(SueetieUserType.RegisteredUser);

                    txtDisplayName.Text = txtEmailAddress.Text = txtPassword1.Text = txtPassword2.Text = txtUsername.Text = string.Empty;

                    lblResults.Visible = true;
                    lblResults.Text    = "User Account Created!";
                }
                else
                {
                    string loginUrl = "login.aspx";
                    if (Request.QueryString["ReturnUrl"] != null)
                    {
                        loginUrl += "?ReturnUrl=" + Request.QueryString["ReturnUrl"];
                    }

                    if (Membership.GetUser(txtUsername.Text) != null)
                    {
                        labelUserMessage.Text = "User already exists.  Please enter another username.  If you already have a Sueetie account, please <a href=\"" + loginUrl + "\">login here.</a>";
                    }

                    else if (Membership.GetUserNameByEmail(txtEmailAddress.Text) != null)
                    {
                        labelUserMessage.Text = "The email address already exists.  Do you already have a Sueetie account?  If so, please <a href=\"" + loginUrl + "\">login here.</a>";
                    }
                }
            }
        }
Пример #7
0
        protected void CreateUser_Click(object sender, System.EventArgs e)
        {
            if (txtDisplayName.Text.Trim().Length < 2)
            {
                labelUserMessage.Text = SueetieLocalizer.GetString("register_validator_displayname");
                InitializeCaptcha();
                return;
            }

            if (!SueetieUsers.IsNewDisplayName(txtDisplayName.Text))
            {
                labelUserMessage.Text = string.Format(SueetieLocalizer.GetString("register_exists_displayname_long"));
                InitializeCaptcha();
                return;
            }

            string ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

            if (SueetieUsers.IsIPBanned(ip))
            {
                MailMessage msg = new MailMessage();
                msg.From = new MailAddress(SiteSettings.Instance.FromEmail, SiteSettings.Instance.FromName);
                MailAddress userAddress = new
                                          MailAddress(SiteSettings.Instance.ContactEmail, SiteSettings.Instance.SiteName + SueetieLocalizer.GetString("register_emailtoadmin_admin"));
                msg.To.Add(userAddress);
                msg.Subject = SueetieLocalizer.GetString("register_bannedattempt_subject");

                string body = SueetieLocalizer.GetString("register_bannedattempt_firstline");
                body    += Environment.NewLine + Environment.NewLine;
                body    += SueetieLocalizer.GetString("register_bannedattempt_ipaddress") + ip;
                body    += SueetieLocalizer.GetString("register_bannedattempt_user") + txtUsername.Text + " (" + txtDisplayName.Text + ") " + txtEmailAddress.Text;
                body    += Environment.NewLine + Environment.NewLine;
                msg.Body = body;

                if (SueetieConfiguration.Get().Core.SendEmails)
                {
                    EmailHelper.AsyncSendEmail(msg);
                }

                Response.Redirect("/members/message.aspx?msgid=8");
                return;
            }

            if (!IsCaptchaValid || !Page.IsValid || !IsPostBack)
            {
                return;
            }

            if (Membership.GetUser(txtUsername.Text) != null || Membership.GetUserNameByEmail(txtEmailAddress.Text) != null)
            {
                string loginUrl = "/members/login.aspx";
                if (Request.QueryString["ReturnUrl"] != null)
                {
                    loginUrl += "?ReturnUrl=" + Request.QueryString["ReturnUrl"];
                }

                if (Membership.GetUser(txtUsername.Text) != null)
                {
                    labelUserMessage.Text = string.Format(SueetieLocalizer.GetString("register_exists_username_long"), SiteSettings.Instance.SiteName, loginUrl);
                    InitializeCaptcha();
                }
                else if (Membership.GetUserNameByEmail(txtEmailAddress.Text) != null)
                {
                    labelUserMessage.Text = string.Format(SueetieLocalizer.GetString("register_exists_email_long"), SiteSettings.Instance.SiteName, loginUrl);
                    InitializeCaptcha();
                }

                return;
            }

            if (registrationType == SueetieRegistrationType.Automatic)
            {
                FormsAuthentication.SetAuthCookie(txtUsername.Text, true);
            }

            var user = Membership.CreateUser(txtUsername.Text, txtPassword1.Text, txtEmailAddress.Text);

            if (registrationType != SueetieRegistrationType.Automatic)
            {
                user.IsApproved = false;
                Membership.UpdateUser(user);
            }

            ProfileBase profile = (ProfileBase)SueetieUserProfile.Create(txtUsername.Text, true);

            profile["DisplayName"] = txtDisplayName.Text;
            if (chkNewsletter != null)
            {
                profile["Newsletter"] = chkNewsletter.Checked;
            }
            profile.Save();

            // SUEETIE NOTE: [BLOG]  BlogEngine.NET will throw an error if authorizing a user and they do not appear in be_User table.
            // When Blog Application added, uncomment these lines.

            try
            {
                beDataContext dataContext = new beDataContext();
                be_User       _be_User    = new be_User();
                _be_User.UserName      = user.UserName;
                _be_User.Password      = string.Empty;
                _be_User.LastLoginTime = DateTime.Now;
                _be_User.EmailAddress  = user.Email;
                dataContext.be_Users.InsertOnSubmit(_be_User);
                dataContext.SubmitChanges();
            }
            catch { }

            Roles.AddUserToRole(user.UserName, "Registered");

            if (SiteSettings.Instance.CreateWikiUserAccount)
            {
                WikiUsers.AddUser(txtUsername.Text, txtEmailAddress.Text, null, txtDisplayName.Text);
            }

            SueetieUser sueetieUser = new SueetieUser();

            sueetieUser.UserName     = user.UserName.ToLower();
            sueetieUser.Email        = user.Email.ToLower();
            sueetieUser.MembershipID = (Guid)user.ProviderUserKey;
            sueetieUser.DisplayName  = txtDisplayName.Text;
            sueetieUser.IP           = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            sueetieUser.IsActive     = true;
            sueetieUser.TimeZone     = Convert.ToInt32(ddTimeZones.SelectedValue);

            int userid = SueetieUsers.CreateSueetieUser(sueetieUser);

            SueetieForums.CreateForumUser(sueetieUser);

            Uri    uri  = HttpContext.Current.Request.Url;
            string port = uri.Port != 80 ? ":" + uri.Port : string.Empty;

            if (registrationType == SueetieRegistrationType.EmailVerification)
            {
                string valBinary;

                valBinary = user.CreationDate.ToBinary().ToString();

                MailMessage msg = new MailMessage();

                msg.From = new MailAddress(SiteSettings.Instance.FromEmail, SiteSettings.Instance.FromName);

                MailAddress userAddress = new MailAddress(user.Email.ToLower().ToString(), txtDisplayName.Text.ToString());
                msg.To.Add(userAddress);
                msg.Subject = string.Format(SueetieLocalizer.GetString("register_emailvalidation_subject"), SiteSettings.Instance.SiteName);

                string msgbody;

                string activateUrl = uri.Scheme + Uri.SchemeDelimiter + uri.Host + port + "/members/Activate.aspx";

                msgbody  = string.Format(SueetieLocalizer.GetString("register_emailvalidation_firstline"), SiteSettings.Instance.SiteName);
                msgbody += Environment.NewLine + Environment.NewLine;
                msgbody += activateUrl + "?uname=" + user.UserName + "&uid=" + userid + "&key=" + valBinary;
                msgbody += Environment.NewLine + Environment.NewLine;
                msgbody += SueetieLocalizer.GetString("register_emailvalidation_yourusername") + txtUsername.Text + Environment.NewLine;
                //msgbody += SueetieLocalizer.GetString("register_emailvalidation_yourpassword") + txtPassword1.Text + Environment.NewLine;

                msg.Body = msgbody;

                if (SueetieConfiguration.Get().Core.SendEmails)
                {
                    EmailHelper.AsyncSendEmail(msg);
                }
            }
            else if (registrationType == SueetieRegistrationType.AdministrativeApproval)
            {
                string approveUrl = uri.Scheme + Uri.SchemeDelimiter + uri.Host + port + "/admin/approveusers.aspx";

                MailMessage msg = new MailMessage();

                msg.From = new MailAddress(SiteSettings.Instance.FromEmail, SiteSettings.Instance.FromName);

                MailAddress userAddress = new MailAddress(SiteSettings.Instance.ContactEmail, SiteSettings.Instance.SiteName + SueetieLocalizer.GetString("register_emailtoadmin_admin"));
                msg.To.Add(userAddress);
                msg.Subject = SueetieLocalizer.GetString("register_emailtoadmin_subject");

                string msgbody;

                msgbody  = SueetieLocalizer.GetString("register_emailtoadmin_firstline");
                msgbody += Environment.NewLine + Environment.NewLine;
                msgbody += user.UserName.ToString() + " (" + sueetieUser.DisplayName + ")";
                msgbody += Environment.NewLine + Environment.NewLine;
                msgbody += approveUrl;


                msg.Body = msgbody;

                if (SueetieConfiguration.Get().Core.SendEmails)
                {
                    EmailHelper.AsyncSendEmail(msg);
                }
            }

            if (registrationType != SueetieRegistrationType.Automatic)
            {
                SaltieUserEvents.OnPreUserAccountApproval(CurrentSueetieUser);
                SueetieLogs.LogUserEntry(UserLogCategoryType.Registered, -1, userid);
            }

            switch (registrationType)
            {
            case SueetieRegistrationType.Automatic:
                SaltieUserEvents.OnPostUserAccountApproval(sueetieUser);
                SueetieUsers.CreateUpdateUserProfileCookie(sueetieUser);
                SueetieLogs.LogUserEntry(UserLogCategoryType.JoinedCommunity, -1, userid);
                string returnUrl = Request.QueryString["ReturnUrl"];
                if (returnUrl != null)
                {
                    Response.Redirect(returnUrl);
                }
                else
                {
                    Response.Redirect("/members/welcome.aspx", true);
                }
                break;

            case SueetieRegistrationType.EmailVerification:
                Response.Redirect("/members/message.aspx?msgid=6");
                break;

            case SueetieRegistrationType.AdministrativeApproval:
                Response.Redirect("/members/message.aspx?msgid=7");
                break;

            default:
                break;
            }
        }