コード例 #1
0
        /// <summary>
        /// 实名认证
        /// </summary>
        /// <param name="targetUserIds"></param>
        /// <param name="realnameChecked">是否</param>
        public void AdminSetRealnameChaecked(AuthUser operatorUser, int targetUserId, bool realnameChecked, string remark, bool sendNotify)
        {
            if (operatorUser == User.Guest)
            {
                ThrowError(new NotLoginError());
                return;
            }

            if (!CanRealnameCheck(operatorUser))
            {
                ThrowError(new NoPermissionRealnameCheckError());
                return;
            }



            UserDao.Instance.SetRealnameChecked(operatorUser.UserID, targetUserId, realnameChecked, remark);

            if (sendNotify)
            {
                string            content = realnameChecked ? "恭喜您已通过实名认证" : "您的实名认证被拒绝," + (!string.IsNullOrEmpty(remark) ? "原因:" + StringUtil.CutString(remark, 100) : "");
                AdminManageNotify notify  = new AdminManageNotify(targetUserId, content);
                notify.UserID = targetUserId;
                NotifyBO.Instance.AddNotify(operatorUser, notify);
            }

            RemoveUserCache(targetUserId);

            if (realnameChecked)
            {
                if (OnUserRealnameChecked != null)
                {
                    AuthenticUser authenticUserInfo = GetAuthenticUserInfo(operatorUser, targetUserId);

                    if (authenticUserInfo != null)
                    {
                        OnUserRealnameChecked(targetUserId, authenticUserInfo.Realname, authenticUserInfo.IDNumber);
                    }
                    else
                    {
                        AuthUser user = GetAuthUser(targetUserId);
                        if (user != null)
                        {
                            OnUserRealnameChecked(targetUserId, user.Realname, string.Empty);
                        }
                    }
                }
            }
            else
            {
                if (OnUserCancelRealnameCheck != null)
                {
                    OnUserCancelRealnameCheck(targetUserId);
                }
            }
        }
コード例 #2
0
        public ShareContent GetShareContent(int targetID, out int userID, out bool isCanShare)
        {
            userID     = 0;
            isCanShare = false;

            BlogArticle article = BlogBO.Instance.GetBlogArticle(targetID);

            if (article == null)
            {
                return(null);
            }

            isCanShare = article.PrivacyType == PrivacyType.AllVisible;

            if (!isCanShare)
            {
                userID = 0;
                return(null);
            }

            userID = article.UserID;

            User author = UserBO.Instance.GetUser(userID);

            StringBuffer shareContent = new StringBuffer();

            string spaceUrl   = UrlHelper.GetSpaceUrlTag(author.UserID);
            string articleUrl = UrlHelper.GetBlogArticleUrlTag(article.ArticleID); //"$url(" + "space/" + article.UserID + "/blog/article-" + targetID + ")";

            shareContent += "<div class=\"detail\">";
            shareContent += "<b><a target=\"_blank\" href=\"";
            shareContent += articleUrl;
            shareContent += "\" title=\"";
            shareContent += article.Subject;
            shareContent += "\">";
            shareContent += article.Subject;
            shareContent += "</a></b><br />";
            shareContent += "<a target=\"_blank\" href=\"";
            shareContent += spaceUrl;
            shareContent += "\" title=\"";
            shareContent += author.Username;
            shareContent += "\">";
            shareContent += author.Username;
            shareContent += "</a><br />";
            shareContent += StringUtil.CutString(StringUtil.ClearAngleBracket(article.Content), Consts.Share_ReviewContentLength);
            shareContent += "</div>";

            if (string.IsNullOrEmpty(article.Thumb) == false)
            {
                shareContent += "<a target=\"_blank\" href=\"" + articleUrl;
                shareContent += "\" title=\"";
                shareContent += article.Subject;
                shareContent += "\"><img class=\"summaryimg image\" src=\"";
                shareContent += article.Thumb;
                shareContent += "\" alt=\"";
                shareContent += article.Subject;
                shareContent += "\" onload=\"imageScale(this, 100, 100)\" onerror=\"this.style.display = 'none';\"  /></a>";
            }


            ShareContent content = new ShareContent();

            content.Catagory = ShareType.Blog;
            content.Content  = shareContent.ToString();
            content.Title    = article.Subject;
            content.URL      = articleUrl;

            return(content);
        }
