Exemplo n.º 1
0
    public bool SetDisplayNameFromUsername(
        [NotNull] string token, [NotNull] string username, [NotNull] string displayName)
    {
        // validate token...
        if (token != YafContext.Current.Get <YafBoardSettings>().WebServiceToken)
        {
            throw new SecurityFailureInvalidWebServiceTokenException(
                      "Invalid Secure Web Service Token: Operation Failed");
        }

        // get the user id...
        var membershipUser = UserMembershipHelper.GetMembershipUserByName(username);

        if (membershipUser != null)
        {
            var userId = UserMembershipHelper.GetUserIDFromProviderUserKey(membershipUser.ProviderUserKey);

            var displayNameId = this.Get <IUserDisplayName>().GetId(displayName);

            if (displayNameId.HasValue && displayNameId.Value != userId)
            {
                // problem...
                throw new NonUniqueDisplayNameException(
                          "Display Name must be unique. {0} display name already exists in the database.".FormatWith(
                              displayName));
            }

            var userFields = LegacyDb.user_list(Config.BoardID, userId, null).Rows[0];

            LegacyDb.user_save(
                userId,
                Config.BoardID,
                null,
                displayName,
                null,
                userFields["TimeZone"],
                userFields["LanguageFile"],
                userFields["Culture"],
                userFields["ThemeFile"],
                userFields["TextEditor"],
                null,
                null,
                null,
                null,
                null,
                null,
                null);

            this.Get <IRaiseEvent>().Raise(new UpdateUserEvent(userId));

            return(true);
        }

        return(false);
    }
Exemplo n.º 2
0
        /// <summary>
        /// This method returns a string which shows how many times users have
        ///   thanked the message with the provided messageID. Returns an empty string.
        /// </summary>
        /// <param name="username">
        /// The username.
        /// </param>
        /// <param name="messageID">
        /// The Message ID.
        /// </param>
        /// <returns>
        /// The thanks number.
        /// </returns>
        protected static string ThanksNumber([NotNull] string username, int messageID)
        {
            int thanksNumber = LegacyDb.message_ThanksNumber(messageID);

            string displayName = username;

            if (YafContext.Current.Get <YafBoardSettings>().EnableDisplayName)
            {
                // get the user's display name.
                SitecoreMembershipUser mu = UserMembershipHelper.GetMembershipUserByName(username);
                if (mu != null)
                {
                    displayName = YafContext.Current.Get <IUserDisplayName>().GetName(
                        UserMembershipHelper.GetUserIDFromProviderUserKey(
                            mu.ProviderUserKey));
                }
            }

            displayName = YafContext.Current.Get <HttpServerUtilityBase>().HtmlEncode(displayName);

            string thanksText;

            switch (thanksNumber)
            {
            case 0:
                return(string.Empty);

            case 1:
                thanksText =
                    YafContext.Current.Get <ILocalization>().GetText("POSTS", "THANKSINFOSINGLE").FormatWith(
                        displayName);

                return
                    ("<img id=\"ThanksInfoImage{0}\" src=\"{1}\"  runat=\"server\" title=\"{2}\" />&nbsp;{2}".FormatWith(
                         messageID,
                         YafContext.Current.Get <ITheme>().GetItem("ICONS", "THANKSINFOLIST_IMAGE"),
                         thanksText));
            }

            thanksText = YafContext.Current.Get <ILocalization>().GetText("POSTS", "THANKSINFO").FormatWith(thanksNumber, displayName);

            return
                ("<img id=\"ThanksInfoImage{0}\" src=\"{1}\"  runat=\"server\" title=\"{2}\" />&nbsp;{2}".FormatWith(
                     messageID, YafContext.Current.Get <ITheme>().GetItem("ICONS", "THANKSINFOLIST_IMAGE"), thanksText));
        }
Exemplo n.º 3
0
        /// <summary>
        /// This method returns a string which shows how many times users have
        ///   thanked the message with the provided messageID. Returns an empty string.
        /// </summary>
        /// <param name="username">
        /// The username.
        /// </param>
        /// <param name="messageID">
        /// The Message ID.
        /// </param>
        /// <returns>
        /// The thanks number.
        /// </returns>
        public string ThanksNumber([NotNull] string username, int messageID)
        {
            var thanksNumber = YafContext.Current.GetRepository <Thanks>().Count(t => t.MessageID == messageID);

            var displayName = username;

            if (YafContext.Current.Get <YafBoardSettings>().EnableDisplayName)
            {
                // get the user's display name.
                var mu = UserMembershipHelper.GetMembershipUserByName(username);
                if (mu != null)
                {
                    displayName = YafContext.Current.Get <IUserDisplayName>().GetName(
                        UserMembershipHelper.GetUserIDFromProviderUserKey(mu.ProviderUserKey));
                }
            }

            displayName = YafContext.Current.Get <HttpServerUtilityBase>().HtmlEncode(displayName);

            string thanksText;

            switch (thanksNumber)
            {
            case 0:
                return(string.Empty);

            case 1:
                thanksText = string.Format(
                    YafContext.Current.Get <ILocalization>().GetText("POSTS", "THANKSINFOSINGLE"),
                    displayName);

                return($"<i class=\"fa fa-heart\" style=\"color:#e74c3c\"></i>&nbsp;{thanksText}");
            }

            thanksText = string.Format(
                YafContext.Current.Get <ILocalization>().GetText("POSTS", "THANKSINFO"),
                thanksNumber,
                displayName);

            return($"<i class=\"fa fa-heart\" style=\"color:#e74c3c\"></i>&nbsp;{thanksText}");
        }
Exemplo n.º 4
0
        /// <summary>
        /// This method returns a string which shows how many times users have
        ///   thanked the message with the provided messageID. Returns an empty string.
        /// </summary>
        /// <param name="username">
        /// The username.
        /// </param>
        /// <param name="messageId">
        /// The Message ID.
        /// </param>
        /// <returns>
        /// The thanks number.
        /// </returns>
        public string ThanksInfo([NotNull] string username, int messageId)
        {
            var thanksNumber = BoardContext.Current.GetRepository <Thanks>().Count(t => t.MessageID == messageId);

            if (thanksNumber == 0)
            {
                return("&nbsp;");
            }

            var displayName = username;

            if (BoardContext.Current.Get <BoardSettings>().EnableDisplayName)
            {
                // get the user's display name.
                var mu = UserMembershipHelper.GetMembershipUserByName(username);
                if (mu != null)
                {
                    displayName = BoardContext.Current.Get <IUserDisplayName>().GetName(
                        UserMembershipHelper.GetUserIDFromProviderUserKey(mu.ProviderUserKey));
                }
            }

            displayName = BoardContext.Current.Get <HttpServerUtilityBase>().HtmlEncode(displayName);

            var thanksText = BoardContext.Current.Get <ILocalization>()
                             .GetTextFormatted("THANKSINFO", thanksNumber, displayName);

            var thanks = GetThanks(messageId);

            return($@"<a class=""btn btn-sm btn-link thanks-popover"" 
                           data-toggle=""popover"" 
                           data-trigger=""click hover""
                           data-html=""true""
                           title=""{thanksText}"" 
                           data-content=""{thanks.Replace("\"", "'")}"">
                               <i class=""fa fa-heart"" style= ""color:#e74c3c""></i>&nbsp;+{thanksNumber}</a>");
        }