/// <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); } } }
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); }
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); }
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 } }