コード例 #3
0
        public ShareContent GetShareContent(int targetID, out int userID, out bool canShare)
        {
            userID   = 0;
            canShare = false;

            BasicThread thread = PostBOV5.Instance.GetThread(targetID);

            if (thread == null)
            {
                return(null);
            }
            if (thread.ThreadStatus == ThreadStatus.Recycled || thread.ThreadStatus == ThreadStatus.UnApproved)
            {
                return(null);
            }

            if (thread.Price > 0)
            {
                return(null);
            }

            PostV5 post;

            if (thread.ThreadContent != null)
            {
                post = thread.ThreadContent;
            }
            else
            {
                post = PostBOV5.Instance.GetPost(thread.ContentID, false);
            }

            if (post == null)
            {
                return(null);
            }

            canShare = true;
            userID   = thread.PostUserID;

            Forum forum = thread.Forum;

            string content = @"
<div class=""detail"">
{0}
</div>
";


            string threadUrl = UrlHelper.GetThreadUrlTag(forum.CodeName, thread.ThreadID);

            content = string.Format(content
                                    //  threadUrl
                                    //, thread.SubjectText
                                    //, UrlHelper.GetSpaceUrlTag(thread.PostUserID)
                                    //, thread.PostUsername
                                    , StringUtil.CutString(StringUtil.ClearAngleBracket(PostBOV5.Instance.GetPublicContent(thread, post)), Consts.Share_ReviewContentLength));

            ShareContent shareContent = new ShareContent();

            shareContent.Catagory = ShareType.Topic;
            shareContent.Content  = content;
            shareContent.Title    = thread.Subject;
            shareContent.URL      = threadUrl;

            return(shareContent);
        }
コード例 #4
0
ファイル: OnlineUserPool.cs プロジェクト: zhangbo27/bbsmax
        public void Update(AuthUser my, RequestVariable request, OnlineAction action, int forumID, int threadID, string subject)
        {
            subject = StringUtil.CutString(subject, 20);



            int    userID = my.UserID;
            string ip     = request.IpAddress;

            bool addnew = false;

            //已经登录的用户
            if (userID > 0)
            {
                #region 已经登录的用户的处理

                OnlineMember onlineMember;
                if (m_OnlineMemberTable.TryGetValue(userID, out onlineMember) == false)
                {
                    string       location = IPUtil.GetIpArea(ip);
                    RoleInOnline role     = GetUserRoleInOnline(userID);
                    lock (m_OnlineMembers_Locker)
                    {
                        if (m_OnlineMemberTable.TryGetValue(userID, out onlineMember) == false)
                        {
                            #region 增加一个OnlineMember

                            DateTime now = DateTimeUtil.Now;

                            onlineMember        = new OnlineMember();
                            onlineMember.UserID = userID;

                            onlineMember.Action = action;

                            onlineMember.Username    = my.Username;
                            onlineMember.IsInvisible = my.IsInvisible;

                            onlineMember.IP       = ip;
                            onlineMember.Location = location;

                            onlineMember.ForumID       = forumID;
                            onlineMember.ThreadID      = threadID;
                            onlineMember.ThreadSubject = subject;


                            onlineMember.Platform             = request.Platform;
                            onlineMember.Browser              = request.Browser;
                            onlineMember.CreateDate           = now;
                            onlineMember.UpdateDate           = now;
                            onlineMember.RoleSortOrder        = role.SortOrder;
                            onlineMember.RoleIdentityIDString = my.RoleIdentityIDString;

                            m_OnlineMemberTable.Add(userID, onlineMember);
                            OnlineMemberCollection newOnlineMembers = new OnlineMemberCollection(m_OnlineMembers);
                            newOnlineMembers.Add(onlineMember);
                            m_OnlineMembers = newOnlineMembers;

                            if (forumID != 0)
                            {
                                lock (GetForumOnlineMemberLocker(forumID))
                                {
                                    //加入新的版块
                                    AddForumOnlineMember(forumID, onlineMember);
                                }
                            }

                            #endregion

                            addnew = true;
                        }
                    }
                }

                if (addnew == false)
                {
                    lock (onlineMember)
                    {
                        //ForumID为-1意味着其实已经删除,无需再更新
                        if (onlineMember.ForumID != -1)
                        {
                            #region 更新原来OnlineMember的值

                            onlineMember.Action = action;

                            onlineMember.Username    = my.Username;
                            onlineMember.IsInvisible = my.IsInvisible;

                            if (my.RoleIdentityIDString != onlineMember.RoleIdentityIDString)
                            {
                                RoleInOnline role = GetUserRoleInOnline(userID);
                                onlineMember.RoleSortOrder        = role.SortOrder;
                                onlineMember.RoleIdentityIDString = my.RoleIdentityIDString;
                            }

                            if (onlineMember.IP != ip)
                            {
                                onlineMember.IP       = ip;
                                onlineMember.Location = IPUtil.GetIpArea(ip);
                            }

                            //-----------------

                            int oldForumID = onlineMember.ForumID;
                            onlineMember.ThreadID      = threadID;
                            onlineMember.ThreadSubject = subject;

                            if (oldForumID != forumID)
                            {
                                if (oldForumID != 0 && forumID != 0)
                                {
                                    lock (GetForumOnlineMemberLocker(oldForumID))
                                    {
                                        lock (GetForumOnlineMemberLocker(forumID))
                                        {
                                            //从原来的版块移除
                                            RemoveForumOnlineMember(oldForumID, onlineMember);
                                            //加入新的版块
                                            AddForumOnlineMember(forumID, onlineMember);
                                        }
                                    }
                                }
                                else if (oldForumID != 0)
                                {
                                    lock (GetForumOnlineMemberLocker(oldForumID))
                                    {
                                        //从原来的版块移除
                                        RemoveForumOnlineMember(oldForumID, onlineMember);
                                    }
                                }
                                else if (forumID != 0)
                                {
                                    lock (GetForumOnlineMemberLocker(forumID))
                                    {
                                        //加入新的版块
                                        AddForumOnlineMember(forumID, onlineMember);
                                    }
                                }
                                onlineMember.ForumID = forumID;
                            }


                            onlineMember.Platform   = request.Platform;
                            onlineMember.Browser    = request.Browser;
                            onlineMember.UpdateDate = DateTimeUtil.Now;

                            #endregion
                        }
                        else
                        {
                            LogHelper.CreateDebugLog("OnlineMember线程同步监视1");
                        }
                    }
                }

                #endregion

                //如果是已登陆状态,但客户端仍然提交了GuestID,则把这个GuestID移除
                //if (my.MachineIDIsNew == false)

                string guestID = my.GuestID;

                if (guestID != null)
                {
                    RemoveOnlineGuest(guestID);
                }
            }
            else
            //尚未登录的用户
            {
                //TODO : 暂不统计游客在线情况,因为可能存在溢出,下个版本改进



                #region 尚未登录的用户的处理


                bool   isSpider = request.IsSpider;
                string guestID  = my.BuildGuestID();

                OnlineGuest onlineGuest;
                if (m_OnlineGuestTable.TryGetValue(guestID, out onlineGuest) == false)
                {
                    string location = IPUtil.GetIpArea(ip);

                    lock (m_OnlineGuests_Locker)
                    {
                        //假如游客列表中还没有这个游客
                        if (m_OnlineGuestTable.TryGetValue(guestID, out onlineGuest) == false)
                        {
                            bool success = UpdateOnlineGuestIP(guestID, null, ip, isSpider);// AddGuestToIP(guestID, ip, request.IsSpider);
                            //bool success = true;

                            if (success)
                            {
                                #region 增加一个OnlineGuest

                                DateTime now = DateTimeUtil.Now;

                                onlineGuest          = new OnlineGuest();
                                onlineGuest.GuestID  = my.GuestID;
                                onlineGuest.IsSpider = isSpider;

                                onlineGuest.Action = action;

                                onlineGuest.IP       = ip;
                                onlineGuest.Location = location;


                                onlineGuest.Platform   = request.Platform;
                                onlineGuest.Browser    = request.Browser;
                                onlineGuest.CreateDate = now;
                                onlineGuest.UpdateDate = now;

                                onlineGuest.ForumID       = forumID;
                                onlineGuest.ThreadID      = threadID;
                                onlineGuest.ThreadSubject = subject;

                                m_OnlineGuestTable.Add(guestID, onlineGuest);
                                OnlineGuestCollection newOnlineGuests = new OnlineGuestCollection(m_OnlineGuests);
                                newOnlineGuests.Add(onlineGuest);
                                m_OnlineGuests = newOnlineGuests;

                                if (forumID != 0)
                                {
                                    lock (GetForumOnlineGuestLocker(forumID))
                                    {
                                        //加入新的版块
                                        AddForumOnlineGuest(forumID, onlineGuest);
                                    }
                                }

                                #endregion

                                addnew = true;
                            }
                            else
                            {
                                return;
                            }
                        }
                    }
                }

                //如果只是更新原来的值,那么开始更新
                if (addnew == false)
                {
                    lock (onlineGuest)
                    {
                        //ForumID为-1表示其实这个对象已经从在线列表中移除了
                        if (onlineGuest.ForumID != -1)
                        {
                            #region 更新原来OnlineGuest的值

                            onlineGuest.Action = action;

                            //如果这个游客仅仅发生了IP变化,那么要更新IP表
                            if (onlineGuest.IP != ip)
                            {
                                UpdateOnlineGuestIP(guestID, onlineGuest.IP, ip, isSpider);

                                //RemoveGuestFromIP(guestID, onlineGuest.IP);
                                onlineGuest.IsSpider = isSpider;
                                onlineGuest.IP       = ip;
                                onlineGuest.Location = IPUtil.GetIpArea(ip);
                                //AddGuestToIP(guestID, onlineGuest.IP, request.IsSpider);
                            }

                            //----------------------

                            int oldForumID = onlineGuest.ForumID;

                            if (oldForumID != forumID)
                            {
                                if (oldForumID != 0 && forumID != 0)
                                {
                                    lock (GetForumOnlineGuestLocker(oldForumID))
                                    {
                                        lock (GetForumOnlineGuestLocker(forumID))
                                        {
                                            //从原来的版块移除
                                            RemoveForumOnlineGuest(oldForumID, onlineGuest);
                                            //加入新的版块
                                            AddForumOnlineGuest(forumID, onlineGuest);
                                        }
                                    }
                                }
                                else if (oldForumID != 0)
                                {
                                    lock (GetForumOnlineMemberLocker(oldForumID))
                                    {
                                        //从原来的版块移除
                                        RemoveForumOnlineGuest(oldForumID, onlineGuest);
                                    }
                                }
                                else if (forumID != 0)
                                {
                                    lock (GetForumOnlineMemberLocker(forumID))
                                    {
                                        //加入新的版块
                                        AddForumOnlineGuest(forumID, onlineGuest);
                                    }
                                }

                                onlineGuest.ForumID = forumID;
                            }


                            onlineGuest.Platform   = request.Platform;
                            onlineGuest.Browser    = request.Browser;
                            onlineGuest.UpdateDate = DateTimeUtil.Now;

                            onlineGuest.ThreadID      = threadID;
                            onlineGuest.ThreadSubject = subject;
                            #endregion
                        }
                        else
                        {
                            LogHelper.CreateDebugLog("OnlineGuest线程同步监视1");
                        }
                    }
                }

                #endregion
            }
        }